Skip to content

Commit

Permalink
WIP #82 Flag duplicated parser directive diagnostics as being unneces…
Browse files Browse the repository at this point in the history
…sary

Signed-off-by: Remy Suen <[email protected]>
  • Loading branch information
rcjsuen committed Aug 29, 2021
1 parent 039e6f5 commit 45cbdfa
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Changelog
All notable changes to this project will be documented in this file.

## [Unreleased]
### Added
- flag duplicated escape parser directive declarations as being unnecessary ([#82](https://github.com/rcjsuen/dockerfile-utils/issues/82))

## [0.6.0] - 2021-08-28
### Added
- support heredoc syntax in ADD and COPY instructions ([#98](https://github.com/rcjsuen/dockerfile-utils/issues/98))
Expand Down
21 changes: 9 additions & 12 deletions src/dockerValidator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1441,7 +1441,7 @@ export class Validator {
}

private static createDuplicatedEscapeDirective(start: Position, end: Position): Diagnostic {
return Validator.createError(start, end, Validator.getDiagnosticMessage_DirectiveEscapeDuplicated(), ValidationCode.DUPLICATED_ESCAPE_DIRECTIVE);
return Validator.createError(start, end, Validator.getDiagnosticMessage_DirectiveEscapeDuplicated(), ValidationCode.DUPLICATED_ESCAPE_DIRECTIVE, [DiagnosticTag.Unnecessary]);
}

static createInvalidEscapeDirective(start: Position, end: Position, value: string): Diagnostic {
Expand Down Expand Up @@ -1624,8 +1624,8 @@ export class Validator {
return Validator.createError(start, end, Validator.getDiagnosticMessage_InstructionUnknown(instruction), ValidationCode.UNKNOWN_INSTRUCTION);
}

static createError(start: Position, end: Position, description: string, code?: ValidationCode): Diagnostic {
return Validator.createDiagnostic(DiagnosticSeverity.Error, start, end, description, code);
static createError(start: Position, end: Position, description: string, code?: ValidationCode, tags?: DiagnosticTag[]): Diagnostic {
return Validator.createDiagnostic(DiagnosticSeverity.Error, start, end, description, code, tags);
}

private static createJSONInSingleQuotes(range: Range, severity: ValidationSeverity | undefined): Diagnostic | null {
Expand Down Expand Up @@ -1675,13 +1675,9 @@ export class Validator {

createMaintainerDeprecated(start: Position, end: Position): Diagnostic | null {
if (this.settings.deprecatedMaintainer === ValidationSeverity.ERROR) {
const diagnostic = Validator.createError(start, end, Validator.getDiagnosticMessage_DeprecatedMaintainer(), ValidationCode.DEPRECATED_MAINTAINER);
diagnostic.tags = [DiagnosticTag.Deprecated];
return diagnostic;
return Validator.createError(start, end, Validator.getDiagnosticMessage_DeprecatedMaintainer(), ValidationCode.DEPRECATED_MAINTAINER, [DiagnosticTag.Deprecated]);
} else if (this.settings.deprecatedMaintainer === ValidationSeverity.WARNING) {
const diagnostic = Validator.createWarning(start, end, Validator.getDiagnosticMessage_DeprecatedMaintainer(), ValidationCode.DEPRECATED_MAINTAINER);
diagnostic.tags = [DiagnosticTag.Deprecated];
return diagnostic;
return Validator.createWarning(start, end, Validator.getDiagnosticMessage_DeprecatedMaintainer(), ValidationCode.DEPRECATED_MAINTAINER, [DiagnosticTag.Deprecated]);
}
return null;
}
Expand All @@ -1695,11 +1691,11 @@ export class Validator {
return null;
}

static createWarning(start: Position, end: Position, description: string, code?: ValidationCode): Diagnostic {
return Validator.createDiagnostic(DiagnosticSeverity.Warning, start, end, description, code);
static createWarning(start: Position, end: Position, description: string, code?: ValidationCode, tags?: DiagnosticTag[]): Diagnostic {
return Validator.createDiagnostic(DiagnosticSeverity.Warning, start, end, description, code, tags);
}

static createDiagnostic(severity: DiagnosticSeverity, start: Position, end: Position, description: string, code?: ValidationCode): Diagnostic {
static createDiagnostic(severity: DiagnosticSeverity, start: Position, end: Position, description: string, code?: ValidationCode, tags?: DiagnosticTag[]): Diagnostic {
return {
range: {
start: start,
Expand All @@ -1708,6 +1704,7 @@ export class Validator {
message: description,
severity: severity,
code: code,
tags: tags,
source: "dockerfile-utils"
};
}
Expand Down
3 changes: 2 additions & 1 deletion test/dockerValidator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -551,7 +551,8 @@ function assertDirectiveEscapeDuplicated(diagnostic: Diagnostic, startLine: numb
assert.equal(diagnostic.code, ValidationCode.DUPLICATED_ESCAPE_DIRECTIVE);
assert.equal(diagnostic.severity, DiagnosticSeverity.Error);
assert.equal(diagnostic.source, source);
assert.strictEqual(diagnostic.tags, undefined);
assert.strictEqual(diagnostic.tags.length, 1);
assert.strictEqual(diagnostic.tags[0], DiagnosticTag.Unnecessary);
assert.equal(diagnostic.message, Validator.getDiagnosticMessage_DirectiveEscapeDuplicated());
assert.equal(diagnostic.range.start.line, startLine);
assert.equal(diagnostic.range.start.character, startCharacter);
Expand Down

0 comments on commit 45cbdfa

Please sign in to comment.