diff --git a/README.md b/README.md index d54aaee..aff384f 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,7 @@ This project would not exist without the hard work of some other open source pro - [x] [denols](https://github.com/denoland/vscode_deno/tree/main/package.json) - [x] [elixirls](https://github.com/elixir-lsp/vscode-elixir-ls/tree/master/package.json) - [x] [elmls](https://github.com/elm-tooling/elm-language-client-vscode/tree/master/package.json) +- [x] [emmylua_ls](https://github.com/EmmyLuaLs/emmylua-analyzer-rust/86ae47efba57c2d70a5af18faa6e8418b0129b22/crates/emmylua_code_analysis/resources/schema.json) - [x] [eslint](https://github.com/microsoft/vscode-eslint/tree/main/package.json) - [x] [flow](https://github.com/flowtype/flow-for-vscode/tree/master/package.json) - [x] [fsautocomplete](https://github.com/ionide/ionide-vscode-fsharp/tree/main/release/package.json) diff --git a/lua/codesettings/build/annotations.lua b/lua/codesettings/build/annotations.lua index 0a1d0c5..9c79f25 100644 --- a/lua/codesettings/build/annotations.lua +++ b/lua/codesettings/build/annotations.lua @@ -76,6 +76,11 @@ function Build.flatten(t, ret) end function Build.get_type(prop) + -- Handle const values (literal types) + if prop.const ~= nil then + return vim.inspect(prop.const) + end + if prop.enum then return table.concat( vim.tbl_map(function(e) @@ -84,6 +89,17 @@ function Build.get_type(prop) ' | ' ) end + + -- Handle $ref references + if prop['$ref'] then + local ref = prop['$ref'] + -- Extract definition name from refs like "#/definitions/MyType" or "#/$defs/MyType" + local def_name = ref:match('#/definitions/(.+)') or ref:match('#/%$defs/(.+)') + if def_name then + return Build.get_class(def_name) + end + end + local types = type(prop.type) == 'table' and prop.type or { prop.type } if vim.tbl_isempty(types) and type(prop.anyOf) == 'table' then return table.concat( @@ -93,6 +109,14 @@ function Build.get_type(prop) '|' ) end + if vim.tbl_isempty(types) and type(prop.oneOf) == 'table' then + return table.concat( + vim.tbl_map(function(p) + return Build.get_type(p) + end, prop.oneOf), + '|' + ) + end types = vim.tbl_map(function(t) if t == 'null' then return @@ -103,6 +127,10 @@ function Build.get_type(prop) prop.items.type = 'any' end return prop.items.type .. '[]' + elseif prop.items and prop.items['$ref'] then + -- Handle array items with $ref + local item_type = Build.get_type(prop.items) + return item_type .. '[]' end return 'any[]' end @@ -140,11 +168,39 @@ function Build.process_object(name, prop) vim.list_extend(Build.lines, lines) end +-- Process definitions from the schema +function Build.process_definitions(definitions) + if not definitions or type(definitions) ~= 'table' then + return + end + + local def_names = vim.tbl_keys(definitions) + table.sort(def_names) + + for _, def_name in ipairs(def_names) do + local def = definitions[def_name] + -- Process objects with properties + if def.type == 'object' or def.properties then + Build.process_object(def_name, def) + -- Process enum-like definitions (oneOf with const values) + elseif def.oneOf or def.anyOf or def.enum then + local lines = {} + Build.add_desc(lines, def) + table.insert(lines, '---@alias ' .. Build.get_class(def_name) .. ' ' .. Build.get_type(def)) + table.insert(Build.lines, '') + vim.list_extend(Build.lines, lines) + end + end +end + function Build.build_annotations(name) local file = Util.path('schemas/' .. name .. '.json') local json = Util.json_decode(Util.read_file(file)) or {} Build.class_name = 'lsp.' .. name + -- Process definitions first (they may be referenced by properties) + Build.process_definitions(json.definitions or json['$defs']) + local schema = require('codesettings.settings').new() for key, prop in pairs(json.properties) do prop.leaf = true diff --git a/lua/codesettings/build/schemas.lua b/lua/codesettings/build/schemas.lua index 457c4fa..1d22ace 100644 --- a/lua/codesettings/build/schemas.lua +++ b/lua/codesettings/build/schemas.lua @@ -15,6 +15,7 @@ M.index = { denols = 'https://raw.githubusercontent.com/denoland/vscode_deno/main/package.json', elixirls = 'https://raw.githubusercontent.com/elixir-lsp/vscode-elixir-ls/master/package.json', elmls = 'https://raw.githubusercontent.com/elm-tooling/elm-language-client-vscode/master/package.json', + emmylua_ls = 'https://raw.githubusercontent.com/EmmyLuaLs/emmylua-analyzer-rust/86ae47efba57c2d70a5af18faa6e8418b0129b22/crates/emmylua_code_analysis/resources/schema.json', eslint = 'https://raw.githubusercontent.com/microsoft/vscode-eslint/main/package.json', flow = 'https://raw.githubusercontent.com/flowtype/flow-for-vscode/master/package.json', fsautocomplete = 'https://raw.githubusercontent.com/ionide/ionide-vscode-fsharp/main/release/package.json', @@ -160,7 +161,12 @@ end local SpecialCases = { nixd = function(json) -- nixd should be nested under "nixd" - return { nixd = { type = 'object', properties = json.properties } } + return { + nixd = { + type = 'object', + properties = json.properties, + }, + } end, gopls = function(json) local config = json.contributes.configuration.properties.gopls @@ -176,6 +182,13 @@ local SpecialCases = { end return properties end, + emmylua_ls = function(json) + -- emmylua_ls schema has a flat structure but expects all settings to be nested under "Lua" like lua_ls + -- when provided via lsp configuration. + return { + Lua = { type = 'object', properties = json.properties }, + } + end, } ---@param schema CodesettingsLspSchema @@ -206,6 +219,7 @@ function M.fetch_schema(schema) description = json.description, properties = properties, definitions = json.definitions, + ['$defs'] = json['$defs'], -- seems to be an alias for definitions in some schemas } return ret diff --git a/lua/codesettings/generated/annotations.lua b/lua/codesettings/generated/annotations.lua index 777c165..75306fd 100644 --- a/lua/codesettings/generated/annotations.lua +++ b/lua/codesettings/generated/annotations.lua @@ -1,3 +1,4 @@ +-- vim: ft=bigfile -- stylua: ignore ---@meta @@ -2320,7 +2321,7 @@ ---@field notifyAnalyzerErrors boolean? -- Whether to use the --offline switch for commands like 'pub get' and 'Flutter: New Project'. ---@field offline boolean? --- Whether to ignore workspace folders and perform analysis based on the open files, as if no workspace was open at all. This allows opening very large folders without causing them to be fully analyzed but will result a lot of re-analysis as files are opened/closed. This is **not** recommended for small or medium sized workspaces, only very large workspaces where you are working in only a small part. +-- **Deprecated**: Whether to ignore workspace folders and perform analysis based on the open files. This setting can make performance significantly worse when moving around a project and is not recommended. ---@field onlyAnalyzeProjectsWithOpenFiles boolean? -- Whether to automatically open DevTools at the start of a debug session. If embedded DevTools is enabled, this will launch the Widget Inspector embedded for Flutter projects, or launch DevTools externally in a browser for Dart projects. -- @@ -2929,6 +2930,586 @@ ---@class lsp.elmls ---@field elmLS lsp.elmls.ElmLS? +---@alias lsp.emmylua_ls.DiagnosticCode "none"|"syntax-error"|"doc-syntax-error"|"type-not-found"|"missing-return"|"param-type-mismatch"|"missing-parameter"|"redundant-parameter"|"unreachable-code"|"unused"|"undefined-global"|"deprecated"|"access-invisible"|"discard-returns"|"undefined-field"|"local-const-reassign"|"iter-variable-reassign"|"duplicate-type"|"redefined-local"|"redefined-label"|"code-style-check"|"need-check-nil"|"await-in-sync"|"annotation-usage-error"|"return-type-mismatch"|"missing-return-value"|"redundant-return-value"|"undefined-doc-param"|"duplicate-doc-field"|"unknown-doc-tag"|"missing-fields"|"inject-field"|"circle-doc-class"|"incomplete-signature-doc"|"missing-global-doc"|"assign-type-mismatch"|"duplicate-require"|"non-literal-expressions-in-assert"|"unbalanced-assignments"|"unnecessary-assert"|"unnecessary-if"|"duplicate-set-field"|"duplicate-index"|"generic-constraint-mismatch"|"cast-type-mismatch"|"require-module-not-visible"|"enum-value-mismatch"|"preferred-local-alias"|"read-only"|"global-in-non-module"|"attribute-param-type-mismatch"|"attribute-missing-parameter"|"attribute-redundant-parameter" + +---@alias lsp.emmylua_ls.DiagnosticSeveritySetting "error"|"warning"|"information"|"hint" + +---@alias lsp.emmylua_ls.DocSyntax "none" | "md" | "myst" | "rst" + +---@class lsp.emmylua_ls.EmmyrcCodeAction +-- Add space after `---` comments when inserting `@diagnostic disable-next-line`. +---@field insertSpace boolean? + +---@class lsp.emmylua_ls.EmmyrcCodeLens +-- Enable code lens. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? + +-- Configuration for EmmyLua code completion. +---@class lsp.emmylua_ls.EmmyrcCompletion +-- Automatically insert call to `require` when autocompletion +-- inserts objects from other modules. +-- +-- ```lua +-- default = true +-- ``` +---@field autoRequire boolean? +-- The function used for auto-requiring modules. +-- +-- ```lua +-- default = "require" +-- ``` +---@field autoRequireFunction string? +-- The naming convention for auto-required filenames. +-- +-- ```lua +-- default = "keep" +-- ``` +---@field autoRequireNamingConvention lsp.emmylua_ls.EmmyrcFilenameConvention? +-- A separator used in auto-require paths. +-- +-- ```lua +-- default = "." +-- ``` +---@field autoRequireSeparator string? +-- Whether to include the name in the base function completion. Effect: `function () end` -> `function name() end`. +-- +-- ```lua +-- default = true +-- ``` +---@field baseFunctionIncludesName boolean? +-- Whether to use call snippets in completions. +---@field callSnippet boolean? +-- Enable autocompletion. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? +-- Symbol that's used to trigger postfix autocompletion. +-- +-- ```lua +-- default = "@" +-- ``` +---@field postfix string? + +-- Represents the diagnostic configuration for Emmyrc. +---@class lsp.emmylua_ls.EmmyrcDiagnostic +-- Delay between opening/changing a file and scanning it for errors, in milliseconds. +---@field diagnosticInterval integer? +-- A list of diagnostic codes that are disabled. +-- +-- ```lua +-- default = {} +-- ``` +---@field disable lsp.emmylua_ls.DiagnosticCode[]? +-- A flag indicating whether diagnostics are enabled. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? +-- A list of diagnostic codes that are enabled. +-- +-- ```lua +-- default = {} +-- ``` +---@field enables lsp.emmylua_ls.DiagnosticCode[]? +-- A list of global variables. +-- +-- ```lua +-- default = {} +-- ``` +---@field globals string[]? +-- A list of regular expressions for global variables. +-- +-- ```lua +-- default = {} +-- ``` +---@field globalsRegex string[]? +-- A map of diagnostic codes to their severity settings. +-- +-- ```lua +-- default = {} +-- ``` +---@field severity table? + +---@class lsp.emmylua_ls.EmmyrcDoc +-- List of known documentation tags. +-- +-- ```lua +-- default = {} +-- ``` +---@field knownTags string[]? +-- Treat specific field names as private, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are private, witch can only be accessed in the class where the definition is located. +-- +-- ```lua +-- default = {} +-- ``` +---@field privateName string[]? +-- When `syntax` is `Myst` or `Rst`, specifies default role used +-- with RST processor. +---@field rstDefaultRole string? +-- When `syntax` is `Myst` or `Rst`, specifies primary domain used +-- with RST processor. +---@field rstPrimaryDomain string? +-- Syntax for highlighting documentation. +-- +-- ```lua +-- default = "md" +-- ``` +---@field syntax lsp.emmylua_ls.DocSyntax? + +---@class lsp.emmylua_ls.EmmyrcDocumentColor +-- Enable parsing strings for color tags and showing a color picker next to them. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? + +---@class lsp.emmylua_ls.EmmyrcExternalTool +-- The arguments to pass to the external tool. +-- +-- ```lua +-- default = {} +-- ``` +---@field args string[]? +-- The command to run the external tool. +-- +-- ```lua +-- default = "" +-- ``` +---@field program string? +-- The timeout for the external tool in milliseconds. +-- +-- ```lua +-- default = 5000 +-- ``` +---@field timeout integer? + +---@alias lsp.emmylua_ls.EmmyrcFilenameConvention "keep"|"snake-case"|"pascal-case"|"camel-case"|"keep-class" + +---@class lsp.emmylua_ls.EmmyrcHover +-- The detail number of hover information. +-- Default is `None`, which means using the default detail level. +-- You can set it to a number between `1` and `255` to customize +---@field customDetail integer? +-- Enable showing documentation on hover. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? + +---@class lsp.emmylua_ls.EmmyrcInlayHint +-- Enable inlay hints. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? +-- Show name of enumerator when passing a literal value to a function +-- that expects an enum. +-- +-- Example: +-- +-- ```lua +-- --- @enum Level +-- local Foo = { +-- Info = 1, +-- Error = 2, +-- } +-- +-- --- @param l Level +-- function print_level(l) end +-- +-- print_level(1 --[[ Hint: Level.Info ]]) +-- ``` +---@field enumParamHint boolean? +-- Show named array indexes. +-- +-- Example: +-- +-- ```lua +-- local array = { +-- [1] = 1, -- [name] +-- } +-- +-- print(array[1] --[[ Hint: name ]]) +-- ``` +-- +-- ```lua +-- default = true +-- ``` +---@field indexHint boolean? +-- Show types of local variables. +-- +-- ```lua +-- default = true +-- ``` +---@field localHint boolean? +-- Show hint when calling an object results in a call to +-- its meta table's `__call` function. +-- +-- ```lua +-- default = true +-- ``` +---@field metaCallHint boolean? +-- Show methods that override functions from base class. +-- +-- ```lua +-- default = true +-- ``` +---@field overrideHint boolean? +-- Show parameter names in function calls and parameter types in function definitions. +-- +-- ```lua +-- default = true +-- ``` +---@field paramHint boolean? + +---@class lsp.emmylua_ls.EmmyrcInlineValues +-- Show inline values during debug. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? + +---@alias lsp.emmylua_ls.EmmyrcLuaVersion "Lua5.1"|"LuaJIT"|"Lua5.2"|"Lua5.3"|"Lua5.4"|"Lua5.5"|"LuaLatest" + +---@alias lsp.emmylua_ls.EmmyrcNonStdSymbol "//" | "/**/" | "`" | "+=" | "-=" | "*=" | "/=" | "%=" | "^=" | "//=" | "|=" | "&=" | "<<=" | ">>=" | "||" | "&&" | "!" | "!=" | "continue" + +---@class lsp.emmylua_ls.EmmyrcReference +-- Enable searching for symbol usages. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? +-- Use fuzzy search when searching for symbol usages +-- and normal search didn't find anything. +-- +-- ```lua +-- default = true +-- ``` +---@field fuzzySearch boolean? +-- Also search for usages in strings. +---@field shortStringSearch boolean? + +---@class lsp.emmylua_ls.EmmyrcReformat +-- Whether to enable external tool formatting. +---@field externalTool lsp.emmylua_ls.EmmyrcExternalTool|any? +-- Whether to enable external tool range formatting. +---@field externalToolRangeFormat lsp.emmylua_ls.EmmyrcExternalTool|any? +-- Whether to use the diff algorithm for formatting. +---@field useDiff boolean? + +---@class lsp.emmylua_ls.EmmyrcResource +-- ```lua +-- default = {} +-- ``` +---@field paths string[]? + +---@class lsp.emmylua_ls.EmmyrcRuntime +-- file Extensions. eg: .lua, .lua.txt +-- +-- ```lua +-- default = {} +-- ``` +---@field extensions string[]? +-- Framework versions. +-- +-- ```lua +-- default = {} +-- ``` +---@field frameworkVersions string[]? +-- Non-standard symbols. +-- +-- ```lua +-- default = {} +-- ``` +---@field nonstandardSymbol lsp.emmylua_ls.EmmyrcNonStdSymbol[]? +-- Functions that like require. +-- +-- ```lua +-- default = {} +-- ``` +---@field requireLikeFunction string[]? +-- Require pattern. eg. "?.lua", "?/init.lua" +-- +-- ```lua +-- default = {} +-- ``` +---@field requirePattern string[]? +-- Special symbols. +-- +-- ```lua +-- default = {} +-- ``` +---@field special table? +-- Lua version. +-- +-- ```lua +-- default = "LuaLatest" +-- ``` +---@field version lsp.emmylua_ls.EmmyrcLuaVersion? + +---@class lsp.emmylua_ls.EmmyrcSemanticToken +-- Enable semantic tokens. +-- +-- ```lua +-- default = true +-- ``` +---@field enable boolean? +-- Render Markdown/RST in documentation. Set `doc.syntax` for this option to have effect. +---@field renderDocumentationMarkup boolean? + +---@class lsp.emmylua_ls.EmmyrcSignature +-- Whether to enable signature help. +-- +-- ```lua +-- default = true +-- ``` +---@field detailSignatureHelper boolean? + +---@alias lsp.emmylua_ls.EmmyrcSpecialSymbol "none" | "require" | "error" | "assert" | "type" | "setmetatable" + +---@class lsp.emmylua_ls.EmmyrcStrict +-- Whether to enable strict mode array indexing. +-- +-- ```lua +-- default = true +-- ``` +---@field arrayIndex boolean? +-- Base constant types defined in doc can match base types, allowing int to match `---@alias id 1|2|3`, same for string. +---@field docBaseConstMatchBaseType boolean? +-- meta define overrides file define +-- +-- ```lua +-- default = true +-- ``` +---@field metaOverrideFileDefine boolean? +-- Whether to enable strict mode require path. +---@field requirePath boolean? +---@field typeCall boolean? + +---@class lsp.emmylua_ls.EmmyrcWorkspace +-- Enable full project reindex after changing a file. +---@field enableReindex boolean? +-- Encoding. eg: "utf-8" +-- +-- ```lua +-- default = "utf-8" +-- ``` +---@field encoding string? +-- Ignore directories. +-- +-- ```lua +-- default = {} +-- ``` +---@field ignoreDir string[]? +-- Ignore globs. eg: ["**/*.lua"] +-- +-- ```lua +-- default = {} +-- ``` +---@field ignoreGlobs string[]? +-- Library paths. eg: "/usr/local/share/lua/5.1" +-- +-- ```lua +-- default = {} +-- ``` +---@field library string[]? +-- Module map. key is regex, value is new module regex +-- eg: { +-- "^(.*)$": "module_$1" +-- "^lib(.*)$": "script$1" +-- } +-- +-- ```lua +-- default = {} +-- ``` +---@field moduleMap lsp.emmylua_ls.EmmyrcWorkspaceModuleMap[]? +-- ```lua +-- default = 0 +-- ``` +---@field preloadFileSize integer? +-- Delay between changing a file and full project reindex, in milliseconds. +-- +-- ```lua +-- default = 5000 +-- ``` +---@field reindexDuration integer? +-- Workspace roots. eg: ["src", "test"] +-- +-- ```lua +-- default = {} +-- ``` +---@field workspaceRoots string[]? + +---@class lsp.emmylua_ls.EmmyrcWorkspaceModuleMap +---@field pattern string? +---@field replace string? + +---@class lsp.emmylua_ls.Lua +---@field $schema string? +-- ```lua +-- default = { +-- insertSpace = false +-- } +-- ``` +---@field codeAction lsp.emmylua_ls.EmmyrcCodeAction? +-- ```lua +-- default = { +-- enable = true +-- } +-- ``` +---@field codeLens lsp.emmylua_ls.EmmyrcCodeLens? +-- ```lua +-- default = { +-- autoRequire = true, +-- autoRequireFunction = "require", +-- autoRequireNamingConvention = "keep", +-- autoRequireSeparator = ".", +-- baseFunctionIncludesName = true, +-- callSnippet = false, +-- enable = true, +-- postfix = "@" +-- } +-- ``` +---@field completion lsp.emmylua_ls.EmmyrcCompletion? +-- ```lua +-- default = { +-- diagnosticInterval = 500, +-- disable = {}, +-- enable = true, +-- enables = {}, +-- globals = {}, +-- globalsRegex = {}, +-- severity = { +-- = {} +-- } +-- } +-- ``` +---@field diagnostics lsp.emmylua_ls.EmmyrcDiagnostic? +-- ```lua +-- default = { +-- knownTags = {}, +-- privateName = {}, +-- syntax = "md" +-- } +-- ``` +---@field doc lsp.emmylua_ls.EmmyrcDoc? +-- ```lua +-- default = { +-- enable = true +-- } +-- ``` +---@field documentColor lsp.emmylua_ls.EmmyrcDocumentColor? +-- ```lua +-- default = { +-- useDiff = false +-- } +-- ``` +---@field format lsp.emmylua_ls.EmmyrcReformat? +-- ```lua +-- default = { +-- enable = true, +-- enumParamHint = false, +-- indexHint = true, +-- localHint = true, +-- metaCallHint = true, +-- overrideHint = true, +-- paramHint = true +-- } +-- ``` +---@field hint lsp.emmylua_ls.EmmyrcInlayHint? +-- ```lua +-- default = { +-- enable = true +-- } +-- ``` +---@field hover lsp.emmylua_ls.EmmyrcHover? +-- ```lua +-- default = { +-- enable = true +-- } +-- ``` +---@field inlineValues lsp.emmylua_ls.EmmyrcInlineValues? +-- ```lua +-- default = { +-- enable = true, +-- fuzzySearch = true, +-- shortStringSearch = false +-- } +-- ``` +---@field references lsp.emmylua_ls.EmmyrcReference? +-- ```lua +-- default = { +-- paths = {} +-- } +-- ``` +---@field resource lsp.emmylua_ls.EmmyrcResource? +-- ```lua +-- default = { +-- extensions = {}, +-- frameworkVersions = {}, +-- nonstandardSymbol = {}, +-- requireLikeFunction = {}, +-- requirePattern = {}, +-- special = { +-- = {} +-- }, +-- version = "LuaLatest" +-- } +-- ``` +---@field runtime lsp.emmylua_ls.EmmyrcRuntime? +-- ```lua +-- default = { +-- enable = true, +-- renderDocumentationMarkup = true +-- } +-- ``` +---@field semanticTokens lsp.emmylua_ls.EmmyrcSemanticToken? +-- ```lua +-- default = { +-- detailSignatureHelper = true +-- } +-- ``` +---@field signature lsp.emmylua_ls.EmmyrcSignature? +-- ```lua +-- default = { +-- arrayIndex = true, +-- docBaseConstMatchBaseType = true, +-- metaOverrideFileDefine = true, +-- requirePath = false, +-- typeCall = false +-- } +-- ``` +---@field strict lsp.emmylua_ls.EmmyrcStrict? +-- ```lua +-- default = { +-- enableReindex = false, +-- encoding = "utf-8", +-- ignoreDir = {}, +-- ignoreGlobs = {}, +-- library = {}, +-- moduleMap = {}, +-- preloadFileSize = 0, +-- reindexDuration = 5000, +-- workspaceRoots = {} +-- } +-- ``` +---@field workspace lsp.emmylua_ls.EmmyrcWorkspace? + +---@class lsp.emmylua_ls +---@field Lua lsp.emmylua_ls.Lua? + -- Show disable lint rule in the quick fix menu. -- -- ```lua @@ -8757,7 +9338,7 @@ -- ```lua -- default = "auto" -- ``` ----@field displayPort any? +---@field displayPort integer|"auto"? -- Haxe completion server configuration -- -- ```lua @@ -8808,7 +9389,7 @@ -- ```lua -- default = "auto" -- ``` ----@field executable any? +---@field executable string|table? -- Sort order of imports -- -- ```lua @@ -12861,7 +13442,7 @@ -- ```lua -- default = "information" -- ``` ----@field diagnosticSeverity any? +---@field diagnosticSeverity "error" | "warning" | "information" | "hint"|table? -- %ltex.i18n.configuration.ltex.dictionary.markdownDescription% -- -- ```lua @@ -12879,7 +13460,7 @@ -- ```lua -- default = { "bibtex", "context", "context.tex", "html", "latex", "markdown", "org", "restructuredtext", "rsweave" } -- ``` ----@field enabled any? +---@field enabled boolean|string[]? -- %ltex.i18n.configuration.ltex.enabledRules.markdownDescription% -- -- ```lua @@ -14991,6 +15572,13 @@ ---@class lsp.nil_ls ---@field nil lsp.nil_ls.Nil? +-- Nix installables that will be used for root translation unit. +---@class lsp.nixd.Target +-- Accept args as "nix eval" +---@field args string[]? +-- "nix eval" +---@field installable string? + -- The evaluation section, provide auto completion for dynamic bindings. ---@class lsp.nixd.Eval -- Extra depth for evaluation @@ -14999,7 +15587,7 @@ -- default = 0 -- ``` ---@field depth integer? ----@field target any? +---@field target lsp.nixd.Target? -- The number of workers for evaluation task. defaults to std::thread::hardware_concurrency ---@field workers integer? @@ -15011,7 +15599,7 @@ -- default = "false" -- ``` ---@field enable boolean? ----@field target any? +---@field target lsp.nixd.Target? ---@class lsp.nixd.Nixd -- The evaluation section, provide auto completion for dynamic bindings. @@ -19007,7 +19595,7 @@ -- ["/rustc/"] = "${env:USERPROFILE}/.rustup/toolchains//lib/rustlib/src/rust" -- } -- ``` ----@field sourceFileMap table|string? +---@field sourceFileMap "auto"? ---@class lsp.rust_analyzer.Experimental -- Show experimental rust-analyzer diagnostics that might have more false positives than @@ -20896,7 +21484,7 @@ -- ```lua -- default = {} -- ``` ----@field pluginArguments any? +---@field pluginArguments string[]|table? -- Configures a list of permissions to be used when running a command plugins. -- -- Permissions objects are defined in the form: @@ -22834,7 +23422,7 @@ -- ```lua -- default = "vscode" -- ``` ----@field watchOptions any? +---@field watchOptions "vscode"|table? ---@field web lsp.ts_ls.Web? ---@class lsp.ts_ls.UpdateImportsOnFileMove @@ -23876,7 +24464,7 @@ -- ```lua -- default = "vscode" -- ``` ----@field watchOptions any? +---@field watchOptions "vscode"|table? ---@field web lsp.vtsls.Web? ---@class lsp.vtsls.UpdateImportsOnFileMove @@ -24757,4 +25345,4 @@ ---@field zig_lib_path string? ---@class lsp.zls ----@field zls lsp.zls.Zls? +---@field zls lsp.zls.Zls? \ No newline at end of file diff --git a/schemas/dartls.json b/schemas/dartls.json index 13d9a2f..673affa 100644 --- a/schemas/dartls.json +++ b/schemas/dartls.json @@ -1240,7 +1240,7 @@ }, "dart.onlyAnalyzeProjectsWithOpenFiles": { "default": false, - "description": "Whether to ignore workspace folders and perform analysis based on the open files, as if no workspace was open at all. This allows opening very large folders without causing them to be fully analyzed but will result a lot of re-analysis as files are opened/closed. This is **not** recommended for small or medium sized workspaces, only very large workspaces where you are working in only a small part.", + "markdownDescription": "**Deprecated**: Whether to ignore workspace folders and perform analysis based on the open files. This setting can make performance significantly worse when moving around a project and is not recommended.", "scope": "window", "type": "boolean" }, diff --git a/schemas/emmylua_ls.json b/schemas/emmylua_ls.json new file mode 100644 index 0000000..608d209 --- /dev/null +++ b/schemas/emmylua_ls.json @@ -0,0 +1,1145 @@ +{ + "$defs": { + "DiagnosticCode": { + "oneOf": [ + { + "enum": [ + "none" + ], + "type": "string" + }, + { + "const": "syntax-error", + "description": "Syntax error", + "type": "string" + }, + { + "const": "doc-syntax-error", + "description": "Doc syntax error", + "type": "string" + }, + { + "const": "type-not-found", + "description": "Type not found", + "type": "string" + }, + { + "const": "missing-return", + "description": "Missing return statement", + "type": "string" + }, + { + "const": "param-type-mismatch", + "description": "Param Type not match", + "type": "string" + }, + { + "const": "missing-parameter", + "description": "Missing parameter", + "type": "string" + }, + { + "const": "redundant-parameter", + "description": "Redundant parameter", + "type": "string" + }, + { + "const": "unreachable-code", + "description": "Unreachable code", + "type": "string" + }, + { + "const": "unused", + "description": "Unused", + "type": "string" + }, + { + "const": "undefined-global", + "description": "Undefined global", + "type": "string" + }, + { + "const": "deprecated", + "description": "Deprecated", + "type": "string" + }, + { + "const": "access-invisible", + "description": "Access invisible", + "type": "string" + }, + { + "const": "discard-returns", + "description": "Discard return value", + "type": "string" + }, + { + "const": "undefined-field", + "description": "Undefined field", + "type": "string" + }, + { + "const": "local-const-reassign", + "description": "Local const reassign", + "type": "string" + }, + { + "const": "iter-variable-reassign", + "description": "Iter variable reassign", + "type": "string" + }, + { + "const": "duplicate-type", + "description": "Duplicate type", + "type": "string" + }, + { + "const": "redefined-local", + "description": "Redefined local", + "type": "string" + }, + { + "const": "redefined-label", + "description": "Redefined label", + "type": "string" + }, + { + "const": "code-style-check", + "description": "Code style check", + "type": "string" + }, + { + "const": "need-check-nil", + "description": "Need check nil", + "type": "string" + }, + { + "const": "await-in-sync", + "description": "Await in sync", + "type": "string" + }, + { + "const": "annotation-usage-error", + "description": "Doc tag usage error", + "type": "string" + }, + { + "const": "return-type-mismatch", + "description": "Return type mismatch", + "type": "string" + }, + { + "const": "missing-return-value", + "description": "Missing return value", + "type": "string" + }, + { + "const": "redundant-return-value", + "description": "Redundant return value", + "type": "string" + }, + { + "const": "undefined-doc-param", + "description": "Undefined Doc Param", + "type": "string" + }, + { + "const": "duplicate-doc-field", + "description": "Duplicate doc field", + "type": "string" + }, + { + "const": "unknown-doc-tag", + "description": "Unknown doc annotation", + "type": "string" + }, + { + "const": "missing-fields", + "description": "Missing fields", + "type": "string" + }, + { + "const": "inject-field", + "description": "Inject Field", + "type": "string" + }, + { + "const": "circle-doc-class", + "description": "Circle Doc Class", + "type": "string" + }, + { + "const": "incomplete-signature-doc", + "description": "Incomplete signature doc", + "type": "string" + }, + { + "const": "missing-global-doc", + "description": "Missing global doc", + "type": "string" + }, + { + "const": "assign-type-mismatch", + "description": "Assign type mismatch", + "type": "string" + }, + { + "const": "duplicate-require", + "description": "Duplicate require", + "type": "string" + }, + { + "const": "non-literal-expressions-in-assert", + "description": "non-literal-expressions-in-assert", + "type": "string" + }, + { + "const": "unbalanced-assignments", + "description": "Unbalanced assignments", + "type": "string" + }, + { + "const": "unnecessary-assert", + "description": "unnecessary-assert", + "type": "string" + }, + { + "const": "unnecessary-if", + "description": "unnecessary-if", + "type": "string" + }, + { + "const": "duplicate-set-field", + "description": "duplicate-set-field", + "type": "string" + }, + { + "const": "duplicate-index", + "description": "duplicate-index", + "type": "string" + }, + { + "const": "generic-constraint-mismatch", + "description": "generic-constraint-mismatch", + "type": "string" + }, + { + "const": "cast-type-mismatch", + "description": "cast-type-mismatch", + "type": "string" + }, + { + "const": "require-module-not-visible", + "description": "require-module-not-visible", + "type": "string" + }, + { + "const": "enum-value-mismatch", + "description": "enum-value-mismatch", + "type": "string" + }, + { + "const": "preferred-local-alias", + "description": "preferred-local-alias", + "type": "string" + }, + { + "const": "read-only", + "description": "readonly", + "type": "string" + }, + { + "const": "global-in-non-module", + "description": "Global variable defined in non-module scope", + "type": "string" + }, + { + "const": "attribute-param-type-mismatch", + "description": "attribute-param-type-mismatch", + "type": "string" + }, + { + "const": "attribute-missing-parameter", + "description": "attribute-missing-parameter", + "type": "string" + }, + { + "const": "attribute-redundant-parameter", + "description": "attribute-redundant-parameter", + "type": "string" + } + ] + }, + "DiagnosticSeveritySetting": { + "oneOf": [ + { + "const": "error", + "description": "Represents an error diagnostic severity.", + "type": "string" + }, + { + "const": "warning", + "description": "Represents a warning diagnostic severity.", + "type": "string" + }, + { + "const": "information", + "description": "Represents an information diagnostic severity.", + "type": "string" + }, + { + "const": "hint", + "description": "Represents a hint diagnostic severity.", + "type": "string" + } + ] + }, + "DocSyntax": { + "enum": [ + "none", + "md", + "myst", + "rst" + ], + "type": "string" + }, + "EmmyrcCodeAction": { + "properties": { + "insertSpace": { + "default": false, + "description": "Add space after `---` comments when inserting `@diagnostic disable-next-line`.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcCodeLens": { + "properties": { + "enable": { + "default": true, + "description": "Enable code lens.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcCompletion": { + "description": "Configuration for EmmyLua code completion.", + "properties": { + "autoRequire": { + "default": true, + "description": "Automatically insert call to `require` when autocompletion\ninserts objects from other modules.", + "type": "boolean", + "x-vscode-setting": true + }, + "autoRequireFunction": { + "default": "require", + "description": "The function used for auto-requiring modules.", + "type": "string" + }, + "autoRequireNamingConvention": { + "$ref": "#/$defs/EmmyrcFilenameConvention", + "default": "keep", + "description": "The naming convention for auto-required filenames." + }, + "autoRequireSeparator": { + "default": ".", + "description": "A separator used in auto-require paths.", + "type": "string" + }, + "baseFunctionIncludesName": { + "default": true, + "description": "Whether to include the name in the base function completion. Effect: `function () end` -> `function name() end`.", + "type": "boolean", + "x-vscode-setting": true + }, + "callSnippet": { + "default": false, + "description": "Whether to use call snippets in completions.", + "type": "boolean" + }, + "enable": { + "default": true, + "description": "Enable autocompletion.", + "type": "boolean", + "x-vscode-setting": true + }, + "postfix": { + "default": "@", + "description": "Symbol that's used to trigger postfix autocompletion.", + "type": "string", + "x-vscode-setting": { + "default": null, + "enum": [ + null, + "@", + ".", + ":" + ], + "enumItemLabels": [ + "Default" + ], + "markdownEnumDescriptions": [ + "%config.common.enum.default.description%" + ], + "type": [ + "string", + "null" + ] + } + } + }, + "type": "object" + }, + "EmmyrcDiagnostic": { + "description": "Represents the diagnostic configuration for Emmyrc.", + "properties": { + "diagnosticInterval": { + "description": "Delay between opening/changing a file and scanning it for errors, in milliseconds.", + "format": "uint64", + "minimum": 0, + "type": [ + "integer", + "null" + ], + "x-vscode-setting": true + }, + "disable": { + "default": [], + "description": "A list of diagnostic codes that are disabled.", + "items": { + "$ref": "#/$defs/DiagnosticCode" + }, + "type": "array" + }, + "enable": { + "default": true, + "description": "A flag indicating whether diagnostics are enabled.", + "type": "boolean" + }, + "enables": { + "default": [], + "description": "A list of diagnostic codes that are enabled.", + "items": { + "$ref": "#/$defs/DiagnosticCode" + }, + "type": "array" + }, + "globals": { + "default": [], + "description": "A list of global variables.", + "items": { + "type": "string" + }, + "type": "array" + }, + "globalsRegex": { + "default": [], + "description": "A list of regular expressions for global variables.", + "items": { + "type": "string" + }, + "type": "array" + }, + "severity": { + "additionalProperties": { + "$ref": "#/$defs/DiagnosticSeveritySetting" + }, + "default": {}, + "description": "A map of diagnostic codes to their severity settings.", + "type": "object" + } + }, + "type": "object" + }, + "EmmyrcDoc": { + "properties": { + "knownTags": { + "default": [], + "description": "List of known documentation tags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "privateName": { + "default": [], + "description": "Treat specific field names as private, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are private, witch can only be accessed in the class where the definition is located.", + "items": { + "type": "string" + }, + "type": "array" + }, + "rstDefaultRole": { + "description": "When `syntax` is `Myst` or `Rst`, specifies default role used\nwith RST processor.", + "type": [ + "string", + "null" + ] + }, + "rstPrimaryDomain": { + "description": "When `syntax` is `Myst` or `Rst`, specifies primary domain used\nwith RST processor.", + "type": [ + "string", + "null" + ] + }, + "syntax": { + "$ref": "#/$defs/DocSyntax", + "default": "md", + "description": "Syntax for highlighting documentation." + } + }, + "type": "object" + }, + "EmmyrcDocumentColor": { + "properties": { + "enable": { + "default": true, + "description": "Enable parsing strings for color tags and showing a color picker next to them.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcExternalTool": { + "properties": { + "args": { + "default": [], + "description": "The arguments to pass to the external tool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "program": { + "default": "", + "description": "The command to run the external tool.", + "type": "string" + }, + "timeout": { + "default": 5000, + "description": "The timeout for the external tool in milliseconds.", + "format": "uint64", + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "EmmyrcFilenameConvention": { + "oneOf": [ + { + "const": "keep", + "description": "Keep the original filename.", + "type": "string" + }, + { + "const": "snake-case", + "description": "Convert the filename to snake_case.", + "type": "string" + }, + { + "const": "pascal-case", + "description": "Convert the filename to PascalCase.", + "type": "string" + }, + { + "const": "camel-case", + "description": "Convert the filename to camelCase.", + "type": "string" + }, + { + "const": "keep-class", + "description": "When returning class definition, use class name, otherwise keep original name.", + "type": "string" + } + ] + }, + "EmmyrcHover": { + "properties": { + "customDetail": { + "default": null, + "description": "The detail number of hover information.\nDefault is `None`, which means using the default detail level.\nYou can set it to a number between `1` and `255` to customize", + "format": "uint8", + "maximum": 255, + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "enable": { + "default": true, + "description": "Enable showing documentation on hover.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcInlayHint": { + "properties": { + "enable": { + "default": true, + "description": "Enable inlay hints.", + "type": "boolean", + "x-vscode-setting": true + }, + "enumParamHint": { + "default": false, + "description": "Show name of enumerator when passing a literal value to a function\nthat expects an enum.\n\nExample:\n\n```lua\n--- @enum Level\nlocal Foo = {\n Info = 1,\n Error = 2,\n}\n\n--- @param l Level\nfunction print_level(l) end\n\nprint_level(1 --[[ Hint: Level.Info ]])\n```", + "type": "boolean", + "x-vscode-setting": true + }, + "indexHint": { + "default": true, + "description": "Show named array indexes.\n\nExample:\n\n```lua\nlocal array = {\n [1] = 1, -- [name]\n}\n\nprint(array[1] --[[ Hint: name ]])\n```", + "type": "boolean", + "x-vscode-setting": true + }, + "localHint": { + "default": true, + "description": "Show types of local variables.", + "type": "boolean", + "x-vscode-setting": true + }, + "metaCallHint": { + "default": true, + "description": "Show hint when calling an object results in a call to\nits meta table's `__call` function.", + "type": "boolean", + "x-vscode-setting": true + }, + "overrideHint": { + "default": true, + "description": "Show methods that override functions from base class.", + "type": "boolean", + "x-vscode-setting": true + }, + "paramHint": { + "default": true, + "description": "Show parameter names in function calls and parameter types in function definitions.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcInlineValues": { + "properties": { + "enable": { + "default": true, + "description": "Show inline values during debug.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcLuaVersion": { + "oneOf": [ + { + "const": "Lua5.1", + "description": "Lua 5.1", + "type": "string" + }, + { + "const": "LuaJIT", + "description": "LuaJIT", + "type": "string" + }, + { + "const": "Lua5.2", + "description": "Lua 5.2", + "type": "string" + }, + { + "const": "Lua5.3", + "description": "Lua 5.3", + "type": "string" + }, + { + "const": "Lua5.4", + "description": "Lua 5.4", + "type": "string" + }, + { + "const": "Lua5.5", + "description": "Lua 5.5", + "type": "string" + }, + { + "const": "LuaLatest", + "description": "Lua Latest", + "type": "string" + } + ] + }, + "EmmyrcNonStdSymbol": { + "enum": [ + "//", + "/**/", + "`", + "+=", + "-=", + "*=", + "/=", + "%=", + "^=", + "//=", + "|=", + "&=", + "<<=", + ">>=", + "||", + "&&", + "!", + "!=", + "continue" + ], + "type": "string" + }, + "EmmyrcReference": { + "properties": { + "enable": { + "default": true, + "description": "Enable searching for symbol usages.", + "type": "boolean", + "x-vscode-setting": true + }, + "fuzzySearch": { + "default": true, + "description": "Use fuzzy search when searching for symbol usages\nand normal search didn't find anything.", + "type": "boolean", + "x-vscode-setting": true + }, + "shortStringSearch": { + "default": false, + "description": "Also search for usages in strings.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcReformat": { + "properties": { + "externalTool": { + "anyOf": [ + { + "$ref": "#/$defs/EmmyrcExternalTool" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to enable external tool formatting." + }, + "externalToolRangeFormat": { + "anyOf": [ + { + "$ref": "#/$defs/EmmyrcExternalTool" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to enable external tool range formatting." + }, + "useDiff": { + "default": false, + "description": "Whether to use the diff algorithm for formatting.", + "type": "boolean" + } + }, + "type": "object" + }, + "EmmyrcResource": { + "properties": { + "paths": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EmmyrcRuntime": { + "properties": { + "extensions": { + "default": [], + "description": "file Extensions. eg: .lua, .lua.txt", + "items": { + "type": "string" + }, + "type": "array" + }, + "frameworkVersions": { + "default": [], + "description": "Framework versions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nonstandardSymbol": { + "default": [], + "description": "Non-standard symbols.", + "items": { + "$ref": "#/$defs/EmmyrcNonStdSymbol" + }, + "type": "array" + }, + "requireLikeFunction": { + "default": [], + "description": "Functions that like require.", + "items": { + "type": "string" + }, + "type": "array" + }, + "requirePattern": { + "default": [], + "description": "Require pattern. eg. \"?.lua\", \"?/init.lua\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "special": { + "additionalProperties": { + "$ref": "#/$defs/EmmyrcSpecialSymbol" + }, + "default": {}, + "description": "Special symbols.", + "type": "object" + }, + "version": { + "$ref": "#/$defs/EmmyrcLuaVersion", + "default": "LuaLatest", + "description": "Lua version." + } + }, + "type": "object" + }, + "EmmyrcSemanticToken": { + "properties": { + "enable": { + "default": true, + "description": "Enable semantic tokens.", + "type": "boolean", + "x-vscode-setting": true + }, + "renderDocumentationMarkup": { + "default": false, + "description": "Render Markdown/RST in documentation. Set `doc.syntax` for this option to have effect.", + "type": "boolean", + "x-vscode-setting": true + } + }, + "type": "object" + }, + "EmmyrcSignature": { + "properties": { + "detailSignatureHelper": { + "default": true, + "description": "Whether to enable signature help.", + "type": "boolean" + } + }, + "type": "object" + }, + "EmmyrcSpecialSymbol": { + "enum": [ + "none", + "require", + "error", + "assert", + "type", + "setmetatable" + ], + "type": "string" + }, + "EmmyrcStrict": { + "properties": { + "arrayIndex": { + "default": true, + "description": "Whether to enable strict mode array indexing.", + "type": "boolean" + }, + "docBaseConstMatchBaseType": { + "default": false, + "description": "Base constant types defined in doc can match base types, allowing int to match `---@alias id 1|2|3`, same for string.", + "type": "boolean" + }, + "metaOverrideFileDefine": { + "default": true, + "description": "meta define overrides file define", + "type": "boolean" + }, + "requirePath": { + "default": false, + "description": "Whether to enable strict mode require path.", + "type": "boolean" + }, + "typeCall": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "EmmyrcWorkspace": { + "properties": { + "enableReindex": { + "default": false, + "description": "Enable full project reindex after changing a file.", + "type": "boolean", + "x-vscode-setting": true + }, + "encoding": { + "default": "utf-8", + "description": "Encoding. eg: \"utf-8\"", + "type": "string" + }, + "ignoreDir": { + "default": [], + "description": "Ignore directories.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoreGlobs": { + "default": [], + "description": "Ignore globs. eg: [\"**/*.lua\"]", + "items": { + "type": "string" + }, + "type": "array" + }, + "library": { + "default": [], + "description": "Library paths. eg: \"/usr/local/share/lua/5.1\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "moduleMap": { + "default": [], + "description": "Module map. key is regex, value is new module regex\neg: {\n \"^(.*)$\": \"module_$1\"\n \"^lib(.*)$\": \"script$1\"\n}", + "items": { + "$ref": "#/$defs/EmmyrcWorkspaceModuleMap" + }, + "type": "array" + }, + "preloadFileSize": { + "default": 0, + "format": "int32", + "type": "integer" + }, + "reindexDuration": { + "default": 5000, + "description": "Delay between changing a file and full project reindex, in milliseconds.", + "format": "uint64", + "minimum": 0, + "type": "integer", + "x-vscode-setting": true + }, + "workspaceRoots": { + "default": [], + "description": "Workspace roots. eg: [\"src\", \"test\"]", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EmmyrcWorkspaceModuleMap": { + "properties": { + "pattern": { + "type": "string" + }, + "replace": { + "type": "string" + } + }, + "required": [ + "pattern", + "replace" + ], + "type": "object" + } + }, + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "Lua": { + "properties": { + "$schema": { + "type": [ + "string", + "null" + ] + }, + "codeAction": { + "$ref": "#/$defs/EmmyrcCodeAction", + "default": { + "insertSpace": false + } + }, + "codeLens": { + "$ref": "#/$defs/EmmyrcCodeLens", + "default": { + "enable": true + } + }, + "completion": { + "$ref": "#/$defs/EmmyrcCompletion", + "default": { + "autoRequire": true, + "autoRequireFunction": "require", + "autoRequireNamingConvention": "keep", + "autoRequireSeparator": ".", + "baseFunctionIncludesName": true, + "callSnippet": false, + "enable": true, + "postfix": "@" + } + }, + "diagnostics": { + "$ref": "#/$defs/EmmyrcDiagnostic", + "default": { + "diagnosticInterval": 500, + "disable": [], + "enable": true, + "enables": [], + "globals": [], + "globalsRegex": [], + "severity": {} + } + }, + "doc": { + "$ref": "#/$defs/EmmyrcDoc", + "default": { + "knownTags": [], + "privateName": [], + "syntax": "md" + } + }, + "documentColor": { + "$ref": "#/$defs/EmmyrcDocumentColor", + "default": { + "enable": true + } + }, + "format": { + "$ref": "#/$defs/EmmyrcReformat", + "default": { + "externalTool": null, + "externalToolRangeFormat": null, + "useDiff": false + } + }, + "hint": { + "$ref": "#/$defs/EmmyrcInlayHint", + "default": { + "enable": true, + "enumParamHint": false, + "indexHint": true, + "localHint": true, + "metaCallHint": true, + "overrideHint": true, + "paramHint": true + } + }, + "hover": { + "$ref": "#/$defs/EmmyrcHover", + "default": { + "customDetail": null, + "enable": true + } + }, + "inlineValues": { + "$ref": "#/$defs/EmmyrcInlineValues", + "default": { + "enable": true + } + }, + "references": { + "$ref": "#/$defs/EmmyrcReference", + "default": { + "enable": true, + "fuzzySearch": true, + "shortStringSearch": false + } + }, + "resource": { + "$ref": "#/$defs/EmmyrcResource", + "default": { + "paths": [] + } + }, + "runtime": { + "$ref": "#/$defs/EmmyrcRuntime", + "default": { + "extensions": [], + "frameworkVersions": [], + "nonstandardSymbol": [], + "requireLikeFunction": [], + "requirePattern": [], + "special": {}, + "version": "LuaLatest" + } + }, + "semanticTokens": { + "$ref": "#/$defs/EmmyrcSemanticToken", + "default": { + "enable": true, + "renderDocumentationMarkup": true + } + }, + "signature": { + "$ref": "#/$defs/EmmyrcSignature", + "default": { + "detailSignatureHelper": true + } + }, + "strict": { + "$ref": "#/$defs/EmmyrcStrict", + "default": { + "arrayIndex": true, + "docBaseConstMatchBaseType": true, + "metaOverrideFileDefine": true, + "requirePath": false, + "typeCall": false + } + }, + "workspace": { + "$ref": "#/$defs/EmmyrcWorkspace", + "default": { + "enableReindex": false, + "encoding": "utf-8", + "ignoreDir": [], + "ignoreGlobs": [], + "library": [], + "moduleMap": [], + "preloadFileSize": 0, + "reindexDuration": 5000, + "workspaceRoots": [] + } + } + }, + "type": "object" + } + } +}