mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-24 09:48:42 +02:00
plugins/lsp: modernize implem of language-servers
This commit is contained in:
parent
57464f22bb
commit
e6018ac195
12 changed files with 618 additions and 598 deletions
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
helpers,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.plugins.lsp.servers.svelte;
|
||||
inherit (lib.nixvim) defaultNullOpts mkNullOrOption;
|
||||
inherit (lib) types;
|
||||
in
|
||||
{
|
||||
# Options: https://github.com/sveltejs/language-tools/tree/master/packages/language-server#settings
|
||||
|
@ -14,161 +14,161 @@ in
|
|||
svelte = {
|
||||
plugin = {
|
||||
typescript = {
|
||||
enable = helpers.defaultNullOpts.mkBool true "Enable the TypeScript plugin.";
|
||||
enable = defaultNullOpts.mkBool true "Enable the TypeScript plugin.";
|
||||
|
||||
diagnostics = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable diagnostic messages for TypeScript.
|
||||
'';
|
||||
};
|
||||
|
||||
hover = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable hover info for TypeScript.
|
||||
'';
|
||||
};
|
||||
|
||||
documentSymbols = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable document symbols for TypeScript.
|
||||
'';
|
||||
};
|
||||
|
||||
completions = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable completions for TypeScript.
|
||||
'';
|
||||
};
|
||||
|
||||
codeActions = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable code actions for TypeScript.
|
||||
'';
|
||||
};
|
||||
|
||||
selectionRange = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable selection range for TypeScript.
|
||||
'';
|
||||
};
|
||||
|
||||
signatureHelp = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable signature help (parameter hints) for JS/TS.
|
||||
'';
|
||||
};
|
||||
|
||||
semanticTokens = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable semantic tokens (semantic highlight) for TypeScript.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
css = {
|
||||
enable = helpers.defaultNullOpts.mkBool true "Enable the CSS plugin.";
|
||||
enable = defaultNullOpts.mkBool true "Enable the CSS plugin.";
|
||||
|
||||
globals = helpers.mkNullOrOption types.str ''
|
||||
globals = mkNullOrOption types.str ''
|
||||
Which css files should be checked for global variables (`--global-var: value;`).
|
||||
These variables are added to the css completions.
|
||||
String of comma-separated file paths or globs relative to workspace root.
|
||||
'';
|
||||
|
||||
diagnostics = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable diagnostic messages for CSS.
|
||||
'';
|
||||
};
|
||||
|
||||
hover = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable hover info for CSS.
|
||||
'';
|
||||
};
|
||||
|
||||
completions = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable completions for CSS.
|
||||
'';
|
||||
|
||||
emmet = helpers.defaultNullOpts.mkBool true ''
|
||||
emmet = defaultNullOpts.mkBool true ''
|
||||
Enable emmet auto completions for CSS.
|
||||
'';
|
||||
};
|
||||
|
||||
documentColors = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable document colors for CSS.
|
||||
'';
|
||||
};
|
||||
|
||||
colorPresentations = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable color picker for CSS.
|
||||
'';
|
||||
};
|
||||
|
||||
documentSymbols = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable document symbols for CSS.
|
||||
'';
|
||||
};
|
||||
|
||||
selectionRange = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable selection range for CSS.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
html = {
|
||||
enable = helpers.defaultNullOpts.mkBool true "Enable the HTML plugin.";
|
||||
enable = defaultNullOpts.mkBool true "Enable the HTML plugin.";
|
||||
|
||||
hover = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable hover info for HTML.
|
||||
'';
|
||||
};
|
||||
|
||||
completions = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable completions for HTML.
|
||||
'';
|
||||
|
||||
emmet = helpers.defaultNullOpts.mkBool true ''
|
||||
emmet = defaultNullOpts.mkBool true ''
|
||||
Enable emmet auto completions for HTML.
|
||||
'';
|
||||
};
|
||||
|
||||
tagComplete = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable tag auto closing.
|
||||
'';
|
||||
};
|
||||
|
||||
documentSymbols = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable document symbols for HTML.
|
||||
'';
|
||||
};
|
||||
|
||||
linkedEditing = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable Linked Editing for HTML.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
svelte = {
|
||||
enable = helpers.defaultNullOpts.mkBool true "Enable the Svelte plugin.";
|
||||
enable = defaultNullOpts.mkBool true "Enable the Svelte plugin.";
|
||||
|
||||
diagnostics = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable diagnostic messages for Svelte.
|
||||
'';
|
||||
};
|
||||
|
||||
compilerWarnings = helpers.mkNullOrOption (with types; attrsOf str) ''
|
||||
compilerWarnings = mkNullOrOption (with types; attrsOf str) ''
|
||||
Svelte compiler warning codes to ignore or to treat as errors.
|
||||
Example:
|
||||
```
|
||||
|
@ -179,7 +179,7 @@ in
|
|||
'';
|
||||
|
||||
format = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable formatting for Svelte (includes css & js) using `prettier-plugin-svelte`.
|
||||
|
||||
You can set some formatting options through this extension.
|
||||
|
@ -188,21 +188,21 @@ in
|
|||
'';
|
||||
|
||||
config = {
|
||||
svelteSortOrder = helpers.defaultNullOpts.mkStr "options-scripts-markup-styles" ''
|
||||
svelteSortOrder = defaultNullOpts.mkStr "options-scripts-markup-styles" ''
|
||||
Format: join the keys `options`, `scripts`, `markup`, `styles` with a `-` in the
|
||||
order you want.
|
||||
|
||||
This option is ignored if there's any kind of configuration file, for example a
|
||||
`.prettierrc` file.
|
||||
'';
|
||||
svelteStrictMode = helpers.defaultNullOpts.mkBool false ''
|
||||
svelteStrictMode = defaultNullOpts.mkBool false ''
|
||||
More strict HTML syntax.
|
||||
|
||||
This option is ignored if there's any kind of configuration file, for example a
|
||||
`.prettierrc` file.
|
||||
'';
|
||||
|
||||
svelteAllowShorthand = helpers.defaultNullOpts.mkBool true ''
|
||||
svelteAllowShorthand = defaultNullOpts.mkBool true ''
|
||||
Option to enable/disable component attribute shorthand if attribute name and
|
||||
expression are the same.
|
||||
|
||||
|
@ -210,21 +210,21 @@ in
|
|||
`.prettierrc` file.
|
||||
'';
|
||||
|
||||
svelteBracketNewLine = helpers.defaultNullOpts.mkBool true ''
|
||||
svelteBracketNewLine = defaultNullOpts.mkBool true ''
|
||||
Put the `>` of a multiline element on a new line.
|
||||
|
||||
This option is ignored if there's any kind of configuration file, for example a
|
||||
`.prettierrc` file.
|
||||
'';
|
||||
|
||||
svelteIndentScriptAndStyle = helpers.defaultNullOpts.mkBool true ''
|
||||
svelteIndentScriptAndStyle = defaultNullOpts.mkBool true ''
|
||||
Whether or not to indent code inside `<script>` and `<style>` tags.
|
||||
|
||||
This option is ignored if there's any kind of configuration file, for example a
|
||||
`.prettierrc` file.
|
||||
'';
|
||||
|
||||
printWidth = helpers.defaultNullOpts.mkInt 80 ''
|
||||
printWidth = defaultNullOpts.mkInt 80 ''
|
||||
Maximum line width after which code is tried to be broken up.
|
||||
|
||||
This is a Prettier core option.
|
||||
|
@ -234,7 +234,7 @@ in
|
|||
`.prettierrc` file.
|
||||
'';
|
||||
|
||||
singleQuote = helpers.defaultNullOpts.mkBool false ''
|
||||
singleQuote = defaultNullOpts.mkBool false ''
|
||||
Use single quotes instead of double quotes, where possible.
|
||||
|
||||
This is a Prettier core option.
|
||||
|
@ -247,37 +247,37 @@ in
|
|||
};
|
||||
|
||||
hover = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable hover info for Svelte (for tags like `#if`/`#each`).
|
||||
'';
|
||||
};
|
||||
|
||||
completions = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable completions for TypeScript.
|
||||
Enable autocompletion for Svelte (for tags like `#if`/`#each`).
|
||||
'';
|
||||
};
|
||||
|
||||
rename = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable rename/move Svelte files functionality.
|
||||
'';
|
||||
};
|
||||
|
||||
codeActions = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable code actions for Svelte.
|
||||
'';
|
||||
};
|
||||
|
||||
selectionRange = {
|
||||
enable = helpers.defaultNullOpts.mkBool true ''
|
||||
enable = defaultNullOpts.mkBool true ''
|
||||
Enable selection range for Svelte.
|
||||
'';
|
||||
};
|
||||
|
||||
defaultScriptLanguage = helpers.mkNullOrOption types.str ''
|
||||
defaultScriptLanguage = mkNullOrOption types.str ''
|
||||
The default language to use when generating new script tags in Svelte.
|
||||
'';
|
||||
};
|
||||
|
@ -285,7 +285,7 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
plugins.lsp.servers.svelte.extraOptions.init_options = {
|
||||
configuration = cfg.initOptions;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue