wc_language_server
plugins.lsp.servers.wc_language_server.enable
Whether to enable https://github.com/wc-toolkit/wc-language-server Web Components Language
Server provides intelligent editor support for Web Components and custom
elements. It offers advanced HTML diagnostics, completion, and
validation for custom elements, including support for attribute types,
deprecation, and duplicate attribute detection. The language server uses
the Custom Elements
Manifest to
generate component integration and validation information
wc-language-server can be installed by following the instructions at
the GitHub
repository.
The default cmd assumes that the wc-language-server binary can be
found in $PATH. Alternatively, you can install it via
mason.nvim:
:MasonInstall wc-language-server
Configuration
The language server reads settings from wc.config.js (or
.ts/.mjs/.cjs) at the project root. Use it to customize manifest
sources, file scoping, and diagnostic behavior. Example wc.config.js:
export default {
// Fetch manifest from a custom path or URL
manifestSrc: './dist/custom-elements.json',
// Narrow which files opt into the language server
include: ['src/**/*.ts', 'src/**/*.html'],
// Skip specific globs
exclude: ['**/*.stories.ts'],
// Per-library overrides
libraries: {
'@your/pkg': {
manifestSrc: 'https://cdn.example.com/custom-elements.json',
tagFormatter: (tag) => tag.replace(/^x-/, 'my-'),
},
},
// Customize diagnostic severity levels
diagnosticSeverity: {
duplicateAttribute: 'warning',
unknownElement: 'info',
},
};
See the configuration documentation for more details…
Type: boolean
Default:
false
Example:
true
Declared by:
plugins.lsp.servers.wc_language_server.package
Package to use for wc_language_server. Nixpkgs does not include this package, and as such an external derivation or null must be provided.
Type: null or package
Default: No package, throws when undefined
Declared by:
plugins.lsp.servers.wc_language_server.packageFallback
When enabled, the language server package will be added to the end of the PATH (suffix) instead of the beginning (prefix).
This can be useful if you want local versions of the language server (e.g. from a devshell) to override the Nixvim version.
Type: boolean
Default:
false
Declared by:
plugins.lsp.servers.wc_language_server.autostart
Controls if the FileType autocommand that launches a language server is created.
If false, allows for deferring language servers until manually launched with
:LspStart (|lspconfig-commands|).
Type: null or boolean or raw lua code
Default:
null
Plugin default: true
Declared by:
plugins.lsp.servers.wc_language_server.cmd
A list where each entry corresponds to the blankspace delimited part of the command that launches the server.
The first entry is the binary used to run the language server. Additional entries are passed as arguments.
Type: null or (list of string)
Default:
null when package is null, otherwise null
Declared by:
plugins.lsp.servers.wc_language_server.extraOptions
Extra options for the wc_language_server language server.
Type: attribute set of anything
Default:
{ }
Declared by:
plugins.lsp.servers.wc_language_server.filetypes
Set of filetypes for which to attempt to resolve {root_dir}. May be empty, or server may specify a default value.
Type: null or (list of string)
Default:
null
Declared by:
plugins.lsp.servers.wc_language_server.rootMarkers
A list of files that mark the root of the project/workspace.
Vim’s LSP will try to share the same language server instance for all
buffers matching filetypes within the same project.
A new server instance is only spawned when opening a buffer with a different project root.
See :h lsp-config and :h vim.fs.root().
Type: null or (list of (string or raw lua code)) or raw lua code
Default:
null
Plugin default: null
Declared by:
plugins.lsp.servers.wc_language_server.settings
The settings for this LSP.
Type: open submodule of attribute set of lua value
Default:
{ }
Example:
{
callback = lib.nixvim.mkRaw ''
function()
print('nixvim')
end
'';
foo_bar = 42;
hostname = "localhost:8080";
}
Declared by: