Skip to content

Latest commit

 

History

History
790 lines (708 loc) · 62.4 KB

CHANGELOG.md

File metadata and controls

790 lines (708 loc) · 62.4 KB

Changelog

All notable changes to this project will be documented in this file.

0.13.0 - 2024-06-18

Added

Fixed

  • textDocument/publishDiagnostics
    • consider default value of a variable when determining if FROM is invalid or not (#269)

0.12.0 - 2024-05-23

Added

0.11.0 - 2023-09-10

Added

Fixed

0.10.2 - 2023-06-01

Fixed

  • textDocument/semanticTokens/full
    • ignore quotes in comments if it's within an embedded argument with CRLF used as a newline delimiter (#113)
    • prevent 0-length semantic tokens from being added (#114)
    • correct typo in the comment handling logic of semantic tokens with CRLF newlines (#116)
    • ignore escaped newlines when checking for strings in semantic tokens (#115)

0.10.1 - 2023-06-01

Fixed

0.10.0 - 2023-05-28

Added

Fixed

0.9.0 - 2022-05-04

Added

Fixed

0.8.0 - 2022-01-22

Added

  • textDocument/semanticTokens/full
    • variable semantic tokens are now split up into multiple tokens, offering a finer-grained view of what each part of it is for which should improve readability (rcjsuen/dockerfile-language-service#100)

Fixed

  • textDocument/publishDiagnostics

0.7.3 - 2021-12-12

Fixed

  • textDocument/completion
    • fix error returned when computing completion items at the end of a COPY instruction with flags (#258)
    • fix error returned when computing completion items at the end of a ADD instruction with flags (#259)
    • fix infinite loop in ADD and COPY instructions when calculating WORKDIR suggestions for a build stage that shares its name with the image (rcjsuen/dockerfile-language-service#99)
  • textDocument/formatting
  • textDocument/onTypeFormatting
  • textDocument/rangeFormatting

0.7.2 - 2021-10-20

Fixed

0.7.1 - 2021-09-21

Fixed

0.7.0 - 2021-09-19

Added

Changed

  • textDocument/publishDiagnostics

Fixed

0.6.0 - 2021-09-04

Added

  • textDocument/completion
  • textDocument/publishDiagnostics
    • flag duplicated escape parser directive declarations as being unnecessary (rcjsuen/#82)
    • flag duplicated CMD, ENTRYPOINT, and HEALTHCHECK instructions as being unnecessary diagnostics (rcjsuen/#82)
    • support heredoc syntax in ADD and COPY instructions (rcjsuen/#98)

0.5.0 - 2021-08-08

Added

Fixed

0.4.1 - 2021-04-12

Fixed

  • textDocument/publishDiagnostics
    • fixed a regression that caused the internal state of configurations to be stale which mean editors would not immediately be notified of changed diagnostics based on configuration changes (#256)

0.4.0 - 2021-04-11

Added

  • settings
    • docker.languageserver.formatter.ignoreMultilineInstructions? (#255)
      • value = ( true | false )
      • this will make the formatter ignore instructions that span multiple lines
  • textDocument/completion
  • textDocument/publishDiagnostics
  • textDocument/formatting
    • allow the formatter to skip formatting of instructions that span multiple lines (#255)
  • textDocument/onTypeFormatting
  • textDocument/rangeFormatting

Fixed

0.3.0 - 2021-01-20

Added

  • textDocument/publishDiagnostics
    • support --chmod flag in ADD instructions added in Docker CE 20.10 (#250)
    • support --chmod flag in COPY instructions added in Docker CE 20.10 (#251)

0.2.2 - 2020-01-07

Fixed

  • import all types from vscode-languageserver to prevent bundling issues (#249)

0.2.1 - 2020-01-06

Fixed

  • textDocument/semanticTokens
    • clearly declare that full document semantic tokens are supported in the returned server capabilities (#248)

0.2.0 - 2020-12-25

Added

Fixed

  • textDocument/semanticTokens
  • replace deprecated prepublish script with prepublishOnly (#111)
  • fix server crash caused by the finalizing of the LSP 3.16 specification (#247)

0.1.1 - 2020-07-13

Fixed

  • textDocument/didChange
    • correctly consider an event with multiple changes at the beginning of a file (#244)

0.1.0 - 2020-07-11

Added

  • textDocument/definition
  • textDocument/publishDiagnostics
    • warnings about the deprecated MAINTAINER instruction will now be specifically tagged as being a deprecation warning diagnostic (#242)
    • ARG and ENV instructions that span multiple lines with just a comment are now flagged as an error (rcjsuen/dockerfile-utils#78)
    • use DiagnosticTag to indicate if a Diagnostic is informing the user about a deprecation or not(rcjsuen/dockerfile-utils#80)

Fixed

  • textDocument/definition
  • textDocument/publishDiagnostics
  • textDocument/semanticTokens
    • allow embedded comments to immediately follow an ENV declaration (rcjsuen/dockerfile-language-service#69)
    • fix the semantic tokens calculation to allow flags to have options without a value and improved handling of multiline strings (#239)
  • fix builds so that Docker images are pushed to Docker Hub (#243)

0.0.24 - 2020-04-23

Fixed

  • textDocument/semanticTokens
    • improved support and parsing of strings and variables (#239)

0.0.23 - 2020-04-03

Added

Fixed

  • textDocument/hover
  • textDocument/publishDiagnostics
  • textDocument/semanticTokens
    • revamp to better handle strings, more tokens supported, and various fixes (#239)
  • textDocument/signatureHelp
    • use plain text instead of Markdown content for the signature label of the escape parser directive (#64)

0.0.22 - 2020-02-12

Added

  • textDocument/completion
  • textDocument/hover
  • textDocument/publishDiagnostics
  • textDocument/semanticTokens
    • experimental work-in-progress support to allow semantic tokens to be calculated and returned (#239)
      • as the language server protocol API is still in flux, the exact request parameters and response results may change
      • it is also possible that this request will not be fulfilled in a future release as a decision may be made to drop support for this

Fixed

0.0.21 - 2019-05-26

Added

Fixed

0.0.20 - 2019-01-01

Added

  • textDocument/foldingRange
  • textDocument/prepareRename
    • add support for determining whether something in a Dockerfile can be renamed or not (#231)

Fixed

0.0.19 - 2018-08-22

Added

  • textDocument/codeActions
    • return code action literals if the client supports it (#225)
  • textDocument/publishDiagnostics
  • textDocument/foldingRange
    • add support for computing folding ranges in a Dockerfile (#226)

Changed

  • upgraded the dependency of Mocha from 3.x to 5.x
    • versions prior to 4.x of Mocha dependended on Growl 1.9.2 which contained a security vulnerability
    • as Mocha is a devDependencies module, there is no reason to believe that consumers of the dockerfile-language-server-nodejs module itself was affected by this vulnerability

Fixed

  • textDocument/completion
    • send back deprecated items for MAINTAINER if the client supports it (#224)
  • textDocument/didChange
    • handle notifications that do not specify the range of the event (#227)
  • textDocument/publishDiagnostics

0.0.18 - 2018-06-30

Added

Fixed

0.0.17 - 2018-04-16

Added

  • support fulfillment of textDocument requests to the server even if textDocument/didOpen has not been sent for a file (#215)

Fixed

0.0.16 - 2018-04-14

Fixed

  • textDocument/publishDiagnostics
    • fix validator to consider the instructionJSONInSingleQuotes setting (#218)

0.0.15 - 2018-04-14

Added

  • settings
    • docker.languageserver.diagnostics.instructionJSONInSingleQuotes? (#217)
      • value = ( "ignore" | "warning" | "error" )
  • completionItem/resolve
    • use Markdown for a completion item's documentation field if the client supports it (#207)
  • textDocument/publishDiagnostics

Fixed

  • textDocument/didChange
    • apply received changes in a textDocument/didChange in the order given in the JSON result instead of trying to sort them and apply them backwards (#216)
  • textDocument/publishDiagnostics
    • clear diagnostics when server receives textDocument/didClose so that they do not linger in the client (#214)
    • fix incorrect validation error if a COPY uses JSON arguments and its last string argument is correctly defined as a folder (#217)
    • fix incorrect validation error if an ADD uses JSON arguments and its last string argument is correctly defined as a folder (rcjsuen/dockerfile-utils#30)
    • skip validation of content after a JSON's closing bracket (rcjsuen/dockerfile-utils#33)
    • fix validation of number of arguments for ADD and COPY instructions written in JSON (rcjsuen/dockerfile-utils#34)

0.0.14 - 2018-03-08

Added

  • update to target version 3.6.0 of the Language Server Protocol specification
  • create dependency on the dockerfile-language-service module (#205)
  • add package-lock.json file to help ensure a consistent dependency tree (#210)
  • update documentation to state that ARG was introduced in Docker 1.9 (rcjsuen/dockerfile-language-service#7)
  • textDocument/codeAction
    • create docker.command.removeEmptyContinuationLine to remove empty continuation lines in instructions that span multiple lines (#203)
  • textDocument/documentLink
    • create links to hub.docker.com for base image names in FROM (#204)
  • textDocument/hover
    • inspect client's capabilities to decide what content format to use for hovers (#209)
  • textDocument/publishDiagnostics
  • workspace/applyEdit
    • use versioned edits if the client supports it via the documentChanges client capability (#202)

Changed

  • this module now depends on version 4.0.0 of the vscode-languageserver npm module

Fixed

Removed

  • remove document analysis and processing code and tests in favor of the dockerfile-language-service module (#205)

0.0.13 - 2018-01-19

Added

  • create dependency on the dockerfile-utils module (#79)
  • textDocument/publishDiagnostics
    • warn if COPY's --from flag is invalid (#149)

Fixed

  • ignore ARG variables with no default values in an EXPOSE (#199)

Removed

  • remove validation code and tests in favor of the dockerfile-utils module (#79)

0.0.12 - 2018-01-11

Added

  • create dependency on the dockerfile-ast NPM module (#196)
  • textDocument/completion
    • documentation for ADD and COPY's --chown flag (#181)
  • textDocument/hover
    • ADD and COPY's --chown flag (#181)

Fixed

  • prevent signature help from showing in a multiline instruction's embedded comment (#195)
  • publish the docker-langserver binary with \n line endings for OS X (#198)

Removed

  • remove Dockerfile parsing code in src/parser (#196)

0.0.11 - 2017-11-15

Added

  • create a Docker image to run the language server (#189)

Fixed

  • prevent completion items from being displayed in comments (#190)
  • expand environment variables when validating an EXPOSE (#192)
  • ignore variables that are in a LABEL's single quoted value string (#191)
  • support environment variables that span multiple lines (#193)
  • ignore spaces that come after an environment variable (#194)

0.0.10 - 2017-10-23

Added

  • textDocument/codeAction
    • create docker.command.flagToChown to convert an unknown ADD or COPY flag to a --chown (#187)

Fixed

  • use a reasonable range for the diagnostic if an unknown flag has no name (#186)
  • specify a section name when sending a workspace/configuration request (#182)

0.0.9 - 2017-10-14

Added

  • settings
    • docker.languageserver.diagnostics.emptyContinuationLine? (#177)
      • value = ( "ignore" | "warning" | "error" )
      • toggles the diagnostic severity if empty continuation lines are found
  • textDocument/publishDiagnostics
    • warn about empty continuation lines (#177)
    • warn if ADD does not have two arguments (#185)

Fixed

  • allow parameters to be suggested even if an ARG has no variables defined (#184)
  • do not assume that clients support workspace/applyEdit (#183)
  • fix broken socket support (#178)

0.0.8 - 2017-10-05

Added

  • textDocument/codeAction
    • create commands for converting unknown HEALTHCHECK flags (#172)
      • docker.command.flagToHealthcheckInterval
      • docker.command.flagToHealthcheckRetries
      • docker.command.flagToHealthcheckStartPeriod
      • docker.command.flagToHealthcheckTimeout
    • create docker.command.flagToCopyFrom to convert an unknown COPY flag (#171)
  • textDocument/completion
    • HEALTHCHECK's CMD and NONE arguments (#169)
    • ADD and COPY's --chown flag (#166)
  • textDocument/publishDiagnostics
    • warn if HEALTHCHECK's argument is not CMD or NONE (#173)
    • warn if HEALTHCHECK has a flag but no arguments (#174)
    • validate --chown flag in ADD and COPY (#166)
  • textDocument/signatureHelp
    • update ADD's signature to support the new --chown flag (#166)
  • workspace/configuration
    • implemented support to allow validator settings to not be global (#179)

Fixed

  • correct the documentation of HEALTHCHECK's --retries flag's completion item (#170)
  • show correct parameter in HEALTHCHECK's signature help if it has an escaped newline (#175)
  • show correct parameter in ENV and LABEL's signature help if it has an escaped newline (#176)

0.0.7 - 2017-09-09

Added

  • textDocument/completion
    • COPY's --from build stage flag (#148)
    • add '-' as a trigger character to suggest instruction flags (#155)
    • suggest image tags in FROM instructions (#154)
    • set source image as suggested build stage's documentation text (#159)
    • suggest numeric build stage index if source image is unnamed (#160)
  • textDocument/hover
    • COPY's --from build stage flag (#150)
  • textDocument/publishDiagnostics
    • warn if ENV or LABEL is missing closing quote (#143)
    • warn if FROM's build stage name is invalid (#132)
    • warn if an invalid unit of time is used in a duration flag (#152)
    • warn if COPY does not have two arguments (#157)
  • textDocument/signatureHelp
    • escape parser directive (#147)
    • instruction flags (#147)
      • COPY's --from
      • HEALTHCHECK CMD flags
    • instructions (#162)

Fixed

  • correct handling of escaped quotes in ENV variables (#144)
  • include escape character in value of single quoted ENV variables (#146)
  • ignore whitespace that precedes an escaped newline in ENV variables (#147)
  • fix handling of escape characters in SHELL's JSON strings (#151)
  • do not suggest duplicated build stage names as completion items (#156)
  • only suggest build stages that come after the current COPY line (#158)
  • restrict operations on ARG and ENV variables to a build stage (#163)
  • make FROM variables only interact with the initial set of ARG instructions (#153)
  • skip validation of nested comments in escaped newlines of ENV and LABEL instructions (#167)
  • prevent hovers from rendering nested comments for ARG and ENV instructions (#168)

0.0.6 - 2017-08-12

Added

  • textDocument/completion
    • suggest completion items even if the prefix string's case does not match (#142)
  • textDocument/publishDiagnostics
    • warn about duplicated build stage names (#133)

Fixed

  • fix completion handling so that the escape parser directive is suggested in more cases (#138)
  • always use the first declaration of a variable for its definition (#141)
  • highlight ARG variables that get declared again (#140)

0.0.5 - 2017-08-07

Fixed

  • do not show arguments if snippets are not supported (#136)
  • show only one ARG completion item if snippets are not supported (#137)

0.0.4 - 2017-08-06

Fixed

  • created actual docker-langserver file instead of referencing server.js (#134)

0.0.3 - 2017-08-06

Added

  • created a docker-langserver binary for launching the server (#134)
  • textDocument/codeAction
    • created docker.command.convertToLowercase for directives not written in lowercase (#128)
  • textDocument/onTypeFormatting
    • format the next line if an escape character is inserted (#130)
  • textDocument/publishDiagnostics
    • validate the syntax of LABEL instructions (#100)
    • warn if invalid ONBUILD trigger instructions are used (#117)
    • warn if ENV/LABEL instructions have a blank name (#122)
    • EXPOSE
      • warn if an invalid protocol is specified (#126)
    • SHELL
      • check that SHELL instructions are written as a JSON array (#92)
      • warn if SHELL's JSON array is empty (#122)
  • workspace/executeCommand
    • handle docker.command.convertToLowercase and convert the string in the range to lowercase (#128)

Fixed

  • fixed parsing of escaped whitespace values in ENV instructions (#115)
  • prevent undeclared variables from being suggested as completion items (#118)
  • prevent completion items from being suggested in multiline instructions (#125)
  • handle TCP and UDP in an EXPOSE instruction's argument (#123)
  • only search for parser directives at the top of a Dockerfile (#129)
  • fix handling of escape characters nested in an instruction (#131)

0.0.2 - 2017-07-31

Added

  • settings
    • docker.languageserver.diagnostics.instructionCmdMultiple? (#81)
      • value = ( "ignore" | "warning" | "error" )
      • toggles the diagnostic severity if multiple CMD instructions are found in the Dockerfile
    • docker.languageserver.diagnostics.instructionEntrypointMultiple? (#90)
      • value = ( "ignore" | "warning" | "error" )
      • toggles the diagnostic severity if multiple ENTRYPOINT instructions are found in the Dockerfile
    • docker.languageserver.diagnostics.instructionHealthcheckMultiple? (#80)
      • value = ( "ignore" | "warning" | "error" )
      • toggles the diagnostic severity if multiple HEALTHCHECK instructions are found in the Dockerfile
  • textDocument/completion
    • suggest build stage names in a COPY instruction (#44)
    • add '=' as a trigger character
    • include the --start-period flag in HEALTHCHECK CMD items (#78)
    • HEALTHCHECK CMD flags (#69, #101)
    • suggest $ variables (#93)
      • ARG and ENV variables
      • default Docker ARG variables
      • add '$' as a trigger character
  • textDocument/hover
    • HEALTHCHECK CMD flags (#82, #104)
  • textDocument/publishDiagnostics
    • check the spelling of instruction flags (#75)
      • COPY's from
      • HEALTHCHECK's interval, retries, start-period, timeout
    • multiple instructions found when only one allowed
      • CMD (#81)
      • ENTRYPOINT (#90)
      • HEALTHCHECK (#80)
    • check that the same flag is not used twice (#83)
      • COPY's from
      • HEALTHCHECK's interval, retries, start-period, timeout
    • check that flags have a value defined (#91)
      • COPY's from
      • HEALTHCHECK's interval, retries, start-period, timeout
    • HEALTHCHECK
      • warn if arguments follow a HEALTHCHECK NONE (#84)
      • warn if the retries flag doesn't specify a number (#85)
      • warn if the retries flag is not a positive intger (#89)
      • warn if no arguments follow a HEALTHCHECK CMD (#96)
      • warn if duration flags are invalid (#87)
      • warn if duration flags do not specify a duration (#86)
      • warn if duration flags are too short (#97)
    • ONBUILD
      • trigger instruction not written in uppercase (#102)
      • create diagnostics for validating trigger instructions' content (#112)
  • created a CHANGELOG.md file to document the project's changes (#77)

Fixed

  • fixed a typo in completion items for WORKDIR (#76)
  • fixed a parsing problem with ENV variables and escaped characters (#94)
  • fixed CMD validation to not warn even if there are no arguments (#98)
  • fixed code actions to return something if a diagnostic's code is a string and not a number (#99)
  • fixed hovers not working for ONBUILD triggers that are not written in uppercase (#103)

0.0.1 - 2017-07-16

Added

  • textDocument/didChange
    • incremental document synchronization
  • textDocument/publishDiagnostics
    • instructions not written in uppercase
    • directives not written in lowercase
    • missing or incorrect number of expected of arguments to an instruction
    • invalid escape parser directive value
    • EXPOSE
      • invalid container port
    • FROM
      • no FROM instruction found
      • having a second argument not equal to the AS keyword
    • STOPSIGNAL
      • invalid stop signal definition
  • textDocument/codeAction
    • convert instruction to uppercase
    • remove extra argument to instruction
    • convert invalid escape directive to backslash
    • convert invalid escape directive to backtick
    • convert second argument of FROM to AS
  • textDocument/completion
    • snippets support
    • instructions
    • escaper parser directive
    • ONBUILD trigger instructions
  • completionItem/resolve
    • provide documentation information
  • textDocument/hover
    • instructions
    • escape parser directive
    • ONBUILD trigger instructions
    • ARG and ENV variables
  • textDocument/documentHighlight
    • ARG and ENV variables
    • FROM and COPY build stages
  • textDocument/rename
    • ARG and ENV variables
    • FROM and COPY build stages
  • textDocument/definition
    • ARG and ENV variables
    • FROM and COPY build stages
  • textDocument/documentSymbol
    • instructions
    • escape parser directive
  • textDocument/formatting
  • textDocument/rangeFormatting