{"id":16227368,"url":"https://github.com/malipetek/liquivelte-language-server","last_synced_at":"2025-04-08T04:27:37.802Z","repository":{"id":124949078,"uuid":"558971265","full_name":"malipetek/liquivelte-language-server","owner":"malipetek","description":null,"archived":false,"fork":false,"pushed_at":"2022-10-28T18:04:01.000Z","size":502,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T03:16:38.945Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/malipetek.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-28T18:03:57.000Z","updated_at":"2023-03-08T03:22:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d1c5c8a-dc05-472b-b9e1-8cf1f4a5ecdd","html_url":"https://github.com/malipetek/liquivelte-language-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malipetek%2Fliquivelte-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malipetek%2Fliquivelte-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malipetek%2Fliquivelte-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/malipetek%2Fliquivelte-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/malipetek","download_url":"https://codeload.github.com/malipetek/liquivelte-language-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247776999,"owners_count":20994206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T12:52:32.149Z","updated_at":"2025-04-08T04:27:37.781Z","avatar_url":"https://github.com/malipetek.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Svelte Language Server\n\nA language server (implementing the [language server protocol](https://microsoft.github.io/language-server-protocol/))\nfor Svelte.\n\nRequires Node 12 or later.\n\n## What is a language server?\n\nFrom https://microsoft.github.io/language-server-protocol/overview\n\n\u003e The idea behind a Language Server is to provide the language-specific smarts inside a server that can communicate with development tooling over a protocol that enables inter-process communication.\n\nIn simpler terms, this allows editor and addon devs to add support for svelte specific 'smarts' (e.g. diagnostics, autocomplete, etc) to any editor without reinventing the wheel.\n\n## Features\n\nSvelte language server is under development and the list of features will surely grow over time.\n\nCurrently Supported:\n\n-   Svelte\n    -   Diagnostic messages for warnings and errors\n    -   Svelte specific formatting (via [prettier-plugin-svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte))\n-   HTML (via [vscode-html-languageservice](https://github.com/Microsoft/vscode-html-languageservice))\n    -   Hover info\n    -   Autocompletions\n    -   [Emmet](https://emmet.io/)\n    -   Symbols in Outline panel\n-   CSS / SCSS / LESS (via [vscode-css-languageservice](https://github.com/Microsoft/vscode-css-languageservice))\n    -   Diagnostic messages for syntax and lint errors\n    -   Hover info\n    -   Autocompletions\n    -   Formatting (via [prettier](https://github.com/prettier/prettier))\n    -   [Emmet](https://emmet.io/)\n    -   Color highlighting and color picker\n    -   Symbols in Outline panel\n-   TypeScript / JavaScript (via TypeScript)\n    -   Diagnostics messages for syntax errors, semantic errors, and suggestions\n    -   Hover info\n    -   Formatting (via [prettier](https://github.com/prettier/prettier))\n    -   Symbols in Outline panel\n    -   Autocompletions\n    -   Go to definition\n    -   Code Actions\n\n## How can I use it?\n\nInstall a plugin for your editor:\n\n-   [VS Code](../svelte-vscode)\n\n## Settings\n\nThe language server has quite a few settings to toggle features. They are listed below. When using the VS Code extension, you can set these through the settings UI or in the `settings.json` using the keys mentioned below.\n\nWhen using the language server directly, put the settings as JSON inside `initializationOptions.configuration` for the [initialize command](https://microsoft.github.io/language-server-protocol/specification#initialize). When using the [didChangeConfiguration command](https://microsoft.github.io/language-server-protocol/specification#workspace_didChangeConfiguration), pass the JSON directly. The language server also accepts configuration for Emmet (key: `emmet`), Prettier (key: `prettier`), CSS (key: `css` / `less` / `scss`) and TypeScript (keys: `javascript` and `typescript` for JS/TS config).\n\nExample:\n\nInit:\n\n```js\n{\n    initializationOptions: {\n        configuration: {\n            svelte: {\n                plugin: {\n                    css: { enable: false },\n                    // ...\n                }\n            },\n            typescript: { /* .. */ },\n            javascript: { /* .. */ },\n            prettier: { /* .. */ },\n            // ...\n        }\n    }\n}\n```\n\nUpdate:\n\n```js\n{\n    svelte: {\n        plugin: {\n            css: { enable: false },\n            // ...\n        }\n    },\n    typescript: { /* .. */ },\n    javascript: { /* .. */ },\n    prettier: { /* .. */ },\n    // ...\n    }\n}\n```\n\n### List of settings\n\n##### `svelte.plugin.typescript.enable`\n\nEnable the TypeScript plugin. _Default_: `true`\n\n##### `svelte.plugin.typescript.diagnostics.enable`\n\nEnable diagnostic messages for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.hover.enable`\n\nEnable hover info for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.documentSymbols.enable`\n\nEnable document symbols for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.completions.enable`\n\nEnable completions for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.findReferences.enable`\n\nEnable find-references for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.definitions.enable`\n\nEnable go to definition for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.codeActions.enable`\n\nEnable code actions for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.selectionRange.enable`\n\nEnable selection range for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.rename.enable`\n\nEnable rename functionality for JS/TS variables inside Svelte files. _Default_: `true`\n\n##### `svelte.plugin.typescript.signatureHelp.enable`\n\nEnable signature help (parameter hints) for JS/TS. _Default_: `true`\n\n##### `svelte.plugin.typescript.semanticTokens.enable`\n\nEnable semantic tokens (semantic highlight) for TypeScript. _Default_: `true`\n\n##### `svelte.plugin.typescript.implementation.enable`\n\nEnable go to implementation for Typescript. _Default_: `true`\n\n##### `svelte.plugin.css.enable`\n\nEnable the CSS plugin. _Default_: `true`\n\n##### `svelte.plugin.css.globals`\n\nWhich 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.\n\n##### `svelte.plugin.css.diagnostics.enable`\n\nEnable diagnostic messages for CSS. _Default_: `true`\n\n##### `svelte.plugin.css.hover.enable`\n\nEnable hover info for CSS. _Default_: `true`\n\n##### `svelte.plugin.css.completions.enable`\n\nEnable auto completions for CSS. _Default_: `true`\n\n##### `svelte.plugin.css.completions.emmet`\n\nEnable emmet auto completions for CSS. _Default_: `true`\nIf you want to disable emmet completely everywhere (not just Svelte), you can also set `\"emmet.showExpandedAbbreviation\": \"never\"` in your settings.\n\n##### `svelte.plugin.css.documentColors.enable`\n\nEnable document colors for CSS. _Default_: `true`\n\n##### `svelte.plugin.css.colorPresentations.enable`\n\nEnable color picker for CSS. _Default_: `true`\n\n##### `svelte.plugin.css.documentSymbols.enable`\n\nEnable document symbols for CSS. _Default_: `true`\n\n##### `svelte.plugin.css.selectionRange.enable`\n\nEnable selection range for CSS. _Default_: `true`\n\n##### `svelte.plugin.html.enable`\n\nEnable the HTML plugin. _Default_: `true`\n\n##### `svelte.plugin.html.hover.enable`\n\nEnable hover info for HTML. _Default_: `true`\n\n##### `svelte.plugin.html.completions.enable`\n\nEnable auto completions for HTML. _Default_: `true`\n\n##### `svelte.plugin.html.completions.emmet`\n\nEnable emmet auto completions for HTML. _Default_: `true`\nIf you want to disable emmet completely everywhere (not just Svelte), you can also set `\"emmet.showExpandedAbbreviation\": \"never\"` in your settings.\n\n##### `svelte.plugin.html.tagComplete.enable`\n\nEnable HTML tag auto closing. _Default_: `true`\n\n##### `svelte.plugin.html.documentSymbols.enable`\n\nEnable document symbols for HTML. _Default_: `true`\n\n##### `svelte.plugin.html.linkedEditing.enable`\n\nEnable Linked Editing for HTML. _Default_: `true`\n\n##### `svelte.plugin.html.renameTags.enable`\n\nEnable rename tags for the opening/closing tag pairs in HTML. _Default_: `true`\n\n##### `svelte.plugin.svelte.enable`\n\nEnable the Svelte plugin. _Default_: `true`\n\n##### `svelte.plugin.svelte.diagnostics.enable`\n\nEnable diagnostic messages for Svelte. _Default_: `true`\n\n##### `svelte.plugin.svelte.compilerWarnings`\n\nSvelte compiler warning codes to ignore or to treat as errors. Example: { 'css-unused-selector': 'ignore', 'unused-export-let': 'error'}\n\n##### `svelte.plugin.svelte.format.enable`\n\nEnable formatting for Svelte (includes css \u0026 js) using [prettier-plugin-svelte](https://github.com/sveltejs/prettier-plugin-svelte). _Default_: `true`\n\nYou can set some formatting options through this extension. They will be ignored if there's any kind of configuration file, for example a `.prettierrc` file. Read more about Prettier's configuration file [here](https://prettier.io/docs/en/configuration.html).\n\n##### `svelte.plugin.svelte.format.config.svelteSortOrder`\n\nFormat: join the keys `options`, `scripts`, `markup`, `styles` with a `-` in the order you want. _Default_: `options-scripts-markup-styles`\n\nThis option is ignored if there's any kind of configuration file, for example a `.prettierrc` file.\n\n##### `svelte.plugin.svelte.format.config.svelteStrictMode`\n\nMore strict HTML syntax. _Default_: `false`\n\nThis option is ignored if there's any kind of configuration file, for example a `.prettierrc` file.\n\n##### `svelte.plugin.svelte.format.config.svelteAllowShorthand`\n\nOption to enable/disable component attribute shorthand if attribute name and expression are the same. _Default_: `true`\n\nThis option is ignored if there's any kind of configuration file, for example a `.prettierrc` file.\n\n##### `svelte.plugin.svelte.format.config.svelteBracketNewLine`\n\nPut the `\u003e` of a multiline element on a new line. _Default_: `true`\n\nThis option is ignored if there's any kind of configuration file, for example a `.prettierrc` file.\n\n##### `svelte.plugin.svelte.format.config.svelteIndentScriptAndStyle`\n\nWhether or not to indent code inside `\u003cscript\u003e` and `\u003cstyle\u003e` tags. _Default_: `true`\n\nThis option is ignored if there's any kind of configuration file, for example a `.prettierrc` file.\n\n##### `svelte.plugin.svelte.format.config.printWidth`\n\nMaximum line width after which code is tried to be broken up. This is a Prettier core option. If you have the Prettier extension installed, this option is ignored and the corresponding option of that extension is used instead. This option is also ignored if there's any kind of configuration file, for example a `.prettierrc` file. _Default_: `80`\n\n##### `svelte.plugin.svelte.format.config.singleQuote`\n\nUse single quotes instead of double quotes, where possible. This is a Prettier core option. If you have the Prettier extension installed, this option is ignored and the corresponding option of that extension is used instead. This option is also ignored if there's any kind of configuration file, for example a `.prettierrc` file. _Default_: `false`\n\n##### `svelte.plugin.svelte.hover.enable`\n\nEnable hover info for Svelte (for tags like #if/#each). _Default_: `true`\n\n##### `svelte.plugin.svelte.completions.enable`\n\nEnable autocompletion for Svelte (for tags like #if/#each). _Default_: `true`\n\n##### `svelte.plugin.svelte.rename.enable`\n\nEnable rename/move Svelte files functionality. _Default_: `true`\n\n##### `svelte.plugin.svelte.codeActions.enable`\n\nEnable code actions for Svelte. _Default_: `true`\n\n##### `svelte.plugin.svelte.selectionRange.enable`\n\nEnable selection range for Svelte. _Default_: `true`\n\n##### `svelte.plugin.svelte.defaultScriptLanguage`\n\nThe default language to use when generating new script tags in Svelte. _Default_: `none`\n\n## Credits\n\n-   [James Birtles](https://github.com/jamesbirtles) for creating the foundation which this language server is built on\n-   Vue's [Vetur](https://github.com/vuejs/vetur) language server which heavily inspires this project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalipetek%2Fliquivelte-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalipetek%2Fliquivelte-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalipetek%2Fliquivelte-language-server/lists"}