Open notpeter opened 1 month ago
Taplo schema: taplo config schema
from taplo 0.9.3
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Config", "type": "object", "properties": { "exclude": { "description": "Files to exclude (ignore).\n\nA list of Unix-like [glob](https://en.wikipedia.org/wiki/Glob_(programming)) path patterns. Globstars (`**`) are supported.\n\nRelative paths are **not** relative to the configuration file, but rather depends on the tool using the configuration.\n\nThis has priority over `include`.", "type": [ "array", "null" ], "items": { "type": "string" } }, "formatting": { "description": "Formatting options.", "anyOf": [ { "$ref": "#/definitions/OptionsIncomplete" }, { "type": "null" } ] }, "include": { "description": "Files to include.\n\nA list of Unix-like [glob](https://en.wikipedia.org/wiki/Glob_(programming)) path patterns. Globstars (`**`) are supported.\n\nRelative paths are **not** relative to the configuration file, but rather depends on the tool using the configuration.\n\nOmitting this property includes all files, **however an empty array will include none**.", "type": [ "array", "null" ], "items": { "type": "string" } }, "plugins": { "type": [ "object", "null" ], "additionalProperties": { "$ref": "#/definitions/Plugin" } }, "rule": { "description": "Rules are used to override configurations by path and keys.", "type": "array", "items": { "$ref": "#/definitions/Rule" } }, "schema": { "description": "Schema validation options.", "anyOf": [ { "$ref": "#/definitions/SchemaOptions" }, { "type": "null" } ] } }, "additionalProperties": false, "definitions": { "OptionsIncomplete": { "description": "All the formatting options.", "type": "object", "properties": { "align_comments": { "description": "Align consecutive comments after entries and items vertically.\n\nThis applies to comments that are after entries or array items.", "type": [ "boolean", "null" ] }, "align_entries": { "description": "Align entries vertically.\n\nEntries that have table headers, comments, or blank lines between them are not aligned.", "type": [ "boolean", "null" ] }, "align_single_comments": { "description": "If `align_comments` is true, apply the alignment in cases where there's only one comment.", "type": [ "boolean", "null" ] }, "allowed_blank_lines": { "description": "The maximum amount of consecutive blank lines allowed.", "type": [ "integer", "null" ], "format": "uint", "minimum": 0.0 }, "array_auto_collapse": { "description": "Automatically collapse arrays if they fit in one line.\n\nThe array won't be collapsed if it contains a comment.", "type": [ "boolean", "null" ] }, "array_auto_expand": { "description": "Automatically expand arrays to multiple lines once they exceed the configured `column_width`.", "type": [ "boolean", "null" ] }, "array_trailing_comma": { "description": "Put trailing commas for multiline arrays.", "type": [ "boolean", "null" ] }, "column_width": { "description": "Target maximum column width after which arrays are expanded into new lines.\n\nThis is best-effort and might not be accurate.", "type": [ "integer", "null" ], "format": "uint", "minimum": 0.0 }, "compact_arrays": { "description": "Omit whitespace padding inside single-line arrays.", "type": [ "boolean", "null" ] }, "compact_entries": { "description": "Omit whitespace around `=`.", "type": [ "boolean", "null" ] }, "compact_inline_tables": { "description": "Omit whitespace padding inside inline tables.", "type": [ "boolean", "null" ] }, "crlf": { "description": "Use CRLF line endings", "type": [ "boolean", "null" ] }, "indent_entries": { "description": "Indent entries under tables.", "type": [ "boolean", "null" ] }, "indent_string": { "description": "Indentation to use, should be tabs or spaces but technically could be anything.", "type": [ "string", "null" ] }, "indent_tables": { "description": "Indent subtables if they come in order.", "type": [ "boolean", "null" ] }, "inline_table_expand": { "description": "Expand values (e.g.) inside inline tables where possible.", "type": [ "boolean", "null" ] }, "reorder_arrays": { "description": "Alphabetically reorder array values that are not separated by blank lines.", "type": [ "boolean", "null" ] }, "reorder_keys": { "description": "Alphabetically reorder keys that are not separated by blank lines.", "type": [ "boolean", "null" ] }, "trailing_newline": { "description": "Add trailing newline to the source.", "type": [ "boolean", "null" ] } } }, "Plugin": { "description": "A plugin to extend Taplo's capabilities.", "type": "object", "properties": { "settings": { "description": "Optional settings for the plugin.", "default": null } } }, "Rule": { "description": "A rule to override options by either name or file.", "type": "object", "properties": { "exclude": { "description": "Files that are excluded from this rule.\n\nA list of Unix-like [glob](https://en.wikipedia.org/wiki/Glob_(programming)) path patterns.\n\nRelative paths are **not** relative to the configuration file, but rather depends on the tool using the configuration.\n\nThis has priority over `include`.", "type": [ "array", "null" ], "items": { "type": "string" } }, "formatting": { "description": "Formatting options.", "anyOf": [ { "$ref": "#/definitions/OptionsIncomplete" }, { "type": "null" } ] }, "include": { "description": "Files this rule is valid for.\n\nA list of Unix-like [glob](https://en.wikipedia.org/wiki/Glob_(programming)) path patterns.\n\nRelative paths are **not** relative to the configuration file, but rather depends on the tool using the configuration.\n\nOmitting this property includes all files, **however an empty array will include none**.", "type": [ "array", "null" ], "items": { "type": "string" } }, "keys": { "description": "Keys the rule is valid for in a document.\n\nA list of Unix-like [glob](https://en.wikipedia.org/wiki/Glob_(programming)) dotted key patterns.\n\nThis allows enabling the rule for specific paths in the document.\n\nFor example:\n\n- `package.metadata` will enable the rule for everything inside the `package.metadata` table, including itself.\n\nIf omitted, the rule will always be valid for all keys.", "type": [ "array", "null" ], "items": { "type": "string" } }, "name": { "description": "The name of the rule.\n\nUsed in `taplo::` comments.", "type": [ "string", "null" ] }, "schema": { "description": "Schema validation options.", "anyOf": [ { "$ref": "#/definitions/SchemaOptions" }, { "type": "null" } ] } }, "additionalProperties": false }, "SchemaOptions": { "description": "Options for schema validation and completion.\n\nSchemas in rules with defined keys are ignored.", "type": "object", "properties": { "enabled": { "description": "Whether the schema should be enabled or not.\n\nDefaults to true if omitted.", "type": [ "boolean", "null" ] }, "path": { "description": "A local file path to the schema, overrides `url` if set.\n\nURLs are also accepted here, but it's not a guarantee and might change in newer releases. Please use the `url` field instead whenever possible.", "type": [ "string", "null" ] }, "url": { "description": "A full absolute URL to the schema.\n\nThe url of the schema, supported schemes are `http`, `https`, `file` and `taplo`.", "type": [ "string", "null" ], "format": "uri" } }, "additionalProperties": false } } }
~/.ghcup/bin/haskell-language-server-9.10.1 vscode-extension-schema
:
{ "haskell.plugin.alternateNumberFormat.globalOn": { "default": true, "description": "Enables alternateNumberFormat plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.cabal-fmt.config.path": { "default": "cabal-fmt", "markdownDescription": "Set path to 'cabal-fmt' executable", "scope": "resource", "type": "string" }, "haskell.plugin.cabal-gild.config.path": { "default": "cabal-gild", "markdownDescription": "Set path to 'cabal-gild' executable", "scope": "resource", "type": "string" }, "haskell.plugin.cabal.codeActionsOn": { "default": true, "description": "Enables cabal code actions", "scope": "resource", "type": "boolean" }, "haskell.plugin.cabal.completionOn": { "default": true, "description": "Enables cabal completions", "scope": "resource", "type": "boolean" }, "haskell.plugin.cabal.diagnosticsOn": { "default": true, "description": "Enables cabal diagnostics", "scope": "resource", "type": "boolean" }, "haskell.plugin.callHierarchy.globalOn": { "default": true, "description": "Enables callHierarchy plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.changeTypeSignature.globalOn": { "default": true, "description": "Enables changeTypeSignature plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.class.codeActionsOn": { "default": true, "description": "Enables class code actions", "scope": "resource", "type": "boolean" }, "haskell.plugin.class.codeLensOn": { "default": true, "description": "Enables class code lenses", "scope": "resource", "type": "boolean" }, "haskell.plugin.eval.config.diff": { "default": true, "markdownDescription": "Enable the diff output (WAS/NOW) of eval lenses", "scope": "resource", "type": "boolean" }, "haskell.plugin.eval.config.exception": { "default": false, "markdownDescription": "Enable marking exceptions with `*** Exception:` similarly to doctest and GHCi.", "scope": "resource", "type": "boolean" }, "haskell.plugin.eval.globalOn": { "default": true, "description": "Enables eval plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.explicit-fields.globalOn": { "default": true, "description": "Enables explicit-fields plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.explicit-fixity.globalOn": { "default": true, "description": "Enables explicit-fixity plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.fourmolu.config.external": { "default": false, "markdownDescription": "Call out to an external \"fourmolu\" executable, rather than using the bundled library.", "scope": "resource", "type": "boolean" }, "haskell.plugin.fourmolu.config.path": { "default": "fourmolu", "markdownDescription": "Set path to executable (for \"external\" mode).", "scope": "resource", "type": "string" }, "haskell.plugin.gadt.globalOn": { "default": true, "description": "Enables gadt plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-code-actions-bindings.globalOn": { "default": true, "description": "Enables ghcide-code-actions-bindings plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-code-actions-fill-holes.globalOn": { "default": true, "description": "Enables ghcide-code-actions-fill-holes plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-code-actions-imports-exports.globalOn": { "default": true, "description": "Enables ghcide-code-actions-imports-exports plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-code-actions-type-signatures.globalOn": { "default": true, "description": "Enables ghcide-code-actions-type-signatures plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-completions.config.autoExtendOn": { "default": true, "markdownDescription": "Extends the import list automatically when completing a out-of-scope identifier", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-completions.config.snippetsOn": { "default": true, "markdownDescription": "Inserts snippets when using code completions", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-completions.globalOn": { "default": true, "description": "Enables ghcide-completions plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-hover-and-symbols.hoverOn": { "default": true, "description": "Enables ghcide-hover-and-symbols hover", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-hover-and-symbols.symbolsOn": { "default": true, "description": "Enables ghcide-hover-and-symbols symbols", "scope": "resource", "type": "boolean" }, "haskell.plugin.ghcide-type-lenses.config.mode": { "default": "always", "description": "Control how type lenses are shown", "enum": [ "always", "exported", "diagnostics" ], "enumDescriptions": [ "Always displays type lenses of global bindings", "Only display type lenses of exported global bindings", "Follows error messages produced by GHC about missing signatures" ], "scope": "resource", "type": "string" }, "haskell.plugin.ghcide-type-lenses.globalOn": { "default": true, "description": "Enables ghcide-type-lenses plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.importLens.codeActionsOn": { "default": true, "description": "Enables importLens code actions", "scope": "resource", "type": "boolean" }, "haskell.plugin.importLens.codeLensOn": { "default": true, "description": "Enables importLens code lenses", "scope": "resource", "type": "boolean" }, "haskell.plugin.moduleName.globalOn": { "default": true, "description": "Enables moduleName plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.ormolu.config.external": { "default": false, "markdownDescription": "Call out to an external \"ormolu\" executable, rather than using the bundled library", "scope": "resource", "type": "boolean" }, "haskell.plugin.overloaded-record-dot.globalOn": { "default": true, "description": "Enables overloaded-record-dot plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.pragmas-completion.globalOn": { "default": true, "description": "Enables pragmas-completion plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.pragmas-disable.globalOn": { "default": true, "description": "Enables pragmas-disable plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.pragmas-suggest.globalOn": { "default": true, "description": "Enables pragmas-suggest plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.qualifyImportedNames.globalOn": { "default": true, "description": "Enables qualifyImportedNames plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.rename.config.crossModule": { "default": false, "markdownDescription": "Enable experimental cross-module renaming", "scope": "resource", "type": "boolean" }, "haskell.plugin.rename.globalOn": { "default": true, "description": "Enables rename plugin", "scope": "resource", "type": "boolean" }, "haskell.plugin.semanticTokens.config.classMethodToken": { "default": "method", "description": "LSP semantic token type to use for typeclass methods", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.classToken": { "default": "class", "description": "LSP semantic token type to use for typeclasses", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.dataConstructorToken": { "default": "enumMember", "description": "LSP semantic token type to use for data constructors", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.functionToken": { "default": "function", "description": "LSP semantic token type to use for functions", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.moduleToken": { "default": "namespace", "description": "LSP semantic token type to use for modules", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.operatorToken": { "default": "operator", "description": "LSP semantic token type to use for operators", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.patternSynonymToken": { "default": "macro", "description": "LSP semantic token type to use for pattern synonyms", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.recordFieldToken": { "default": "property", "description": "LSP semantic token type to use for record fields", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.typeConstructorToken": { "default": "enum", "description": "LSP semantic token type to use for type constructors", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.typeFamilyToken": { "default": "interface", "description": "LSP semantic token type to use for type families", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.typeSynonymToken": { "default": "type", "description": "LSP semantic token type to use for type synonyms", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.typeVariableToken": { "default": "typeParameter", "description": "LSP semantic token type to use for type variables", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.config.variableToken": { "default": "variable", "description": "LSP semantic token type to use for variables", "enum": [ "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" ], "enumDescriptions": [ "LSP Semantic Token Type: namespace", "LSP Semantic Token Type: type", "LSP Semantic Token Type: class", "LSP Semantic Token Type: enum", "LSP Semantic Token Type: interface", "LSP Semantic Token Type: struct", "LSP Semantic Token Type: typeParameter", "LSP Semantic Token Type: parameter", "LSP Semantic Token Type: variable", "LSP Semantic Token Type: property", "LSP Semantic Token Type: enumMember", "LSP Semantic Token Type: event", "LSP Semantic Token Type: function", "LSP Semantic Token Type: method", "LSP Semantic Token Type: macro", "LSP Semantic Token Type: keyword", "LSP Semantic Token Type: modifier", "LSP Semantic Token Type: comment", "LSP Semantic Token Type: string", "LSP Semantic Token Type: number", "LSP Semantic Token Type: regexp", "LSP Semantic Token Type: operator", "LSP Semantic Token Type: decorator" ], "scope": "resource", "type": "string" }, "haskell.plugin.semanticTokens.globalOn": { "default": false, "description": "Enables semanticTokens plugin", "scope": "resource", "type": "boolean" } }
given that different lsp extensions actually have arbitrary top-level configuration keys (e.g. settings
, initialization_options
, …), this would be most welcome.
Describe the feature
Currently we do not support autocomplete/suggestions for keys under the
lsp
object in settings (not even the name of available language servers) so users are forced to operate blindly.Beyond that we could actually support JSON schema for autocompleting LSP-specific settings when available. E.g.
lsp.vtsls.settings
can be validated against the vtsls configuration schema