mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 08:07:49 +00:00
HTML files in Angular projects were highlighted as plain HTML. Languages can now declare framework UI modes with root markers (angular.json, node_modules/@angular/core); files under such a root get the framework's editor mode, re-detected when a marker appears or disappears, and the root-marker lookup is shared with language server roots. The Angular Template mode (vendored @codemirror/lang-angular, MIT) adds @if/@for/@switch/@defer/@let blocks, key and animation binding names, and colours {{ }} delimiters.
Lazily loaded editor modes are now loaded before a document's first editor opens, so a file never renders as plain text first (this also left Angular templates uncoloured).
Co-authored-by: nntndfrk <2458463+nntndfrk@users.noreply.github.com>
32 lines
1.2 KiB
TOML
32 lines
1.2 KiB
TOML
id = "html"
|
|
name = "HTML"
|
|
extensions = ["html", "htm", "xhtml", "shtml", "html.tmpl"]
|
|
first-line = "^\\s*<!(?i:doctype)\\s+html"
|
|
block-comment = ["<!--", "-->"]
|
|
indent = { tab-size = 2, insert-spaces = true }
|
|
ui-mode = "HTML"
|
|
tree-sitter = "html"
|
|
|
|
# Angular projects: component templates, with bindings and interpolations
|
|
# highlighted as expressions.
|
|
[[framework-ui-modes]]
|
|
ui-mode = "Angular Template"
|
|
root-markers = ["angular.json", "node_modules/@angular/core"]
|
|
|
|
# Angular projects only: component templates. First, so that hover, rename and
|
|
# document symbols of templates come from it rather than plain HTML.
|
|
[[language-servers]]
|
|
name = "angular-language-server"
|
|
command = "ngserver"
|
|
args = ["--stdio", "--includeCompletionsWithSnippetText", "--includeAutomaticOptionalChainCompletions"]
|
|
root-markers = ["angular.json", "node_modules/@angular/core"]
|
|
require-root-marker = true
|
|
install-hint = "npm i -g @angular/language-server"
|
|
|
|
[[language-servers]]
|
|
name = "vscode-html-language-server"
|
|
command = "vscode-html-language-server"
|
|
args = ["--stdio"]
|
|
initialization-options = { provideFormatter = true, embeddedLanguages = { css = true, javascript = true } }
|
|
install-hint = "npm i -g vscode-langservers-extracted"
|