dockerfile-language-service
Version:
A language service for Dockerfiles to enable the creation of feature-rich Dockerfile editors.
58 lines (57 loc) • 3.11 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "vscode-languageserver-types", "./dockerMarkdown", "./dockerPlainText"], factory);
}
})(function (require, exports) {
/* --------------------------------------------------------------------------------------------
* Copyright (c) Remy Suen. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.DockerCompletion = void 0;
var vscode_languageserver_types_1 = require("vscode-languageserver-types");
var dockerMarkdown_1 = require("./dockerMarkdown");
var dockerPlainText_1 = require("./dockerPlainText");
var DockerCompletion = /** @class */ (function () {
function DockerCompletion() {
this.dockerMarkdown = new dockerMarkdown_1.MarkdownDocumentation();
this.dockerPlainText = new dockerPlainText_1.PlainTextDocumentation();
}
DockerCompletion.prototype.resolveCompletionItem = function (item, documentationFormat) {
if (!item.documentation && item.data) {
if (documentationFormat === undefined || documentationFormat === null) {
item.documentation = this.dockerPlainText.getDocumentation(item.data);
}
else {
for (var _i = 0, documentationFormat_1 = documentationFormat; _i < documentationFormat_1.length; _i++) {
var format = documentationFormat_1[_i];
if (format === vscode_languageserver_types_1.MarkupKind.PlainText) {
item.documentation = {
kind: vscode_languageserver_types_1.MarkupKind.PlainText,
value: this.dockerPlainText.getDocumentation(item.data)
};
return item;
}
else if (format === vscode_languageserver_types_1.MarkupKind.Markdown) {
item.documentation = {
kind: vscode_languageserver_types_1.MarkupKind.Markdown,
value: this.dockerMarkdown.getMarkdown(item.data).contents
};
return item;
}
}
// no known format detected, just use plain text then
item.documentation = this.dockerPlainText.getDocumentation(item.data);
}
}
return item;
};
return DockerCompletion;
}());
exports.DockerCompletion = DockerCompletion;
});