The vscode-html-languageservice does not cover syntax highlighting. VS Code uses TextMate grammars for that, with a grammar that is maintained in https://github.com/textmate/html.tmbundle.
link the folder 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, npm link
cd vscode/extensions/html-language-features/server, npm link vscode-html-languageservice
run VSCode out of source (vscode/scripts/code.sh|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
set breakpoints, e.g. in htmlCompletion.ts
in the instance run from sources, invoke code completion in the .html file
License
(MIT License)
Copyright 2016-2026, Microsoft
src/languageFacts/data/webCustomData.ts (shipped as lib/esm/languageFacts/data/webCustomData.js)
are built upon content from Mozilla Developer Network and distributed under CC BY-SA 2.5.
vscode-html-languageservice
HTML language service extracted from VSCode to be reused, e.g in the Monaco editor.
Why?
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
The vscode-html-languageservice does not cover syntax highlighting. VS Code uses TextMate grammars for that, with a grammar that is maintained in https://github.com/textmate/html.tmbundle.
All HTML entities (elements, properties, etc) are sourced from https://github.com/microsoft/vscode-custom-data/tree/master/web-data and transpiled here. For adding or fixing existing properties’ completion/hover description, please open PR there.
Installation
Development
npm inpm testto compile and run testsHow can I run and debug the service?
htmlCompletion.tsHow can I run and debug the service inside an instance of VSCode?
vscode-html-languageservicerepo tovscode/extensions/html-language-features/serverto run VSCode with the latest changes from that folder:vscode-html-languageservice,npm linkvscode/extensions/html-language-features/server,npm link vscode-html-languageservicevscode/scripts/code.sh|bat) and open a.htmlfilevscode-html-languageservicesources, run commandDebug: Attach to Node processand pick thecode-ossprocess with thehtml-language-featurespathhtmlCompletion.ts.htmlfileLicense
(MIT License)
Copyright 2016-2026, Microsoft
src/languageFacts/data/webCustomData.ts(shipped aslib/esm/languageFacts/data/webCustomData.js) are built upon content from Mozilla Developer Network and distributed under CC BY-SA 2.5.