🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

dockerfile-language-service

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dockerfile-language-service - npm Package Compare versions

Comparing version

to
0.12.0

15

CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
## [0.12.0] - 2024-05-04
### Added
- support navigating the definitions of heredocs ([#122](https://github.com/rcjsuen/dockerfile-language-service/issues/122))
### Changed
- altered the return type of `setCapabilities(Capabilities)` in `DockerfileLanguageService`
- previously it was implicitly set as `any` but it has now been changed to `void`
- the implementation never did return anything so this should hopefully not affect anyone using the library
## [0.11.0] - 2023-09-10

@@ -15,2 +24,5 @@ ### Added

### Fixed
- correct link range calculation if tag provided with a digest ([#120](https://github.com/rcjsuen/dockerfile-language-service/issues/120))
## [0.10.2] - 2023-06-01

@@ -508,3 +520,4 @@ ### Fixed

[Unreleased]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.11.0...HEAD
[Unreleased]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.12.0...HEAD
[0.12.0]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.11.0...v0.12.0
[0.11.0]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.10.2...v0.11.0

@@ -511,0 +524,0 @@ [0.10.2]: https://github.com/rcjsuen/dockerfile-language-service/compare/v0.10.1...v0.10.2

@@ -13,2 +13,3 @@ import { Range, Position } from 'vscode-languageserver-types';

static isInsideRange(position: Position, range: Range): boolean;
static isEmpty(range: Range): boolean;
static rangeEquals(range: Range, range2: Range): boolean;

@@ -15,0 +16,0 @@ static positionEquals(position: Position, position2: Position): boolean;

@@ -69,2 +69,5 @@ (function (factory) {

};
Util.isEmpty = function (range) {
return range.start.line === range.end.line && range.start.character === range.end.character;
};
Util.rangeEquals = function (range, range2) {

@@ -71,0 +74,0 @@ return Util.positionEquals(range.start, range2.start) && Util.positionEquals(range.end, range2.end);

@@ -7,2 +7,4 @@ import { Position, Range, Location, TextDocumentIdentifier } from 'vscode-languageserver-types';

static findDefinition(dockerfile: Dockerfile, position: Position): Property;
private static checkHeredocs;
private static computeHeredocDefinition;
private computeVariableDefinition;

@@ -9,0 +11,0 @@ computeDefinitionRange(content: string, position: Position): Range | null;

@@ -144,2 +144,34 @@ (function (factory) {

};
DockerDefinition.checkHeredocs = function (heredocs, position) {
for (var _i = 0, heredocs_1 = heredocs; _i < heredocs_1.length; _i++) {
var heredoc = heredocs_1[_i];
var nameRange = heredoc.getNameRange();
if (docker_1.Util.isInsideRange(position, nameRange)) {
return docker_1.Util.isEmpty(nameRange) ? null : nameRange;
}
var delimiterRange = heredoc.getDelimiterRange();
if (delimiterRange !== null && docker_1.Util.isInsideRange(position, delimiterRange)) {
return nameRange;
}
}
return null;
};
DockerDefinition.computeHeredocDefinition = function (dockerfile, position) {
for (var _i = 0, _a = dockerfile.getInstructions(); _i < _a.length; _i++) {
var instruction = _a[_i];
if (instruction instanceof dockerfile_ast_1.Copy) {
var range = DockerDefinition.checkHeredocs(instruction.getHeredocs(), position);
if (range !== null) {
return range;
}
}
else if (instruction instanceof dockerfile_ast_1.Run) {
var range = DockerDefinition.checkHeredocs(instruction.getHeredocs(), position);
if (range !== null) {
return range;
}
}
}
return null;
};
DockerDefinition.prototype.computeVariableDefinition = function (dockerfile, position) {

@@ -164,2 +196,6 @@ var property = DockerDefinition.findDefinition(dockerfile, position);

}
range = DockerDefinition.computeHeredocDefinition(dockerfile, position);
if (range !== null) {
return vscode_languageserver_types_1.Location.create(textDocument.uri, range);
}
return null;

@@ -166,0 +202,0 @@ };

2

lib/main.d.ts

@@ -98,3 +98,3 @@ import { Position, CompletionItem, Range, CodeActionContext, Command, TextDocumentIdentifier, Location, DocumentHighlight, SymbolInformation, SignatureHelp, TextEdit, DocumentLink, Hover, FormattingOptions, Diagnostic, MarkupKind, FoldingRange, CompletionItemTag, SemanticTokens } from 'vscode-languageserver-types';

export interface DockerfileLanguageService {
setCapabilities(capabilities: Capabilities): any;
setCapabilities(capabilities: Capabilities): void;
computeCodeActions(textDocument: TextDocumentIdentifier, range: Range, context: CodeActionContext): Command[];

@@ -101,0 +101,0 @@ computeCommandEdits(content: string, command: string, args: any[]): TextEdit[];

@@ -11,3 +11,3 @@ {

],
"version": "0.11.0",
"version": "0.12.0",
"author": "Remy Suen",

@@ -14,0 +14,0 @@ "license": "MIT",