vscode-html-languageservice
v5.6.1
Published
Language service for HTML
Keywords
Readme
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
npm install --save vscode-html-languageserviceDevelopment
- clone this repo, run
npm i npm testto 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:

How can I run and debug the service inside an instance of VSCode?
- run VSCode out of sources setup as described here: https://github.com/Microsoft/vscode/wiki/How-to-Contribute
- link the folder of the
vscode-html-languageservicerepo tovscode/extensions/html-language-features/serverto 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
- cd
- run VSCode out of source (
vscode/scripts/code.sh|bat) and open a.htmlfile - in VSCode window that is open on the
vscode-html-languageservicesources, run commandDebug: Attach to Node processand pick thecode-ossprocess with thehtml-language-featurespath
- set breakpoints, e.g. in
htmlCompletion.ts - in the instance run from sources, invoke code completion in the
.htmlfile
License
(MIT License)
Copyright 2016-2023, Microsoft
src/languageFacts/data/webCustomData.ts (shipped as lib/esm/languageFacts/data/webCustomData.ts and lib/umd/languageFacts/data/webCustomData.ts)
are built upon content from Mozilla Developer Network and distributed under CC BY-SA 2.5.
