dockerfile-language-service
Advanced tools
Comparing version
# Changelog | ||
All notable changes to this project will be documented in this file. | ||
## [0.11.0] - 2023-09-10 | ||
### Added | ||
- support parsing the new `--start-interval` flag for HEALTHCHECK instructions ([rcjsuen/dockerfile-utils#115](https://github.com/rcjsuen/dockerfile-utils/issues/115)) | ||
- allow some diagnostics to be ignored if a `# dockerfile-utils: ignore` comment precedes the originating line of the error ([rcjsuen/dockerfile-utils#106](https://github.com/rcjsuen/dockerfile-utils/issues/106)) | ||
- support parsing the new `--checksum` flag for ADD instructions ([rcjsuen/dockerfile-utils#116](https://github.com/rcjsuen/dockerfile-utils/issues/116)) | ||
- support parsing the new `--keep-git-dir` flag for ADD instructions ([rcjsuen/dockerfile-utils#117](https://github.com/rcjsuen/dockerfile-utils/issues/117)) | ||
- suggest the new `--start-interval` flag for HEALTHCHECK instructions when calculating completion items ([#117](https://github.com/rcjsuen/dockerfile-language-service/issues/117)) | ||
- provide documentation support when hovering over the `--start-interval` flag for HEALTHCHECK instructions ([#119](https://github.com/rcjsuen/dockerfile-language-service/issues/119)) | ||
- flag empty tag specified with a digest in FROM instructions as an error ([rcjsuen/dockerfile-utils#118](https://github.com/rcjsuen/dockerfile-utils/issues/118)) | ||
- ignore predefined platform ARG variables if they are used as a base image ([rcjsuen/dockerfile-utils#119](https://github.com/rcjsuen/dockerfile-utils/issues/119)) | ||
## [0.10.2] - 2023-06-01 | ||
@@ -496,3 +507,4 @@ ### Fixed | ||
[Unreleased]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.10.2...HEAD | ||
[Unreleased]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.11.0...HEAD | ||
[0.11.0]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.10.2...v0.11.0 | ||
[0.10.2]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.10.1...v0.10.2 | ||
@@ -499,0 +511,0 @@ [0.10.1]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.10.0...v0.10.1 |
@@ -1,2 +0,3 @@ | ||
import { TextDocument, Position, CompletionItem } from 'vscode-languageserver-types'; | ||
import { TextDocument } from 'vscode-languageserver-textdocument'; | ||
import { Position, CompletionItem } from 'vscode-languageserver-types'; | ||
import { DockerRegistryClient } from './dockerRegistryClient'; | ||
@@ -61,2 +62,3 @@ import { CompletionItemCapabilities } from './main'; | ||
private createHEALTHCHECK_FlagRetries; | ||
private createHEALTHCHECK_FlagStartInterval; | ||
private createHEALTHCHECK_FlagStartPeriod; | ||
@@ -63,0 +65,0 @@ private createHEALTHCHECK_FlagTimeout; |
@@ -16,3 +16,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
@@ -369,3 +369,3 @@ if (y = 0, t) op = [op[0] & 2, t.value]; | ||
flagProposalsMap.forEach(function (fn, flagName) { | ||
if (("--" + flagName + "=").indexOf(prefix) === 0) { | ||
if ("--".concat(flagName, "=").indexOf(prefix) === 0) { | ||
item_1 = fn(prefix.length, offset); | ||
@@ -521,2 +521,5 @@ } | ||
} | ||
if ("--start-interval".indexOf(prefix) === 0) { | ||
items.push(this.createHEALTHCHECK_FlagStartInterval(prefix.length, offset)); | ||
} | ||
if ("--start-period".indexOf(prefix) === 0) { | ||
@@ -769,2 +772,8 @@ items.push(this.createHEALTHCHECK_FlagStartPeriod(prefix.length, offset)); | ||
}; | ||
DockerAssist.prototype.createHEALTHCHECK_FlagStartInterval = function (prefixLength, offset) { | ||
if (this.snippetSupport) { | ||
return this.createFlagCompletionItem("--start-interval=5s", prefixLength, offset, "--start-interval=${1:5s}", "HEALTHCHECK_FlagStartInterval"); | ||
} | ||
return this.createFlagCompletionItem("--start-interval=", prefixLength, offset, "--start-interval=", "HEALTHCHECK_FlagStartInterval"); | ||
}; | ||
DockerAssist.prototype.createHEALTHCHECK_FlagStartPeriod = function (prefixLength, offset) { | ||
@@ -771,0 +780,0 @@ if (this.snippetSupport) { |
@@ -7,3 +7,3 @@ (function (factory) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "dockerfile-utils", "./main"], factory); | ||
define(["require", "exports", "vscode-languageserver-textdocument", "vscode-languageserver-types", "dockerfile-utils", "./main"], factory); | ||
} | ||
@@ -18,2 +18,3 @@ })(function (require, exports) { | ||
exports.DockerCommands = void 0; | ||
var vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
@@ -135,3 +136,3 @@ var dockerfile_utils_1 = require("dockerfile-utils"); | ||
DockerCommands.prototype.computeCommandEdits = function (content, command, args) { | ||
var document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
var document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
var range = args[1]; | ||
@@ -138,0 +139,0 @@ switch (command) { |
@@ -7,3 +7,3 @@ (function (factory) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "dockerfile-ast"], factory); | ||
define(["require", "exports", "vscode-languageserver-textdocument", "vscode-languageserver-types", "dockerfile-ast"], factory); | ||
} | ||
@@ -18,2 +18,3 @@ })(function (require, exports) { | ||
exports.DockerFolding = void 0; | ||
var vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
@@ -50,3 +51,3 @@ var dockerfile_ast_1 = require("dockerfile-ast"); | ||
var dockerfile = dockerfile_ast_1.DockerfileParser.parse(content); | ||
var document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
var document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
for (var _i = 0, _a = dockerfile.getInstructions(); _i < _a.length; _i++) { | ||
@@ -53,0 +54,0 @@ var instruction = _a[_i]; |
@@ -7,3 +7,3 @@ (function (factory) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "dockerfile-ast"], factory); | ||
define(["require", "exports", "vscode-languageserver-textdocument", "vscode-languageserver-types", "dockerfile-ast"], factory); | ||
} | ||
@@ -18,2 +18,3 @@ })(function (require, exports) { | ||
exports.DockerFormatter = void 0; | ||
var vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
@@ -73,3 +74,3 @@ var dockerfile_ast_1 = require("dockerfile-ast"); | ||
} | ||
var document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
var document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
validityCheck: for (var i = document.offsetAt(position); i < content.length; i++) { | ||
@@ -112,3 +113,3 @@ switch (content.charAt(i)) { | ||
DockerFormatter.prototype.format = function (content, lines, options) { | ||
var document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
var document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
var dockerfile = dockerfile_ast_1.DockerfileParser.parse(content); | ||
@@ -115,0 +116,0 @@ var indentedLines = []; |
@@ -7,3 +7,3 @@ (function (factory) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "dockerfile-ast", "./dockerDefinition", "./docker"], factory); | ||
define(["require", "exports", "vscode-languageserver-textdocument", "vscode-languageserver-types", "dockerfile-ast", "./dockerDefinition", "./docker"], factory); | ||
} | ||
@@ -18,2 +18,3 @@ })(function (require, exports) { | ||
exports.DockerHighlight = void 0; | ||
var vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
@@ -93,3 +94,3 @@ var dockerfile_ast_1 = require("dockerfile-ast"); | ||
else { | ||
var document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
var document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
var definition = document.getText().substring(document.offsetAt(definitionRange.start), document.offsetAt(definitionRange.end)); | ||
@@ -96,0 +97,0 @@ var isBuildStage = false; |
@@ -201,2 +201,4 @@ (function (factory) { | ||
return "HEALTHCHECK_FlagRetries"; | ||
case "start-interval": | ||
return "HEALTHCHECK_FlagStartInterval"; | ||
case "start-period": | ||
@@ -203,0 +205,0 @@ return "HEALTHCHECK_FlagStartPeriod"; |
@@ -47,2 +47,3 @@ (function (factory) { | ||
"hoverHealthcheckFlagRetries": "The number of consecutive failures of this health check before the container is considered to be `unhealthy`.", | ||
"hoverHealthcheckFlagStartInterval": "The number of seconds to wait between health checks during the start period.", | ||
"hoverHealthcheckFlagStartPeriod": "The number of seconds to wait for the container to startup. Failures during this grace period will not count towards the maximum number of retries. However, should a health check succeed during this period then any subsequent failures will count towards the maximum number of retries.\n\nSince Docker 17.05.0-ce.", | ||
@@ -168,2 +169,5 @@ "hoverHealthcheckFlagTimeout": "The number of seconds to wait for the check to complete before considering it to have failed.", | ||
}, | ||
HEALTHCHECK_FlagStartInterval: { | ||
contents: this.dockerMessages["hoverHealthcheckFlagStartInterval"] | ||
}, | ||
HEALTHCHECK_FlagStartPeriod: { | ||
@@ -170,0 +174,0 @@ contents: this.dockerMessages["hoverHealthcheckFlagStartPeriod"] |
@@ -44,2 +44,3 @@ (function (factory) { | ||
"hoverHealthcheckFlagRetries": "The number of consecutive failures of this health check before the container is considered to be `unhealthy`.", | ||
"hoverHealthcheckFlagStartInterval": "The number of seconds to wait between health checks during the start period.", | ||
"hoverHealthcheckFlagStartPeriod": "The number of seconds to wait for the container to startup. Failures during this grace period will not count towards the maximum number of retries. However, should a health check succeed during this period then any subsequent failures will count towards the maximum number of retries.\n\nSince Docker 17.05.0-ce.", | ||
@@ -160,2 +161,3 @@ "hoverHealthcheckFlagTimeout": "The number of seconds to wait for the check to complete before considering it to have failed.", | ||
HEALTHCHECK_FlagRetries: this.dockerMessages["hoverHealthcheckFlagRetries"], | ||
HEALTHCHECK_FlagStartInterval: this.dockerMessages["hoverHealthcheckFlagStartInterval"], | ||
HEALTHCHECK_FlagStartPeriod: this.dockerMessages["hoverHealthcheckFlagStartPeriod"], | ||
@@ -162,0 +164,0 @@ HEALTHCHECK_FlagTimeout: this.dockerMessages["hoverHealthcheckFlagTimeout"], |
@@ -7,3 +7,3 @@ (function (factory) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "dockerfile-ast", "./docker"], factory); | ||
define(["require", "exports", "vscode-languageserver-textdocument", "vscode-languageserver-types", "dockerfile-ast", "./docker"], factory); | ||
} | ||
@@ -18,2 +18,3 @@ })(function (require, exports) { | ||
exports.DockerSemanticTokens = exports.TokensLegend = void 0; | ||
var vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
@@ -67,3 +68,3 @@ var dockerfile_ast_1 = require("dockerfile-ast"); | ||
this.content = content; | ||
this.document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
this.document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
this.dockerfile = dockerfile_ast_1.DockerfileParser.parse(content); | ||
@@ -70,0 +71,0 @@ this.escapeCharacter = this.dockerfile.getEscapeCharacter(); |
@@ -7,3 +7,3 @@ (function (factory) { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "dockerfile-utils", "./dockerAssist", "./dockerRegistryClient", "./dockerCommands", "./dockerFolding", "./dockerDefinition", "./dockerHighlight", "./dockerSymbols", "./dockerSignatures", "./dockerLinks", "./dockerPlainText", "./dockerRename", "./dockerHover", "./dockerMarkdown", "./dockerCompletion", "./dockerSemanticTokens"], factory); | ||
define(["require", "exports", "vscode-languageserver-textdocument", "dockerfile-utils", "./dockerAssist", "./dockerRegistryClient", "./dockerCommands", "./dockerFolding", "./dockerDefinition", "./dockerHighlight", "./dockerSymbols", "./dockerSignatures", "./dockerLinks", "./dockerPlainText", "./dockerRename", "./dockerHover", "./dockerMarkdown", "./dockerCompletion", "./dockerSemanticTokens"], factory); | ||
} | ||
@@ -14,3 +14,3 @@ })(function (require, exports) { | ||
exports.LanguageService = void 0; | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument"); | ||
var DockerfileUtils = require("dockerfile-utils"); | ||
@@ -65,3 +65,3 @@ var dockerAssist_1 = require("./dockerAssist"); | ||
LanguageService.prototype.computeCompletionItems = function (content, position) { | ||
var document = vscode_languageserver_types_1.TextDocument.create("", "", 0, content); | ||
var document = vscode_languageserver_textdocument_1.TextDocument.create("", "", 0, content); | ||
var dockerAssist = new dockerAssist_1.DockerAssist(document, new dockerRegistryClient_1.DockerRegistryClient(this.logger), this.completionItemCapabilities); | ||
@@ -68,0 +68,0 @@ return dockerAssist.computeProposals(position); |
@@ -29,3 +29,3 @@ (function (factory) { | ||
CommandIds["CONVERT_TO_AS"] = "docker.command.convertToAS"; | ||
})(CommandIds = exports.CommandIds || (exports.CommandIds = {})); | ||
})(CommandIds || (exports.CommandIds = CommandIds = {})); | ||
var DockerfileLanguageServiceFactory; | ||
@@ -37,3 +37,3 @@ (function (DockerfileLanguageServiceFactory) { | ||
DockerfileLanguageServiceFactory.createLanguageService = createLanguageService; | ||
})(DockerfileLanguageServiceFactory = exports.DockerfileLanguageServiceFactory || (exports.DockerfileLanguageServiceFactory = {})); | ||
})(DockerfileLanguageServiceFactory || (exports.DockerfileLanguageServiceFactory = DockerfileLanguageServiceFactory = {})); | ||
}); |
@@ -11,3 +11,3 @@ { | ||
], | ||
"version": "0.10.2", | ||
"version": "0.11.0", | ||
"author": "Remy Suen", | ||
@@ -24,5 +24,6 @@ "license": "MIT", | ||
"dependencies": { | ||
"dockerfile-ast": "0.5.0", | ||
"dockerfile-utils": "0.11.0", | ||
"vscode-languageserver-types": "3.17.0-next.3" | ||
"dockerfile-ast": "0.6.1", | ||
"dockerfile-utils": "0.15.0", | ||
"vscode-languageserver-textdocument": "1.0.8", | ||
"vscode-languageserver-types": "3.17.3" | ||
}, | ||
@@ -36,3 +37,3 @@ "main": "./lib/main.js", | ||
"nyc": "^15.0.0", | ||
"typescript": "^3.7.5" | ||
"typescript": "^5.2.2" | ||
}, | ||
@@ -39,0 +40,0 @@ "scripts": { |
Sorry, the diff of this file is too big to display
364455
1.04%5667
0.43%4
33.33%+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
Updated
Updated