Skip to content
Go to file


HTML language service extracted from VSCode to be reused, e.g in the Monaco editor.

npm Package NPM Downloads Azure DevOps Build Status Travis Build Status


The vscode-html-languageservice contains the language smarts behind the HTML editing experience of Visual Studio Code and the Monaco editor.

  • doComplete / doComplete2 (async) provide completion proposals for a given location.

  • setCompletionParticipants allows participant to provide suggestions for specific tokens.

  • doHover provides hover information at a given location.

  • format formats the code at the given range.

  • findDocumentLinks finds all links in the document.

  • findDocumentSymbols finds all the symbols in the document.

  • getFoldingRanges return folding ranges for the given document.

  • getSelectionRanges return the selection ranges for the given document. ...

For the complete API see htmlLanguageService.ts and htmlLanguageTypes.ts


npm install --save vscode-html-languageservice


  • clone this repo, run yarn
  • yarn test to compile and run tests

How can I run and debug the service?

  • open the folder in VSCode.
  • set breakpoints, e.g. in htmlCompletion.ts
  • run the Unit tests from the run viewlet and wait until a breakpoint is hit: image

How can I run and debug the service inside an instance of VSCode?

  • run VSCode out of sources setup as described here:
  • link the fodler of the vscode-html-languageservice repo to vscode/extensions/html-language-features/server to run VSCode with the latest changes from that folder:
    • cd vscode-html-languageservice, yarn link
    • cd vscode/extensions/html-language-features/server, `yarn link vscode-html-languageservice
  • run VSCode out of source (vscode/scripts/|bat) and open a .html file
  • in VSCode window that is open on the vscode-html-languageservice sources, run command Debug: Attach to Node process and pick the code-oss process with the html-language-features path image
  • set breakpoints, e.g. in htmlCompletion.ts
  • in the instance run from sources, invoke code completion in the .html file


(MIT License)

Copyright 2016-2020, Microsoft

With the exceptions of data/*.json, which is built upon content from Mozilla Developer Network and distributed under CC BY-SA 2.5.

You can’t perform that action at this time.