diff --git a/docs/src/README.md b/docs/src/README.md index 18644fb5..f5599f86 100644 --- a/docs/src/README.md +++ b/docs/src/README.md @@ -8,7 +8,7 @@ Some features include: - Workspace-wide code navigation and refactoring, such as Rename Symbol. - Rich documentation through [SassDoc][sassdoc]. - Language features for [`%placeholders`][placeholder], both when using them and writing them. -- Support for both SCSS and intended [syntaxes]. +- Support for both SCSS and intended [syntaxes], as well as CSS. ![](./images/highlight-reel.gif) @@ -20,11 +20,11 @@ You can find the extension here: - On the [Open VSX Registry][openvsx]. - In the [Releases section on GitHub][ghreleases]. -See the User guide section to learn more about what the extension can do. +See the User guide section to learn more about what the extension can do, or jump into [Settings](./user-guide/settings.md). ## Some Sass Language Server -Some Sass is also a language server using the [Language Server Protocol (LSP)][lsp]. +Some Sass is also a language server using the [Language Server Protocol (LSP)][lsp]. It can be used for both SCSS, Sass (indented) and CSS. The language server is [published on npm][npm], and can be used with any editor that has an LSP client. See [Getting started](./language-server/getting-started.md) to learn more. diff --git a/docs/src/images/usage/settings-built-in.png b/docs/src/images/usage/settings-built-in.png new file mode 100644 index 00000000..43e522c3 Binary files /dev/null and b/docs/src/images/usage/settings-built-in.png differ diff --git a/docs/src/language-server/configure-a-client.md b/docs/src/language-server/configure-a-client.md index 32e4aa8a..aab5a8ca 100644 --- a/docs/src/language-server/configure-a-client.md +++ b/docs/src/language-server/configure-a-client.md @@ -10,15 +10,19 @@ The language server requests settings via the [`workspace/configuration` message You can also configure the language server by sending the [`workspace/didChangeConfiguration` message](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_didChangeConfiguration). -While settings keys are documented with dot-notation, the shape of the settings is a nested object. +While settings keys are documented with dot-notation, the shape of the settings is a nested object. Your editor may be able to translate from dot-notation to a properly formated object, but not every editor allows this. -For example, while we may document `"somesass.loadPaths": []` (and write it this way in `settings.json` in Code), the actual shape of the settings object sent to the server looks like this. +For example, while we may document `"somesass.scss.workspace.loadPaths": []` (and write it this way in `settings.json` in VS Code), the actual shape of the settings object sent to the server looks like this. ```json { "settings": { "somesass": { - "loadPaths": [] + "scss": { + "workspace": { + "loadPaths": [] + } + } } } } diff --git a/docs/src/language-server/existing-clients.md b/docs/src/language-server/existing-clients.md index dd2e5b8d..153e1fc5 100644 --- a/docs/src/language-server/existing-clients.md +++ b/docs/src/language-server/existing-clients.md @@ -4,6 +4,6 @@ In addition to the extension for Visual Studio Code and VSCodium, these are editors with ready-configured clients, maintained by the community. + - [Helix](./helix.md) - [Neovim](./neovim.md) - diff --git a/docs/src/language-server/getting-started.md b/docs/src/language-server/getting-started.md index 463d887f..4f345ebf 100644 --- a/docs/src/language-server/getting-started.md +++ b/docs/src/language-server/getting-started.md @@ -2,7 +2,9 @@ Some Sass is a language server using the [Language Server Protocol (LSP)][lsp]. -The language server is [published independently to npm][npm], and can be used with any editor that has an LSP client. The server is designed to run alongside the [VS Code CSS language server](https://github.com/hrsh7th/vscode-langservers-extracted). +The language server is [published independently to npm][npm], and can be used with any editor that has an LSP client. + +It's recommended you turn off any existing language server that handles SCSS and Sass. You may also use this language server to handle CSS. Its feature set matches that of `vscode-css-language-server`. ## Getting started @@ -18,9 +20,19 @@ Then start the language server like so: some-sass-language-server --stdio ``` -**Options** +Tweak the log level by using the `--loglevel` argument, or by using the `somesass.workspace.logLevel` setting. Available loglevels are: + +- silent +- fatal +- error +- warn +- info (default) +- debug +- trace -`--debug` – runs the development build of the language server, helpful to get more context if the server crashes +```sh +some-sass-language-server --stdio --loglevel debug +``` ## Configure your editor's client diff --git a/docs/src/language-server/helix.md b/docs/src/language-server/helix.md index 55eb2fa7..ed17a316 100644 --- a/docs/src/language-server/helix.md +++ b/docs/src/language-server/helix.md @@ -8,16 +8,26 @@ You can configure new language servers in [`.config/helix/languages.toml`](https [language-server.some-sass-language-server] command = "some-sass-language-server" args = ["--stdio"] -config = { somesass = { loadPaths = [] } } +# see https://wkillerud.github.io/some-sass/user-guide/settings.html for all available settings +config = { somesass = { workspace = { loadPaths = [] } } } [[language]] name = "scss" language-servers = [ - { name = "some-sass-language-server" }, - { name = "vscode-css-language-server" }, + { name = "some-sass-language-server" } ] ``` The language server will start once you open an SCSS file. +You can also use it for CSS. + +```toml +[[language]] +name = "css" +language-servers = [ + { name = "some-sass-language-server" } +] +``` + At time of writing there doesn't seem to be a grammar for Sass indented available in Helix. diff --git a/docs/src/user-guide/settings.md b/docs/src/user-guide/settings.md index 5a33823f..5eb562d4 100644 --- a/docs/src/user-guide/settings.md +++ b/docs/src/user-guide/settings.md @@ -4,140 +4,176 @@ This document describes the settings available in Some Sass. ## Recommended settings -These are the recommended settings: +These are the recommended settings if you're just getting started. ```jsonc { // Recommended if you don't rely on @import - "somesass.suggestFromUseOnly": true, + "somesass.scss.completion.suggestFromUseOnly": true, + "somesass.sass.completion.suggestFromUseOnly": true, - // Optional, if you get suggestions from the current document after namespace.$ (you don't need the $ for narrowing down suggestions) + // Optional, if you get suggestions from the current document after namespace.$ (you don't need to type the $ for narrowing down suggestions) "editor.wordBasedSuggestions": false, } ``` -### About word-based suggestions +### Going all in on Some Sass -When you get completion suggestions and type `namespace.$`, Visual Studio Code treats `$` as a fresh start for suggestions. It will start matching any variable in the current document. There are two ways to get around this: +If you don't need language features for [Less](https://lesscss.org/) and don't rely on the built-in formatter, we recommend turning off the built-in CSS/SCSS/Less language extension in Visual Studio Code. For formating we recommend [Prettier](https://prettier.io/). -1. Turn off word-based suggestions by setting `"editor.wordBasedSuggestions": false`. -2. Don't type the `$` when you write the variable name, let completions fill it out for you. +Some Sass has all the features of the built-in language extension, though they are turned off by default. -With the second approach you can keep word-based suggestions turned on. +Once you turn off the built-in language features you can configure Some Sass to handle both CSS and Sass for you. This way you get the best experience without Some Sass and VS Code getting in each others way. -## Settings reference - -These are the settings you can use to tune Some Sass. - -### Code suggestion - -#### Only include suggestions from used modules - -If your project is on the modern module syntax (`@use` and `@forward` instead of `@import`), you may want to turn -on this setting. - -With this setting turned on, Some Sass will only suggest variables, mixins and functions from the namespaces that are -in use in the open document. This setting will be turned on by default at some point after `@import` becomes CSS-only. - -- JSON key: `somesass.suggestFromUseOnly`. -- Default value: `false`. - -#### Suggest variables, mixins, and functions from the open document - -Visual Studio Code has built-in suggestions for variables, mixins and functions created in the open document. - -By default Some Sass will _not_ send suggestions for the same symbols. -If you prefer the suggestions from Some Sass (for instance if you use SassDoc), you can opt in by turning on this setting. -There will unfortunately be duplicates. - -- JSON key: `somesass.suggestAllFromOpenDocument` -- Default value: `false`. - -#### Suggestion style - -Mixins with `@content` SassDoc annotations and `%placeholders` get two suggestions by default: - -- One without `{ }`. -- One _with_ `{ }`. This one creates a new block, and moves the cursor inside the block. - -If you find this noisy, you can control which suggestions you would like to see: - -- All suggestions (default). -- No brackets. -- Only brackets. This still includes other suggestions, where there are no brackets to begin with. - -#### Decide when function suggestions should kick in - -Suggest functions after the specified symbols when in a string context. -For example, if you add the `/` symbol to this setting, then `background: url(images/he|)` -could suggest a `hello()` function (`|` in this case indicates cursor position). - -- JSON key: `somesass.suggestFunctionsInStringContextAfterSymbols`. -- Default value: `" (+-*%"`. +#### How to turn off the built-in language feature -#### Suggest values for CSS properties +1. Go to the Extensions tab and search for `@builtin css language features`. +2. Click the settings icon and pick Disable from the list. +3. Click Restart extension to turn it off. -By default, Some Sass triggers property value completion after selecting a CSS property. -Use this setting to disable this behavior. +![Screenshot showing the Extension tab filtered to show the css language features](../images/usage/settings-built-in.png) -An example would be accepting a suggestion for `display:` and immediately see suggestions like -`inline-block` for the value. +#### How to turn on Some Sass language features -Note that for SCSS this only applies if `somesass.suggestAllFromOpenDocument` is true, -which is not the case by default in VS Code. -Use `scss.completion.triggerPropertyValueCompletion` to configure the feature built in -to VS Code. +Now that you disabled the built-in language features you need to turn on those language features in Some Sass. -- JSON key: `somesass.triggerPropertyValueCompletion`. -- Default value: `true`. - -### Workspace - -#### Load paths - -A list of paths relative to the workspace root where the language server should look for stylesheets loaded by `@use` and `@import`. `node_modules` is always included. - -This feature can also be seen referred to as `includePaths`. - -Note that you will have to [configure your Sass compiler separately](https://sass-lang.com/documentation/cli/dart-sass/#load-path). - -As an example, say you have a stylesheet `shared/my-lib/variables.scss` and would like to import it as `my-lib/variables` in your other stylesheets. - -Add this to your settings and restart Visual Studio Code. +Open your user settings JSON and paste this configuration. You may want to restart VS Code to make sure the changes apply. ```json { - "somesass.loadPaths": ["shared/"] + "somesass.css.codeAction.enabled": true, + "somesass.css.colors.enabled": true, + "somesass.css.completion.enabled": true, + "somesass.css.definition.enabled": true, + "somesass.css.diagnostics.enabled": true, + "somesass.css.foldingRanges.enabled": true, + "somesass.css.highlights.enabled": true, + "somesass.css.hover.enabled": true, + "somesass.css.links.enabled": true, + "somesass.css.references.enabled": true, + "somesass.css.rename.enabled": true, + "somesass.css.selectionRanges.enabled": true, + "somesass.css.signatureHelp.enabled": true, + "somesass.css.workspaceSymbol.enabled": true, + + "somesass.scss.codeAction.enabled": true, + "somesass.scss.colors.enabled": true, + "somesass.scss.colors.includeFromCurrentDocument": true, + "somesass.scss.completion.enabled": true, + "somesass.scss.completion.includeFromCurrentDocument": true, + "somesass.scss.definition.enabled": true, + "somesass.scss.diagnostics.enabled": true, + "somesass.scss.diagnostics.lint.enabled": true, + "somesass.scss.foldingRanges.enabled": true, + "somesass.scss.highlights.enabled": true, + "somesass.scss.hover.enabled": true, + "somesass.scss.links.enabled": true, + "somesass.scss.references.enabled": true, + "somesass.scss.rename.enabled": true, + "somesass.scss.selectionRanges.enabled": true, + "somesass.scss.signatureHelp.enabled": true, + "somesass.scss.workspaceSymbol.enabled": true } ``` -In a different stylesheet you can then get `shared/my-lib/variables.scss` like this: - -```scss -@use "my-lib/variables"; -``` - -#### Exclude files or folders - -List of [micromatch](https://github.com/micromatch/micromatch) patterns for directories that are excluded when scanning. - -- JSON key: `somesass.scannerExclude`. -- Default value: `["**/.git/**", "**/node_modules/**", "**/bower_components/**"]`. - -#### Adjust scanner depth - -Depending on your project size, you may want to tweak this setting to control how many files are included. - -- JSON key: `somesass.scannerDepth`. -- Default: `30`. - -#### Stop scanner from following links +## Settings reference -`@deprecated` +You can configure similar settings for both SCSS, Sass (indented) and CSS. There are also some settings that apply to the workspace regardless of syntax. + +### SCSS + +For brevity the ID column omits the `somesass.scss` prefix. For example, to use the setting `codeAction.enabled` use the ID `somesass.scss.codeAction.enabled`. + +| Id | Description | Default | +| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| `codeAction.enabled` | Enable or disable all code actions. | `true` | +| `colors.enabled` | Enable or disable all color decorators. | `true` | +| `colors.includeFromCurrentDocument` | Compatibility setting for VS Code. By default the built-in SCSS server shows color decorators for variables declared in the current document. To avoid duplicates Some Sass will not show them unless you opt in. | `false` | +| `completion.enabled` | Enable or disable all completions (IntelliSense). | `true` | +| `completion.includeFromCurrentDocument` | Compatibility setting for VS Code. By default the built-in SCSS server shows suggestions for variables, mixins and functions declared in the current document. To avoid duplicates Some Sass will not suggest them unless you opt in. | `false` | +| `completion.suggestFromUseOnly` | If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules. | `false` | +| `completion.mixinStyle` | Controls the style of suggestions for mixins. Options are `"all"`, `"nobracket"` (only show suggestions without brackets) and `"bracket"` (where brackets are suggested, don't suggest without brackets). | `"all"` | +| `completion.triggerPropertyValueCompletion` | By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior. | `true` | +| `completion.completePropertyWithSemicolon` | Insert semicolon at end of line when completing CSS properties. | `true` | +| `definition.enabled` | Enable or disable Go to Definition. | `true` | +| `diagnostics.enabled` | Enable or disable all diagnostics (deprecation, errors and lint rules). | `true` | +| `diagnostics.deprecation.enabled` | Enable or disable deprecation diagnostics (strike-through). | `true` | +| `diagnostics.lint.enabled` | Enable or disable all linting. | `false` | +| `diagnostics.lint.*` | For the available lint rules and what they do, see the [VS Code docs for CSS and SCSS lint settings](https://code.visualstudio.com/docs/languages/css#_customizing-css-scss-and-less-settings) | | +| `foldingRanges.enabled` | Enable or disable folding ranges. | `false` | +| `highlights.enabled` | Enable or disable highlights. | `false` | +| `hover.enabled` | Enable or disable all hover information. | `true` | +| `hover.documentation` | Show property and value documentation in CSS hovers. | `true` | +| `hover.references` | Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations. | `true` | +| `links.enabled` | Enable or disable the link provider that lets you click an import and open the file. | `false` | +| `references.enabled` | Enable or disable Find all references. | `true` | +| `rename.enabled` | Enable or disable Rename. | `true` | +| `selectionRanges.enabled` | Enable or disable selection ranges. | `false` | +| `signatureHelp.enabled` | Enable or disable signature help. | `true` | +| `workspaceSymbol.enabled` | Enable or disable workspace symbol. | `true` | + +### Sass indented + +For brevity the ID column omits the `somesass.sass` prefix. For example, to use the setting `codeAction.enabled` use the ID `somesass.sass.codeAction.enabled`. + +| Id | Description | Default | +| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| `codeAction.enabled` | Enable or disable all code actions. | `true` | +| `colors.enabled` | Enable or disable all color decorators. | `true` | +| `completion.enabled` | Enable or disable all completions (IntelliSense). | `true` | +| `completion.suggestFromUseOnly` | If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules. | `false` | +| `completion.mixinStyle` | Controls the style of suggestions for mixins. Options are `"all"`, `"nobracket"` (only show suggestions without brackets) and `"bracket"` (where brackets are suggested, don't suggest without brackets). | `"all"` | +| `completion.triggerPropertyValueCompletion` | By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior. | `true` | +| `definition.enabled` | Enable or disable Go to Definition. | `true` | +| `diagnostics.enabled` | Enable or disable all diagnostics (deprecation, errors and lint rules). | `true` | +| `diagnostics.deprecation.enabled` | Enable or disable deprecation diagnostics (strike-through). | `true` | +| `diagnostics.lint.enabled` | Enable or disable all linting. | `true` | +| `diagnostics.lint.*` | For the available lint rules and what they do, see the [VS Code docs for CSS and SCSS lint settings](https://code.visualstudio.com/docs/languages/css#_customizing-css-scss-and-less-settings) | | +| `foldingRanges.enabled` | Enable or disable folding ranges. | `true` | +| `highlights.enabled` | Enable or disable highlights. | `true` | +| `hover.enabled` | Enable or disable all hover information. | `true` | +| `hover.documentation` | Show property and value documentation in CSS hovers. | `true` | +| `hover.references` | Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations. | `true` | +| `links.enabled` | Enable or disable the link provider that lets you click an import and open the file. | `true` | +| `references.enabled` | Enable or disable Find all references. | `true` | +| `rename.enabled` | Enable or disable Rename. | `true` | +| `selectionRanges.enabled` | Enable or disable selection ranges. | `true` | +| `signatureHelp.enabled` | Enable or disable signature help. | `true` | +| `workspaceSymbol.enabled` | Enable or disable workspace symbol. | `true` | + +### CSS + +For brevity the ID column omits the `somesass.css` prefix. For example, to use the setting `codeAction.enabled` use the ID `somesass.css.codeAction.enabled`. + +| Id | Description | Default | +| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | +| `codeAction.enabled` | Enable or disable all code actions. | `false` | +| `colors.enabled` | Enable or disable all color decorators. | `false` | +| `completion.enabled` | Enable or disable all completions (IntelliSense). | `false` | +| `completion.triggerPropertyValueCompletion` | By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior. | `true` | +| `completion.completePropertyWithSemicolon` | Insert semicolon at end of line when completing CSS properties. | `true` | +| `definition.enabled` | Enable or disable Go to Definition. | `false` | +| `diagnostics.enabled` | Enable or disable all diagnostics (deprecation, errors and lint rules). | `false` | +| `diagnostics.deprecation.enabled` | Enable or disable deprecation diagnostics (strike-through). | `false` | +| `diagnostics.lint.enabled` | Enable or disable all linting. | `false` | +| `diagnostics.lint.*` | For the available lint rules and what they do, see the [VS Code docs for CSS and SCSS lint settings](https://code.visualstudio.com/docs/languages/css#_customizing-css-scss-and-less-settings) | | +| `foldingRanges.enabled` | Enable or disable folding ranges. | `false` | +| `highlights.enabled` | Enable or disable highlights. | `false` | +| `hover.enabled` | Enable or disable all hover information. | `false` | +| `hover.documentation` | Show property and value documentation in CSS hovers. | `false` | +| `hover.references` | Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations. | `false` | +| `links.enabled` | Enable or disable the link provider that lets you click an import and open the file. | `false` | +| `references.enabled` | Enable or disable Find all references. | `false` | +| `rename.enabled` | Enable or disable Rename. | `false` | +| `selectionRanges.enabled` | Enable or disable selection ranges. | `false` | +| `signatureHelp.enabled` | Enable or disable signature help. | `false` | +| `workspaceSymbol.enabled` | Enable or disable workspace symbol. | `false` | +| `customData` | A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md). Some Sass loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files. The file paths are relative to workspace and only workspace folder settings are considered. | `[]` | -If you don't want Some Sass to follow `@import`, `@use` or `@forward` links you can turn this setting off. -This will limit functionality, and is not recommended. This setting will be removed at some point -after `@import` becomes CSS-only. +### Workspace -- JSON key: `somesass.scanImportedFiles`. -- Default: `true`. +| Id | Description | Default | +| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | +| `somesass.workspace.loadPaths` | A list of paths relative to the workspace root where the language server should look for stylesheets loaded by `@use` and `@import`. `node_modules` is always included. Note that you will have to [configure your Sass compiler separately](https://sass-lang.com/documentation/cli/dart-sass/#load-path). | `[]` | +| `somesass.workspace.exclude` | List of glob patterns for directories that are excluded in the initial scan for Sass files. Files in the exclude list will still be processed if referenced by `@use`, `@forward` and `@import` (for example a depencendy you use from `node_modules`). | `["**/.git/**", "**/node_modules/**"]` | +| `somesass.workspace.logLevel` | Control how much gets logged to the Output window. | `"info"` | diff --git a/packages/language-server/src/server.ts b/packages/language-server/src/server.ts index c6a02333..3b17082f 100644 --- a/packages/language-server/src/server.ts +++ b/packages/language-server/src/server.ts @@ -158,8 +158,8 @@ export class SomeSassServer { ); settings.workspace.workspaceRoot = workspaceRoot; - if (settings.logLevel) { - this.log.setLogLevel(settings.logLevel); + if (settings.workspace.logLevel) { + this.log.setLogLevel(settings.workspace.logLevel); } if (ls) { diff --git a/vscode-extension/package.json b/vscode-extension/package.json index df5508e6..e40bad4b 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -1,1044 +1,1261 @@ { - "name": "some-sass", - "displayName": "Some Sass", - "description": "Full support for @use and @forward, including aliases, prefixes and hiding. Rich documentation through SassDoc. Workspace-wide code navigation and refactoring.", - "version": "3.9.3", - "private": true, - "publisher": "SomewhatStationery", - "license": "MIT", - "engines": { - "vscode": "^1.86.0" - }, - "icon": "icon.png", - "homepage": "https://wkillerud.github.io/some-sass/", - "repository": { - "type": "git", - "url": "https://github.com/wkillerud/some-sass" - }, - "keywords": [ - "scss", - "sass", - "sassdoc", - "autocompletion", - "intellisense", - "refactor" - ], - "categories": [ - "Programming Languages" - ], - "activationEvents": [ - "onLanguage:css", - "onLanguage:scss", - "onLanguage:sass", - "onLanguage:vue", - "onLanguage:svelte", - "onLanguage:astro", - "onCommand:_somesass.applyExtractCodeAction" - ], - "capabilities": { - "virtualWorkspaces": true - }, - "browser": "./dist/browser-client.js", - "main": "./dist/node-client.js", - "contributes": { - "languages": [ - { - "id": "sass", - "aliases": [ - "Sass", - "sass-indented" - ], - "extensions": [ - ".sass" - ], - "configuration": "./languages/sass.configuration.json" - } - ], - "grammars": [ - { - "language": "sass", - "scopeName": "source.sass", - "path": "./languages/sass.tmLanguage.json" - } - ], + "name": "some-sass", + "displayName": "Some Sass", + "description": "Full support for @use and @forward, including aliases, prefixes and hiding. Rich documentation through SassDoc. Workspace-wide code navigation and refactoring.", + "version": "3.9.3", + "private": true, + "publisher": "SomewhatStationery", + "license": "MIT", + "engines": { + "vscode": "^1.86.0" + }, + "icon": "icon.png", + "homepage": "https://wkillerud.github.io/some-sass/", + "repository": { + "type": "git", + "url": "https://github.com/wkillerud/some-sass" + }, + "keywords": [ + "scss", + "sass", + "sassdoc", + "autocompletion", + "intellisense", + "refactor" + ], + "categories": [ + "Programming Languages" + ], + "activationEvents": [ + "onLanguage:css", + "onLanguage:scss", + "onLanguage:sass", + "onLanguage:vue", + "onLanguage:svelte", + "onLanguage:astro", + "onCommand:_somesass.applyExtractCodeAction" + ], + "capabilities": { + "virtualWorkspaces": true + }, + "browser": "./dist/browser-client.js", + "main": "./dist/node-client.js", + "contributes": { + "languages": [ + { + "id": "sass", + "aliases": [ + "Sass", + "sass-indented" + ], + "extensions": [ + ".sass" + ], + "configuration": "./languages/sass.configuration.json" + } + ], + "grammars": [ + { + "language": "sass", + "scopeName": "source.sass", + "path": "./languages/sass.tmLanguage.json" + } + ], "configuration": [ - { - "title": "SCSS", - "properties": { - "somesass.scss.codeAction.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all code actions." - }, - "somesass.scss.colors.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all color decorators." - }, - "somesass.scss.colors.includeFromCurrentDocument": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Compatibility setting for VS Code. By default the built-in SCSS server shows color decorators for variables declared in the current document. To avoid duplicates Some Sass will not show them unless you opt in." - }, - "somesass.scss.completion.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all completions (IntelliSense)." - }, - "somesass.scss.completion.includeFromCurrentDocument": { - "type": "boolean", - "default": false, - "description": "Compatibility setting for VS Code. By default the built-in SCSS server shows suggestions for variables, mixins and functions declared in the current document. To avoid duplicates Some Sass will not suggest them unless you opt in." - }, - "somesass.scss.completion.suggestFromUseOnly": { - "type": "boolean", - "default": false, - "description": "If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules." - }, - "somesass.scss.completion.mixinStyle": { - "type": "string", - "default": "all", - "description": "Controls the style of suggestions for mixins and placeholders.", - "enum": ["all", "nobracket", "bracket"], - "enumItemLabels": ["All", "No brackets", "Only brackets"], - "enumDescriptions": [ - "Show all suggestions", - "Only show suggestions without brackets", - "Where brackets are suggested, omit duplicates without brackets" - ] - }, - "somesass.scss.completion.triggerPropertyValueCompletion": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." - }, - "somesass.scss.completion.completePropertyWithSemicolon": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Insert semicolon at end of line when completing CSS properties." - }, - "somesass.scss.definition.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables Go to Definition." - }, - "somesass.scss.diagnostics.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all diagnostics (deprecation, errors and lint rules)." - }, - "somesass.scss.diagnostics.deprecation.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables deprecation diagnostics (strike-through)." - }, - "somesass.scss.diagnostics.lint.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enables or disables all linting." - }, - "somesass.scss.diagnostics.lint.compatibleVendorPrefixes": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties." - }, - "somesass.scss.diagnostics.lint.vendorPrefix": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "When using a vendor-specific prefix, also include the standard property." - }, - "somesass.scss.diagnostics.lint.duplicateProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Do not use duplicate style definitions." - }, - "somesass.scss.diagnostics.lint.emptyRules": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "Do not use empty rulesets." - }, - "somesass.scss.diagnostics.lint.importStatement": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Import statements can lead to sequential loading of CSS." - }, - "somesass.scss.diagnostics.lint.boxModel": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "Do not use `width` or `height` when using `padding` or `border`." - }, - "somesass.scss.diagnostics.lint.universalSelector": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "The universal selector (`*`) is known to be slow." - }, - "somesass.scss.diagnostics.lint.zeroUnits": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "No unit needed for zero." - }, - "somesass.scss.diagnostics.lint.fontFaceProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "markdownDescription": "`@font-face` rule must define `src` and `font-family` properties." - }, - "somesass.scss.diagnostics.lint.hexColorLength": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "error", - "description": "Hex colors must consist of 3, 4, 6 or 8 hex numbers." - }, - "somesass.scss.diagnostics.lint.argumentsInColorFunction": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "error", - "description": "Invalid number of parameters." - }, - "somesass.scss.diagnostics.lint.unknownProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "Unknown vendor specific property." - }, - "somesass.scss.diagnostics.lint.validProperties": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string" - }, - "scope": "resource", - "default": [], - "description": "A list of properties that are not validated against the `unknownProperties` rule." - }, - "somesass.scss.diagnostics.lint.ieHack": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "IE hacks are only necessary when supporting IE7 and older." - }, - "somesass.scss.diagnostics.lint.unknownVendorSpecificProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Unknown vendor specific property." - }, - "somesass.scss.diagnostics.lint.propertyIgnoredDueToDisplay": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "markdownDescription": "Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect." - }, - "somesass.scss.diagnostics.lint.important": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored." - }, - "somesass.scss.diagnostics.lint.float": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes." - }, - "somesass.scss.diagnostics.lint.idSelector": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML." - }, - "somesass.scss.diagnostics.lint.unknownAtRules": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "Unknown at-rule." - }, - "somesass.scss.foldingRanges.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable folding ranges." - }, - "somesass.scss.highlights.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable highlights." - }, - "somesass.scss.hover.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable all hover information." - }, - "somesass.scss.hover.documentation": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Show property and value documentation in CSS hovers." - }, - "somesass.scss.hover.references": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations." - }, - "somesass.scss.links.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable the link provider that lets you click an import and open the file." - }, - "somesass.scss.references.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable Find all references." - }, - "somesass.scss.rename.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable Rename." - }, - "somesass.scss.selectionRanges.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable selection ranges." - }, - "somesass.scss.signatureHelp.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable selection ranges." - }, - "somesass.scss.workspaceSymbol.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable selection ranges." - } + { + "title": "Workspace", + "properties": { + "somesass.workspace.loadPaths": { + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "markdownDescription": "A list of paths relative to the workspace root where the language server should look for stylesheets loaded by `@use` and `@import`. `node_modules` is always included.\n\nNote that you will have to [configure your Sass compiler separately](https://sass-lang.com/documentation/cli/dart-sass/#load-path)." + }, + "somesass.workspace.exclude": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "**/.git/**", + "**/node_modules/**" + ], + "description": "List of glob patterns for directories that are excluded when scanning." + }, + "somesass.workspace.logLevel": { + "type": "string", + "default": "info", + "enum": [ + "silent", + "fatal", + "error", + "warn", + "info", + "debug", + "trace" + ], + "description": "Control how much gets logged to the Output window." } - }, - { - "title": "Sass (Indented)", - "properties": { - "somesass.sass.codeAction.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all code actions." - }, - "somesass.sass.colors.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all color decorators." - }, - "somesass.sass.completion.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all completions (IntelliSense)." - }, - "somesass.sass.completion.mixinStyle": { - "type": "string", - "default": "all", - "description": "Controls the style of suggestions for mixins and placeholders.", - "enum": ["all", "nobracket", "bracket"], - "enumItemLabels": ["All", "No brackets", "Only brackets"], - "enumDescriptions": [ - "Show all suggestions", - "Only show suggestions without brackets", - "Where brackets are suggested, omit duplicates without brackets" - ] - }, - "somesass.sass.completion.suggestFromUseOnly": { - "type": "boolean", - "default": false, - "description": "If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules." - }, - "somesass.sass.completion.triggerPropertyValueCompletion": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." - }, - "somesass.sass.definition.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables Go to Definition." - }, - "somesass.sass.diagnostics.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all diagnostics (deprecation, errors and lint rules)." - }, - "somesass.sass.diagnostics.deprecation.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables deprecation diagnostics (strike-through)." - }, - "somesass.sass.diagnostics.lint.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all linting." - }, - "somesass.sass.diagnostics.lint.compatibleVendorPrefixes": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties." - }, - "somesass.sass.diagnostics.lint.vendorPrefix": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "When using a vendor-specific prefix, also include the standard property." - }, - "somesass.sass.diagnostics.lint.duplicateProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Do not use duplicate style definitions." - }, - "somesass.sass.diagnostics.lint.emptyRules": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "Do not use empty rulesets." - }, - "somesass.sass.diagnostics.lint.importStatement": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Import statements can lead to sequential loading of CSS." - }, - "somesass.sass.diagnostics.lint.boxModel": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "Do not use `width` or `height` when using `padding` or `border`." - }, - "somesass.sass.diagnostics.lint.universalSelector": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "The universal selector (`*`) is known to be slow." - }, - "somesass.sass.diagnostics.lint.zeroUnits": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "No unit needed for zero." - }, - "somesass.sass.diagnostics.lint.fontFaceProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "markdownDescription": "`@font-face` rule must define `src` and `font-family` properties." - }, - "somesass.sass.diagnostics.lint.hexColorLength": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "error", - "description": "Hex colors must consist of 3, 4, 6 or 8 hex numbers." - }, - "somesass.sass.diagnostics.lint.argumentsInColorFunction": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "error", - "description": "Invalid number of parameters." - }, - "somesass.sass.diagnostics.lint.unknownProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "Unknown vendor specific property." - }, - "somesass.sass.diagnostics.lint.validProperties": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string" - }, - "scope": "resource", - "default": [], - "description": "A list of properties that are not validated against the `unknownProperties` rule." - }, - "somesass.sass.diagnostics.lint.ieHack": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "IE hacks are only necessary when supporting IE7 and older." - }, - "somesass.sass.diagnostics.lint.unknownVendorSpecificProperties": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Unknown vendor specific property." - }, - "somesass.sass.diagnostics.lint.propertyIgnoredDueToDisplay": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "markdownDescription": "Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect." - }, - "somesass.sass.diagnostics.lint.important": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored." - }, - "somesass.sass.diagnostics.lint.float": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "markdownDescription": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes." - }, - "somesass.sass.diagnostics.lint.idSelector": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "ignore", - "description": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML." - }, - "somesass.sass.diagnostics.lint.unknownAtRules": { - "type": "string", - "scope": "resource", - "enum": ["ignore", "warning", "error"], - "default": "warning", - "description": "Unknown at-rule." - }, - "somesass.sass.foldingRanges.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable folding ranges." - }, - "somesass.sass.highlights.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable highlights." - }, - "somesass.sass.hover.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable all hover information." - }, - "somesass.sass.hover.documentation": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Show property and value documentation in CSS hovers." - }, - "somesass.sass.hover.references": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations." - }, - "somesass.sass.links.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable the link provider that lets you click an import and open the file." - }, - "somesass.sass.references.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable Find all references." - }, - "somesass.sass.rename.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable Rename." - }, - "somesass.sass.selectionRanges.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable selection ranges." - }, - "somesass.sass.signatureHelp.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable selection ranges." - }, - "somesass.sass.workspaceSymbol.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enable or disable selection ranges." - } + } + }, + { + "title": "SCSS", + "properties": { + "somesass.scss.codeAction.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all code actions." + }, + "somesass.scss.colors.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all color decorators." + }, + "somesass.scss.colors.includeFromCurrentDocument": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Compatibility setting for VS Code. By default the built-in SCSS server shows color decorators for variables declared in the current document. To avoid duplicates Some Sass will not show them unless you opt in." + }, + "somesass.scss.completion.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all completions (IntelliSense)." + }, + "somesass.scss.completion.includeFromCurrentDocument": { + "type": "boolean", + "default": false, + "description": "Compatibility setting for VS Code. By default the built-in SCSS server shows suggestions for variables, mixins and functions declared in the current document. To avoid duplicates Some Sass will not suggest them unless you opt in." + }, + "somesass.scss.completion.suggestFromUseOnly": { + "type": "boolean", + "default": false, + "description": "If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules." + }, + "somesass.scss.completion.mixinStyle": { + "type": "string", + "default": "all", + "description": "Controls the style of suggestions for mixins.", + "enum": [ + "all", + "nobracket", + "bracket" + ], + "enumItemLabels": [ + "All", + "No brackets", + "Only brackets" + ], + "enumDescriptions": [ + "Show all suggestions", + "Only show suggestions without brackets", + "Where brackets are suggested, don't suggest without brackets" + ] + }, + "somesass.scss.completion.triggerPropertyValueCompletion": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." + }, + "somesass.scss.completion.completePropertyWithSemicolon": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Insert semicolon at end of line when completing CSS properties." + }, + "somesass.scss.definition.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable Go to Definition." + }, + "somesass.scss.diagnostics.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all diagnostics (deprecation, errors and lint rules)." + }, + "somesass.scss.diagnostics.deprecation.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable deprecation diagnostics (strike-through)." + }, + "somesass.scss.diagnostics.lint.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable all linting." + }, + "somesass.scss.diagnostics.lint.compatibleVendorPrefixes": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties." + }, + "somesass.scss.diagnostics.lint.vendorPrefix": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "When using a vendor-specific prefix, also include the standard property." + }, + "somesass.scss.diagnostics.lint.duplicateProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Do not use duplicate style definitions." + }, + "somesass.scss.diagnostics.lint.emptyRules": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Do not use empty rulesets." + }, + "somesass.scss.diagnostics.lint.importStatement": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Import statements can lead to sequential loading of CSS." + }, + "somesass.scss.diagnostics.lint.boxModel": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Do not use `width` or `height` when using `padding` or `border`." + }, + "somesass.scss.diagnostics.lint.universalSelector": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "The universal selector (`*`) is known to be slow." + }, + "somesass.scss.diagnostics.lint.zeroUnits": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "No unit needed for zero." + }, + "somesass.scss.diagnostics.lint.fontFaceProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "markdownDescription": "`@font-face` rule must define `src` and `font-family` properties." + }, + "somesass.scss.diagnostics.lint.hexColorLength": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "error", + "description": "Hex colors must consist of 3, 4, 6 or 8 hex numbers." + }, + "somesass.scss.diagnostics.lint.argumentsInColorFunction": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "error", + "description": "Invalid number of parameters." + }, + "somesass.scss.diagnostics.lint.unknownProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Unknown vendor specific property." + }, + "somesass.scss.diagnostics.lint.validProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "scope": "resource", + "default": [], + "description": "A list of properties that are not validated against the `unknownProperties` rule." + }, + "somesass.scss.diagnostics.lint.ieHack": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "IE hacks are only necessary when supporting IE7 and older." + }, + "somesass.scss.diagnostics.lint.unknownVendorSpecificProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Unknown vendor specific property." + }, + "somesass.scss.diagnostics.lint.propertyIgnoredDueToDisplay": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "markdownDescription": "Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect." + }, + "somesass.scss.diagnostics.lint.important": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored." + }, + "somesass.scss.diagnostics.lint.float": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes." + }, + "somesass.scss.diagnostics.lint.idSelector": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML." + }, + "somesass.scss.diagnostics.lint.unknownAtRules": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Unknown at-rule." + }, + "somesass.scss.foldingRanges.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable folding ranges." + }, + "somesass.scss.highlights.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable highlights." + }, + "somesass.scss.hover.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all hover information." + }, + "somesass.scss.hover.documentation": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Show property and value documentation in CSS hovers." + }, + "somesass.scss.hover.references": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations." + }, + "somesass.scss.links.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable the link provider that lets you click an import and open the file." + }, + "somesass.scss.references.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable Find all references." + }, + "somesass.scss.rename.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable Rename." + }, + "somesass.scss.selectionRanges.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable selection ranges." + }, + "somesass.scss.signatureHelp.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable signature help." + }, + "somesass.scss.workspaceSymbol.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable workspace symbols." + }, + "some-sass.trace.server": { + "type": "string", + "scope": "window", + "enum": [ + "off", + "messages", + "verbose" + ], + "default": "off", + "description": "Log the messages sent between VS Code and the Some Sass language server." } - }, - { - "title": "CSS", - "properties": { - "somesass.css.customData": { - "type": "array", - "markdownDescription": "A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nSome Sass loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.", - "default": [], - "items": { - "type": "string" - }, - "scope": "resource" - }, - "somesass.css.codeAction.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enables or disables all code actions." - }, - "somesass.css.colors.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enables or disables all color decorators." - }, - "somesass.css.completion.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enables or disables all completions (IntelliSense)." - }, - "somesass.css.completion.triggerPropertyValueCompletion": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." - }, - "somesass.css.completion.completePropertyWithSemicolon": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Insert semicolon at end of line when completing CSS properties." - }, - "somesass.css.definition.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enables or disables Go to Definition." - }, - "somesass.css.diagnostics.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enables or disables all diagnostics (deprecation, errors and lint rules)." - }, - "somesass.css.diagnostics.deprecation.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables deprecation diagnostics (strike-through)." - }, - "somesass.css.diagnostics.lint.enabled": { - "type": "boolean", - "scope": "resource", - "default": true, - "description": "Enables or disables all linting." - }, - "somesass.css.diagnostics.lint.compatibleVendorPrefixes": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties." - }, - "somesass.css.diagnostics.lint.vendorPrefix": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "warning", - "description": "When using a vendor-specific prefix, also include the standard property." - }, - "somesass.css.diagnostics.lint.duplicateProperties": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "Do not use duplicate style definitions." - }, - "somesass.css.diagnostics.lint.emptyRules": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "warning", - "description": "Do not use empty rulesets." - }, - "somesass.css.diagnostics.lint.importStatement": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "Import statements can lead to sequential loading of CSS." - }, - "somesass.css.diagnostics.lint.boxModel": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "markdownDescription": "Do not use `width` or `height` when using `padding` or `border`." - }, - "somesass.css.diagnostics.lint.universalSelector": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "markdownDescription": "The universal selector (`*`) is known to be slow." - }, - "somesass.css.diagnostics.lint.zeroUnits": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "No unit needed for zero." - }, - "somesass.css.diagnostics.lint.fontFaceProperties": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "warning", - "markdownDescription": "`@font-face` rule must define `src` and `font-family` properties." - }, - "somesass.css.diagnostics.lint.hexColorLength": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "error", - "description": "Hex colors must consist of 3, 4, 6 or 8 hex numbers." - }, - "somesass.css.diagnostics.lint.argumentsInColorFunction": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "error", - "description": "Invalid number of parameters." - }, - "somesass.css.diagnostics.lint.unknownProperties": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "warning", - "description": "Unknown vendor specific property." - }, - "somesass.css.diagnostics.lint.validProperties": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string" - }, - "scope": "resource", - "default": [], - "description": "A list of properties that are not validated against the `unknownProperties` rule." - }, - "somesass.css.diagnostics.lint.ieHack": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "IE hacks are only necessary when supporting IE7 and older." - }, - "somesass.css.diagnostics.lint.unknownVendorSpecificProperties": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "Unknown vendor specific property." - }, - "somesass.css.diagnostics.lint.propertyIgnoredDueToDisplay": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "warning", - "markdownDescription": "Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect." - }, - "somesass.css.diagnostics.lint.important": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "markdownDescription": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored." - }, - "somesass.css.diagnostics.lint.float": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "markdownDescription": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes." - }, - "somesass.css.diagnostics.lint.idSelector": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "ignore", - "description": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML." - }, - "somesass.css.diagnostics.lint.unknownAtRules": { - "type": "string", - "scope": "resource", - "enum": [ - "ignore", - "warning", - "error" - ], - "default": "warning", - "description": "Unknown at-rule." - }, - "somesass.css.foldingRanges.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable folding ranges." - }, - "somesass.css.highlights.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable highlights." - }, - "somesass.css.hover.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable all hover information." - }, - "somesass.css.hover.documentation": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Show property and value documentation in CSS hovers." - }, - "somesass.css.hover.references": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Show references to MDN in CSS hovers." - }, - "somesass.css.links.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable the link provider that lets you click an import and open the file." - }, - "somesass.css.references.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable Find all references." - }, - "somesass.css.rename.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable Rename." - }, - "somesass.css.selectionRanges.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable selection ranges." - }, - "somesass.css.signatureHelp.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable selection ranges." - }, - "somesass.css.workspaceSymbol.enabled": { - "type": "boolean", - "scope": "resource", - "default": false, - "description": "Enable or disable selection ranges." - } + } + }, + { + "title": "Sass (Indented)", + "properties": { + "somesass.sass.codeAction.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all code actions." + }, + "somesass.sass.colors.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all color decorators." + }, + "somesass.sass.completion.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all completions (IntelliSense)." + }, + "somesass.sass.completion.mixinStyle": { + "type": "string", + "default": "all", + "description": "Controls the style of suggestions for mixins and placeholders.", + "enum": [ + "all", + "nobracket", + "bracket" + ], + "enumItemLabels": [ + "All", + "No brackets", + "Only brackets" + ], + "enumDescriptions": [ + "Show all suggestions", + "Only show suggestions without brackets", + "Where brackets are suggested, omit duplicates without brackets" + ] + }, + "somesass.sass.completion.suggestFromUseOnly": { + "type": "boolean", + "default": false, + "description": "If your project uses the new module system with @use and @forward, you may want to only include suggestions from your used modules." + }, + "somesass.sass.completion.triggerPropertyValueCompletion": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." + }, + "somesass.sass.definition.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable Go to Definition." + }, + "somesass.sass.diagnostics.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all diagnostics (deprecation, errors and lint rules)." + }, + "somesass.sass.diagnostics.deprecation.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable deprecation diagnostics (strike-through)." + }, + "somesass.sass.diagnostics.lint.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all linting." + }, + "somesass.sass.diagnostics.lint.compatibleVendorPrefixes": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties." + }, + "somesass.sass.diagnostics.lint.vendorPrefix": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "When using a vendor-specific prefix, also include the standard property." + }, + "somesass.sass.diagnostics.lint.duplicateProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Do not use duplicate style definitions." + }, + "somesass.sass.diagnostics.lint.emptyRules": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Do not use empty rulesets." + }, + "somesass.sass.diagnostics.lint.importStatement": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Import statements can lead to sequential loading of CSS." + }, + "somesass.sass.diagnostics.lint.boxModel": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Do not use `width` or `height` when using `padding` or `border`." + }, + "somesass.sass.diagnostics.lint.universalSelector": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "The universal selector (`*`) is known to be slow." + }, + "somesass.sass.diagnostics.lint.zeroUnits": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "No unit needed for zero." + }, + "somesass.sass.diagnostics.lint.fontFaceProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "markdownDescription": "`@font-face` rule must define `src` and `font-family` properties." + }, + "somesass.sass.diagnostics.lint.hexColorLength": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "error", + "description": "Hex colors must consist of 3, 4, 6 or 8 hex numbers." + }, + "somesass.sass.diagnostics.lint.argumentsInColorFunction": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "error", + "description": "Invalid number of parameters." + }, + "somesass.sass.diagnostics.lint.unknownProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Unknown vendor specific property." + }, + "somesass.sass.diagnostics.lint.validProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "scope": "resource", + "default": [], + "description": "A list of properties that are not validated against the `unknownProperties` rule." + }, + "somesass.sass.diagnostics.lint.ieHack": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "IE hacks are only necessary when supporting IE7 and older." + }, + "somesass.sass.diagnostics.lint.unknownVendorSpecificProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Unknown vendor specific property." + }, + "somesass.sass.diagnostics.lint.propertyIgnoredDueToDisplay": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "markdownDescription": "Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect." + }, + "somesass.sass.diagnostics.lint.important": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored." + }, + "somesass.sass.diagnostics.lint.float": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes." + }, + "somesass.sass.diagnostics.lint.idSelector": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML." + }, + "somesass.sass.diagnostics.lint.unknownAtRules": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Unknown at-rule." + }, + "somesass.sass.foldingRanges.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable folding ranges." + }, + "somesass.sass.highlights.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable highlights." + }, + "somesass.sass.hover.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all hover information." + }, + "somesass.sass.hover.documentation": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Show property and value documentation in CSS hovers." + }, + "somesass.sass.hover.references": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Show references to MDN in CSS hovers, Sass documentation for Sass built-in modules and SassDoc for annotations." + }, + "somesass.sass.links.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable the link provider that lets you click an import and open the file." + }, + "somesass.sass.references.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable Find all references." + }, + "somesass.sass.rename.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable Rename." + }, + "somesass.sass.selectionRanges.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable selection ranges." + }, + "somesass.sass.signatureHelp.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable selection ranges." + }, + "somesass.sass.workspaceSymbol.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable selection ranges." + } + } + }, + { + "title": "CSS", + "properties": { + "somesass.css.customData": { + "type": "array", + "markdownDescription": "A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nSome Sass loads custom data on startup to enhance its CSS support for CSS custom properties (variables), at-rules, pseudo-classes, and pseudo-elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.", + "default": [], + "items": { + "type": "string" + }, + "scope": "resource" + }, + "somesass.css.codeAction.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable all code actions." + }, + "somesass.css.colors.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable all color decorators." + }, + "somesass.css.completion.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable all completions (IntelliSense)." + }, + "somesass.css.completion.triggerPropertyValueCompletion": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "By default, Some Sass triggers property value completion after selecting a CSS property. Use this setting to disable this behavior." + }, + "somesass.css.completion.completePropertyWithSemicolon": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Insert semicolon at end of line when completing CSS properties." + }, + "somesass.css.definition.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable Go to Definition." + }, + "somesass.css.diagnostics.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable all diagnostics (deprecation, errors and lint rules)." + }, + "somesass.css.diagnostics.deprecation.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable deprecation diagnostics (strike-through)." + }, + "somesass.css.diagnostics.lint.enabled": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "Enable or disable all linting." + }, + "somesass.css.diagnostics.lint.compatibleVendorPrefixes": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties." + }, + "somesass.css.diagnostics.lint.vendorPrefix": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "When using a vendor-specific prefix, also include the standard property." + }, + "somesass.css.diagnostics.lint.duplicateProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Do not use duplicate style definitions." + }, + "somesass.css.diagnostics.lint.emptyRules": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Do not use empty rulesets." + }, + "somesass.css.diagnostics.lint.importStatement": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Import statements can lead to sequential loading of CSS." + }, + "somesass.css.diagnostics.lint.boxModel": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Do not use `width` or `height` when using `padding` or `border`." + }, + "somesass.css.diagnostics.lint.universalSelector": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "The universal selector (`*`) is known to be slow." + }, + "somesass.css.diagnostics.lint.zeroUnits": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "No unit needed for zero." + }, + "somesass.css.diagnostics.lint.fontFaceProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "markdownDescription": "`@font-face` rule must define `src` and `font-family` properties." + }, + "somesass.css.diagnostics.lint.hexColorLength": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "error", + "description": "Hex colors must consist of 3, 4, 6 or 8 hex numbers." + }, + "somesass.css.diagnostics.lint.argumentsInColorFunction": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "error", + "description": "Invalid number of parameters." + }, + "somesass.css.diagnostics.lint.unknownProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Unknown vendor specific property." + }, + "somesass.css.diagnostics.lint.validProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "scope": "resource", + "default": [], + "description": "A list of properties that are not validated against the `unknownProperties` rule." + }, + "somesass.css.diagnostics.lint.ieHack": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "IE hacks are only necessary when supporting IE7 and older." + }, + "somesass.css.diagnostics.lint.unknownVendorSpecificProperties": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Unknown vendor specific property." + }, + "somesass.css.diagnostics.lint.propertyIgnoredDueToDisplay": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "markdownDescription": "Property is ignored due to the display. E.g. with `display: inline`, the `width`, `height`, `margin-top`, `margin-bottom`, and `float` properties have no effect." + }, + "somesass.css.diagnostics.lint.important": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored." + }, + "somesass.css.diagnostics.lint.float": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "markdownDescription": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes." + }, + "somesass.css.diagnostics.lint.idSelector": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "ignore", + "description": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML." + }, + "somesass.css.diagnostics.lint.unknownAtRules": { + "type": "string", + "scope": "resource", + "enum": [ + "ignore", + "warning", + "error" + ], + "default": "warning", + "description": "Unknown at-rule." + }, + "somesass.css.foldingRanges.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable folding ranges." + }, + "somesass.css.highlights.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable highlights." + }, + "somesass.css.hover.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable all hover information." + }, + "somesass.css.hover.documentation": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Show property and value documentation in CSS hovers." + }, + "somesass.css.hover.references": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Show references to MDN in CSS hovers." + }, + "somesass.css.links.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable the link provider that lets you click an import and open the file." + }, + "somesass.css.references.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable Find all references." + }, + "somesass.css.rename.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable Rename." + }, + "somesass.css.selectionRanges.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable selection ranges." + }, + "somesass.css.signatureHelp.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable selection ranges." + }, + "somesass.css.workspaceSymbol.enabled": { + "type": "boolean", + "scope": "resource", + "default": false, + "description": "Enable or disable selection ranges." } } + } ], "jsonValidation": [ - { - "fileMatch": "*.css-data.json", - "url": "https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json" - }, - { - "fileMatch": "package.json", - "url": "./schemas/package.schema.json" - } - ] - }, - "dependencies": { - "fast-glob": "3.3.2", - "some-sass-language-server": "1.8.3", - "vscode-css-languageservice": "6.3.1", - "vscode-languageclient": "9.0.1", - "vscode-uri": "3.0.7" - }, - "devDependencies": { - "@types/mocha": "10.0.7", - "@types/vscode": "1.86.0", - "@vscode/test-electron": "2.4.1", - "@vscode/test-web": "0.0.60", - "assert": "2.1.0", - "mocha": "10.7.3", - "shx": "0.3.4" - }, - "scripts": { - "vscode:prepublish": "run-s clean build:production:*", - "clean": "shx rm -rf dist", - "build": "run-s build:development:*", - "build:node": "rspack --config ./rspack.node.config.js", - "build:browser": "rspack --config ./rspack.browser.config.js", - "build:development:node": "npm run build:node -- --mode=development", - "build:development:browser": "npm run build:browser -- --mode=development", - "build:production:node": "npm run build:node -- --mode=production", - "build:production:browser": "npm run build:browser -- --mode=production", - "start:web": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=.", - "lint": "eslint \"**/*.ts\" --cache", - "pretest:e2e": "run-s clean build:production:*", - "test:e2e": "node ./test/e2e/runTest.js", - "pretest:web": "rspack --config ./rspack.test-web.config.js ", - "test:web": "node ./test/web/runTest.js" - }, - "__metadata": { - "id": "6d35099c-3671-464c-ac0b-34a0c3823927", - "publisherDisplayName": "Somewhat Stationery", - "publisherId": "02638283-c13a-4acf-9f26-24bdcfdfce24", - "isPreReleaseVersion": false - } + { + "fileMatch": "*.css-data.json", + "url": "https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/master/docs/customData.schema.json" + }, + { + "fileMatch": "package.json", + "url": "./schemas/package.schema.json" + } + ] + }, + "dependencies": { + "fast-glob": "3.3.2", + "some-sass-language-server": "1.8.3", + "vscode-css-languageservice": "6.3.1", + "vscode-languageclient": "9.0.1", + "vscode-uri": "3.0.7" + }, + "devDependencies": { + "@types/mocha": "10.0.7", + "@types/vscode": "1.86.0", + "@vscode/test-electron": "2.4.1", + "@vscode/test-web": "0.0.60", + "assert": "2.1.0", + "mocha": "10.7.3", + "shx": "0.3.4" + }, + "scripts": { + "vscode:prepublish": "run-s clean build:production:*", + "clean": "shx rm -rf dist", + "build": "run-s build:development:*", + "build:node": "rspack --config ./rspack.node.config.js", + "build:browser": "rspack --config ./rspack.browser.config.js", + "build:development:node": "npm run build:node -- --mode=development", + "build:development:browser": "npm run build:browser -- --mode=development", + "build:production:node": "npm run build:node -- --mode=production", + "build:production:browser": "npm run build:browser -- --mode=production", + "start:web": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=.", + "lint": "eslint \"**/*.ts\" --cache", + "pretest:e2e": "run-s clean build:production:*", + "test:e2e": "node ./test/e2e/runTest.js", + "pretest:web": "rspack --config ./rspack.test-web.config.js ", + "test:web": "node ./test/web/runTest.js" + }, + "__metadata": { + "id": "6d35099c-3671-464c-ac0b-34a0c3823927", + "publisherDisplayName": "Somewhat Stationery", + "publisherId": "02638283-c13a-4acf-9f26-24bdcfdfce24", + "isPreReleaseVersion": false + } }