HTML language service extracted from VSCode to be reused, e.g in the Monaco editor.
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:
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-languageservice
repo tovscode/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
- cd
- 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 commandDebug: Attach to Node process
and pick thecode-oss
process with thehtml-language-features
path - 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.