This is the SCSS language server that powers the Some Sass extension for Visual Studio Code, available as an independent and reusable language server.
The language server provides:
- Full support for
@use
and@forward
, including aliases, prefixes and hiding. - Workspace-wide code navigation and refactoring, such as Rename Symbol.
- Rich documentation through SassDoc.
- Language features for
%placeholder-selectors
, both when using them and writing them. - Suggestions and hover info for built-in Sass modules, when used with
@use
.
This language server is designed to run alongside the VS Code CSS language server.
See Editors with clients. If your editor is not listed, refer to your editor's documentation for integrating with a language server using LSP.
You can install the language server with npm
:
npm install --global some-sass-language-server
Then start the language server like so:
some-sass-language-server --stdio
Options
--debug
– runs the development build of the language server, helpful to get more context if the server crashes
The language server requests configuration via workspace/configuration
on the somesass
key. All fields are optional.
-
suggestAllFromOpenDocument
– VS Code has built-in code suggestions for symbols declared in the open document, so the default behavior for this server is to not include them. For other editors, you may want to turn this on (default:false
). -
suggestFromUseOnly
– If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules (default:false
). -
suggestionStyle
- controls the style of suggestions for mixins and placeholders, eithernobracket
,bracket
orall
(includes both, if applicable) (default:all
). -
scannerExclude
– array of minimatch/glob patterns that the scanner ignores (default:["**/.git/**", "**/node_modules/**", "**/bower_components/**"]
). -
scannerDepth
– limit the directory depth of the initial scan for.scss
files (default: 30). -
suggestFunctionsInStringContextAfterSymbols
– customize when to suggest functions inside strings (default:(+-*%
).
The options can also be passed as initialization options, on the settings
key.
This language server is designed to run alongside the VS Code CSS language server.
Comparison ofvscode-css-languageservice
and some-sass-language-service
Request | Capability | vscode-css | some-sass |
---|---|---|---|
textDocument/codeAction
|
CSS code actions | ✅ | |
SCSS code actions | ✅ | ||
textDocument/colorPresentation
|
Color picker for CSS colors | ✅ | |
textDocument/completion
|
CSS completions | ✅ | |
SCSS same-document completions | ✅ | ✅ | |
SCSS workspace completions | ✅ | ||
SassDoc completions | ✅ | ||
textDocument/definition
|
Same-document definition | ✅ | ✅ |
Workspace definition | ✅ | ||
textDocument/documentColor
|
CSS colors | ✅ | |
SCSS variable colors | ✅ | ||
textDocument/documentHighlight
|
Highlight references in document | ✅ | |
textDocument/documentLink
|
Navigate to linked document | ✅ | |
textDocument/documentSymbol
|
Go to symbol in document | ✅ | |
textDocument/foldingRange
|
Code block folding | ✅ | |
textDocument/formatting
|
Format document | ✅ | |
textDocument/hover
|
CSS hover info | ✅ | |
SCSS hover info | ✅ | ||
SassDoc hover info | ✅ | ||
textDocument/rangeFormatting
|
Format selection | ✅ | |
textDocument/references
|
CSS references | ✅ | |
SCSS references | ✅ | ||
textDocument/rename
|
Same-document rename | ✅ | ✅ |
Workspace rename | ✅ | ||
textDocument/selectionRange
|
Ranges for expand/shrink selection | ✅ | |
textDocument/signatureHelp
|
SCSS function/mixin signature help | ✅ | |
workspace/symbol
|
Go to symbol in workspace | ✅ |
See this list.
See CONTRIBUTING.md.