diff --git a/flake.lock b/flake.lock index 270f0f656f..a6e75c653d 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1740872218, + "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "3876f6b87db82f33775b1ef5ea343986105db764", "type": "github" }, "original": { @@ -66,11 +66,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738797219, - "narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=", + "lastModified": 1741037377, + "narHash": "sha256-SvtvVKHaUX4Owb+PasySwZsoc5VUeTf1px34BByiOxw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1da52dd49a127ad74486b135898da2cef8c62665", + "rev": "02032da4af073d0f6110540c8677f16d4be0117f", "type": "github" }, "original": { @@ -89,11 +89,11 @@ ] }, "locked": { - "lastModified": 1738508923, - "narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=", + "lastModified": 1739738736, + "narHash": "sha256-Rl4Fw+3PsLTEzzUGlB8kePaiIersDbv5voAif3D6LoM=", "owner": "NuschtOS", "repo": "search", - "rev": "86e2038290859006e05ca7201425ea5b5de4aecb", + "rev": "9ff62c8e1fbe5dc649dee680c7eb4935936c8ac3", "type": "github" }, "original": { diff --git a/flake/dev/flake.lock b/flake/dev/flake.lock index a4189bf254..9cba3984a9 100644 --- a/flake/dev/flake.lock +++ b/flake/dev/flake.lock @@ -45,11 +45,11 @@ ] }, "locked": { - "lastModified": 1737465171, - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "lastModified": 1740915799, + "narHash": "sha256-JvQvtaphZNmeeV+IpHgNdiNePsIpHD5U/7QN5AeY44A=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "rev": "42b1ba089d2034d910566bf6b40830af6b8ec732", "type": "github" }, "original": { @@ -86,11 +86,11 @@ ] }, "locked": { - "lastModified": 1738878603, - "narHash": "sha256-fmhq8B3MvQLawLbMO+LWLcdC2ftLMmwSk+P29icJ3tE=", + "lastModified": 1741056285, + "narHash": "sha256-/JKDMVqq8PIqcGonBVKbKq1SooV3kzGmv+cp3rKAgPA=", "owner": "nix-community", "repo": "home-manager", - "rev": "433799271274c9f2ab520a49527ebfe2992dcfbd", + "rev": "70fbbf05a5594b0a72124ab211bff1d502c89e3f", "type": "github" }, "original": { @@ -106,11 +106,11 @@ ] }, "locked": { - "lastModified": 1738743987, - "narHash": "sha256-O3bnAfsObto6l2tQOmQlrO6Z2kD6yKwOWfs7pA0CpOc=", + "lastModified": 1741043630, + "narHash": "sha256-xJ4rzdkVUhY40pIPX1xXiWiGX+g8Dww43v/lew5lrxo=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "ae406c04577ff9a64087018c79b4fdc02468c87c", + "rev": "4a0bddd49813e96da45e9b5159c35d62f2f52089", "type": "github" }, "original": { @@ -121,11 +121,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738797219, - "narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=", + "lastModified": 1741037377, + "narHash": "sha256-SvtvVKHaUX4Owb+PasySwZsoc5VUeTf1px34BByiOxw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1da52dd49a127ad74486b135898da2cef8c62665", + "rev": "02032da4af073d0f6110540c8677f16d4be0117f", "type": "github" }, "original": { @@ -153,11 +153,11 @@ ] }, "locked": { - "lastModified": 1738680491, - "narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=", + "lastModified": 1739829690, + "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "64dbb922d51a42c0ced6a7668ca008dded61c483", + "rev": "3d0579f5cc93436052d94b73925b48973a104204", "type": "github" }, "original": { diff --git a/generated/efmls-configs.nix b/generated/efmls-configs.nix index 237e78a41f..5da7c83fe2 100644 --- a/generated/efmls-configs.nix +++ b/generated/efmls-configs.nix @@ -1292,6 +1292,7 @@ possible = [ "sql-formatter" "sqlfluff" + "sqruff" ]; }; linter = { diff --git a/generated/lspconfig-servers.json b/generated/lspconfig-servers.json index 8b081d3497..5485a36913 100644 --- a/generated/lspconfig-servers.json +++ b/generated/lspconfig-servers.json @@ -14,6 +14,11 @@ "desc": "https://github.com/aiken-lang/aiken\n\nA language server for Aiken Programming Language.\n[Installation](https://aiken-lang.org/installation-instructions)\n\nIt can be i\n", "name": "aiken" }, + { + "cmd": ["air", "language-server"], + "desc": "https://github.com/posit-dev/air\n\nAir is an R formatter and language server, written in Rust.\n\nRefer to the [documentation](https://posit-dev.github.io/air/editors.html) for more details.\n\n ", + "name": "air" + }, { "cmd": ["alloy", "lsp"], "desc": "https://github.com/AlloyTools/org.alloytools.alloy\n\nAlloy is a formal specification language for describing structures and a tool for exploring them.\n\nYou may also need to configure the filetype for Alloy (*.als) files:\n\n```\nautocmd BufNewFile,BufRead *.als set filetype=alloy\n```\n\nor\n\n```lua\nvim.filetype.add({\n pattern = {\n ['.*/*.als'] = 'alloy',\n },\n})\n```\n\nAlternatively, you may use a syntax plugin like https://github.com/runoshun/vim-alloy.\n", @@ -31,6 +36,8 @@ "--tsProbeLocations", "", "--ngProbeLocations", + "", + "--angularCoreVersion", "" ], "desc": "https://github.com/angular/vscode-ng-language-service\n\n`angular-language-server` can be installed via npm `npm install -g @angular/language-server`.\n\nNote, that if you override the default `cmd`, you must also update `on_new_config` to set `new_config.cmd` during startup.\n\n```lua\nlocal project_library_path = \"/path/to/project/lib\"\nlocal cmd = {\"ngserver\", \"--stdio\", \"--tsProbeLocations\", project_library_path , \"--ngProbeLocations\", project_library_path}\n\nrequire'lspconfig'.angularls.setup{\n cmd = cmd,\n on_new_config = function(new_config,new_root_dir)\n new_config.cmd = cmd\n end,\n}\n```\n ", @@ -72,7 +79,7 @@ }, { "cmd": ["atlas", "tool", "lsp", "--stdio"], - "desc": "https://github.com/ariga/atlas\n\nLanguage server for Atlas config and scheme files.\n\nYou may also need to configure the filetype for *.hcl files:\n\n`autocmd BufNewFile,BufRead atlas.hcl set filetype=atlas-config`\n`autocmd BufNewFile,BufRead *.my.hcl set filetype=atlas-schema-mysql`\n`autocmd BufNewFile,BufRead *.pg.hcl set filetype=atlas-schema-postgresql`\n`autocmd BufNewFile,BufRead *.lt.hcl set filetype=atlas-schema-sqlite`\n`autocmd BufNewFile,BufRead *.ch.hcl set filetype=atlas-schema-clickhouse`\n`autocmd BufNewFile,BufRead *.ms.hcl set filetype=atlas-schema-mssql`\n`autocmd BufNewFile,BufRead *.rs.hcl set filetype=atlas-schema-redshift`\n`autocmd BufNewFile,BufRead *.test.hcl set filetype=atlas-test`\n`autocmd BufNewFile,BufRead *.plan.hcl set filetype=atlas-plan`\n\nor\n\n```lua\nvim.filetype.add({\n filename = {\n ['atlas.hcl'] = 'atlas-config',\n },\n pattern = {\n ['.*/*.my.hcl'] = 'atlas-schema-mysql',\n ['.*/*.pg.hcl'] = 'atlas-schema-postgresql',\n ['.*/*.lt.hcl'] = 'atlas-schema-sqlite',\n ['.*/*.ch.hcl'] = 'atlas-schema-clickhouse',\n ['.*/*.ms.hcl'] = 'atlas-schema-mssql',\n ['.*/*.rs.hcl'] = 'atlas-schema-redshift',\n ['.*/*.test.hcl'] = 'atlas-test',\n ['.*/*.plan.hcl'] = 'atlas-plan',\n },\n})\n```\n\n", + "desc": "https://github.com/ariga/atlas\n\nLanguage server for Atlas config and scheme files.\n\nYou may also need to configure the filetype for *.hcl files:\n\n`autocmd BufNewFile,BufRead atlas.hcl set filetype=atlas-config`\n`autocmd BufNewFile,BufRead *.my.hcl set filetype=atlas-schema-mysql`\n`autocmd BufNewFile,BufRead *.pg.hcl set filetype=atlas-schema-postgresql`\n`autocmd BufNewFile,BufRead *.lt.hcl set filetype=atlas-schema-sqlite`\n`autocmd BufNewFile,BufRead *.ch.hcl set filetype=atlas-schema-clickhouse`\n`autocmd BufNewFile,BufRead *.ms.hcl set filetype=atlas-schema-mssql`\n`autocmd BufNewFile,BufRead *.rs.hcl set filetype=atlas-schema-redshift`\n`autocmd BufNewFile,BufRead *.test.hcl set filetype=atlas-test`\n`autocmd BufNewFile,BufRead *.plan.hcl set filetype=atlas-plan`\n\nor\n\n```lua\nvim.filetype.add({\n filename = {\n ['atlas.hcl'] = 'atlas-config',\n },\n pattern = {\n ['.*/*.my.hcl'] = 'atlas-schema-mysql',\n ['.*/*.pg.hcl'] = 'atlas-schema-postgresql',\n ['.*/*.lt.hcl'] = 'atlas-schema-sqlite',\n ['.*/*.ch.hcl'] = 'atlas-schema-clickhouse',\n ['.*/*.ms.hcl'] = 'atlas-schema-mssql',\n ['.*/*.rs.hcl'] = 'atlas-schema-redshift',\n ['.*/*.test.hcl'] = 'atlas-test',\n ['.*/*.plan.hcl'] = 'atlas-plan',\n },\n})\n```\n\nOptionally, tell treesitter to treat Atlas filetypes as HCL for better syntax highlighting:\n\n```lua\nvim.treesitter.language.register('hcl', 'atlas-config')\nvim.treesitter.language.register('hcl', 'atlas-schema-mysql')\nvim.treesitter.language.register('hcl', 'atlas-schema-postgresql')\nvim.treesitter.language.register('hcl', 'atlas-schema-sqlite')\nvim.treesitter.language.register('hcl', 'atlas-schema-clickhouse')\nvim.treesitter.language.register('hcl', 'atlas-schema-mssql')\nvim.treesitter.language.register('hcl', 'atlas-schema-redshift')\nvim.treesitter.language.register('hcl', 'atlas-test')\nvim.treesitter.language.register('hcl', 'atlas-plan')\n```\n\n", "name": "atlas" }, { @@ -97,7 +104,7 @@ }, { "cmd": ["bacon-ls"], - "desc": "https://github.com/crisidev/bacon-ls\n\nA Language Server Protocol wrapper for [bacon](https://dystroy.org/bacon/).\nIt offers textDocument/diagnostic and workspace/diagnostic capabilities for Rust\nworkspaces using the Bacon export locations file.\n\nIt requires `bacon` and `bacon-ls` to be installed on the system using\n[mason.nvim](https://github.com/williamboman/mason.nvim) or manually:util\n\n```sh\n$ cargo install --locked bacon bacon-ls\n```\n\nSettings can be changed using the `settings` dictionary:util\n\n```lua\nsettings = {\n -- Bacon export filename, default .bacon-locations\n locationsFile = \".bacon-locations\",\n -- Maximum time in seconds the LSP server waits for Bacon to update the\n -- export file before loading the new diagnostics\n waitTimeSeconds = 10\n}\n```\n ", + "desc": "https://github.com/crisidev/bacon-ls\n\nA Language Server Protocol wrapper for [bacon](https://dystroy.org/bacon/).\nIt offers textDocument/diagnostic and workspace/diagnostic capabilities for Rust\nworkspaces using the Bacon export locations file.\n\nIt requires `bacon` and `bacon-ls` to be installed on the system using\n[mason.nvim](https://github.com/williamboman/mason.nvim) or manually\n\n```sh\n$ cargo install --locked bacon bacon-ls\n```\n\nSettings can be changed using the `init_options` dictionary:util\n\n```lua\ninit_options = {\n -- Bacon export filename (default: .bacon-locations).\n locationsFile = \".bacon-locations\",\n -- Try to update diagnostics every time the file is saved (default: true).\n updateOnSave = true,\n -- How many milliseconds to wait before updating diagnostics after a save (default: 1000).\n updateOnSaveWaitMillis = 1000,\n -- Try to update diagnostics every time the file changes (default: true).\n updateOnChange = true,\n -- Try to validate that bacon preferences are setup correctly to work with bacon-ls (default: true).\n validateBaconPreferences = true,\n -- f no bacon preferences file is found, create a new preferences file with the bacon-ls job definition (default: true).\n createBaconPreferencesFile = true,\n -- Run bacon in background for the bacon-ls job (default: true)\n runBaconInBackground = true,\n -- Command line arguments to pass to bacon running in background (default \"--headless -j bacon-ls\")\n runBaconInBackgroundCommandArguments = \"--headless -j bacon-ls\",\n -- How many milliseconds to wait between background diagnostics check to synchronize all open files (default: 2000).\n synchronizeAllOpenFilesWaitMillis = 2000,\n}\n```\n ", "name": "bacon_ls" }, { @@ -410,6 +417,11 @@ "desc": "https://github.com/iamcco/ds-pinyin-lsp\nDead simple Pinyin language server for input Chinese without IME(input method).\nTo install, download the latest [release](https://github.com/iamcco/ds-pinyin-lsp/releases) and ensure `ds-pinyin-lsp` is on your path.\nAnd make ensure the database file `dict.db3` is also downloaded. And put the path to `dict.dbs` in the following code.\n\n```lua\n\nrequire('lspconfig').ds_pinyin_lsp.setup {\n init_options = {\n db_path = \"your_path_to_database\"\n }\n}\n\n```\n", "name": "ds_pinyin_lsp" }, + { + "cmd": ["dts-lsp"], + "desc": "`dts-lsp` is an LSP for Devicetree files built on top of tree-sitter-devicetree grammar.\nLanguage servers can be used in many editors, such as Visual Studio Code, Emacs\nor Vim\n\nInstall `dts-lsp` from https://github.com/igor-prusov/dts-lsp and add it to path\n\n`dts-lsp` doesn't require any configuration.\n\nMore about Devicetree:\nhttps://www.devicetree.org/\nhttps://docs.zephyrproject.org/latest/build/dts/index.html\n\n", + "name": "dts_lsp" + }, { "cmd": ["earthlyls"], "desc": "https://github.com/glehmann/earthlyls\n\nA fast language server for earthly.\n", @@ -637,7 +649,7 @@ }, { "cmd": ["harper-ls", "--stdio"], - "desc": "https://github.com/elijah-potter/harper\n\nThe language server for Harper, the slim, clean language checker for\ndevelopers.\n\nSee\n[docs](https://github.com/elijah-potter/harper/blob/master/harper-ls/README.md#configuration)\nfor more information on settings.\n\nIn short, however, they should look something like this:\n\n``` lua\nlspconfig.harper_ls.setup {\n settings = {\n [\"harper-ls\"] = {\n userDictPath = \"~/dict.txt\"\n }\n },\n}\n```\n", + "desc": "https://github.com/automattic/harper\n\nThe language server for Harper, the slim, clean language checker for developers.\n\nSee our [documentation](https://writewithharper.com/docs/integrations/neovim) for more information on settings.\n\nIn short, they should look something like this:\n```lua\nlspconfig.harper_ls.setup {\n settings = {\n [\"harper-ls\"] = {\n userDictPath = \"~/dict.txt\"\n }\n },\n}\n```\n ", "name": "harper_ls" }, { @@ -835,7 +847,7 @@ }, { "cmd": ["lua-language-server"], - "desc": "https://github.com/luals/lua-language-server\n\nLua language server.\n\n`lua-language-server` can be installed by following the instructions\n[here](https://luals.github.io/#neovim-install).\n\nThe default `cmd` assumes that the `lua-language-server` binary can be\nfound in `$PATH`.\n\nIf you primarily use `lua-language-server` for Neovim, and want to\nprovide completions, analysis, and location handling for plugins on\nruntime path, you can use the following settings.\n\n``` lua\nrequire'lspconfig'.lua_ls.setup {\n on_init = function(client)\n if client.workspace_folders then\n local path = client.workspace_folders[1].name\n if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then\n return\n end\n end\n\n client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {\n runtime = {\n -- Tell the language server which version of Lua you're using\n -- (most likely LuaJIT in the case of Neovim)\n version = 'LuaJIT'\n },\n -- Make the server aware of Neovim runtime files\n workspace = {\n checkThirdParty = false,\n library = {\n vim.env.VIMRUNTIME\n -- Depending on the usage, you might want to add additional paths here.\n -- \"${3rd}/luv/library\"\n -- \"${3rd}/busted/library\",\n }\n -- or pull in all of 'runtimepath'. NOTE: this is a lot slower and will cause issues when working on your own configuration (see https://github.com/neovim/nvim-lspconfig/issues/3189)\n -- library = vim.api.nvim_get_runtime_file(\"\", true)\n }\n })\n end,\n settings = {\n Lua = {}\n }\n}\n```\n\nSee `lua-language-server`'s\n[documentation](https://luals.github.io/wiki/settings/) for an\nexplanation of the above fields: \\*\n[Lua.runtime.path](https://luals.github.io/wiki/settings/#runtimepath)\n\\*\n[Lua.workspace.library](https://luals.github.io/wiki/settings/#workspacelibrary)\n", + "desc": "https://github.com/luals/lua-language-server\n\nLua language server.\n\n`lua-language-server` can be installed by following the instructions\n[here](https://luals.github.io/#neovim-install).\n\nThe default `cmd` assumes that the `lua-language-server` binary can be\nfound in `$PATH`.\n\nIf you primarily use `lua-language-server` for Neovim, and want to\nprovide completions, analysis, and location handling for plugins on\nruntime path, you can use the following settings.\n\n``` lua\nrequire'lspconfig'.lua_ls.setup {\n on_init = function(client)\n if client.workspace_folders then\n local path = client.workspace_folders[1].name\n if path ~= vim.fn.stdpath('config') and (vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc')) then\n return\n end\n end\n\n client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {\n runtime = {\n -- Tell the language server which version of Lua you're using\n -- (most likely LuaJIT in the case of Neovim)\n version = 'LuaJIT'\n },\n -- Make the server aware of Neovim runtime files\n workspace = {\n checkThirdParty = false,\n library = {\n vim.env.VIMRUNTIME\n -- Depending on the usage, you might want to add additional paths here.\n -- \"${3rd}/luv/library\"\n -- \"${3rd}/busted/library\",\n }\n -- or pull in all of 'runtimepath'. NOTE: this is a lot slower and will cause issues when working on your own configuration (see https://github.com/neovim/nvim-lspconfig/issues/3189)\n -- library = vim.api.nvim_get_runtime_file(\"\", true)\n }\n })\n end,\n settings = {\n Lua = {}\n }\n}\n```\n\nSee `lua-language-server`'s\n[documentation](https://luals.github.io/wiki/settings/) for an\nexplanation of the above fields: \\*\n[Lua.runtime.path](https://luals.github.io/wiki/settings/#runtimepath)\n\\*\n[Lua.workspace.library](https://luals.github.io/wiki/settings/#workspacelibrary)\n", "name": "lua_ls" }, { "cmd": ["luau-lsp", "lsp"], "name": "luau_lsp" }, @@ -1325,7 +1337,7 @@ }, { "cmd": ["rust-analyzer"], - "desc": "https://github.com/rust-lang/rust-analyzer\n\nrust-analyzer (aka rls 2.0), a language server for Rust\n\nSee\n[docs](https://github.com/rust-lang/rust-analyzer/blob/master/docs/user/generated_config.adoc)\nfor extra settings. The settings can be used like this:\n\n``` lua\nrequire'lspconfig'.rust_analyzer.setup{\n settings = {\n ['rust-analyzer'] = {\n diagnostics = {\n enable = false;\n }\n }\n }\n}\n```\n\nNote: do not set `init_options` for this LS config, it will be\nautomatically populated by the contents of settings\\[\"rust-analyzer\"\\]\nper\nhttps://github.com/rust-lang/rust-analyzer/blob/eb5da56d839ae0a9e9f50774fa3eb78eb0964550/docs/dev/lsp-extensions.md?plain=1#L26.\n", + "desc": "https://github.com/rust-lang/rust-analyzer\n\nrust-analyzer (aka rls 2.0), a language server for Rust\n\nSee [docs](https://rust-analyzer.github.io/book/configuration.html) for\nextra settings. The settings can be used like this:\n\n``` lua\nrequire'lspconfig'.rust_analyzer.setup{\n settings = {\n ['rust-analyzer'] = {\n diagnostics = {\n enable = false;\n }\n }\n }\n}\n```\n\nNote: do not set `init_options` for this LS config, it will be\nautomatically populated by the contents of settings\\[\"rust-analyzer\"\\]\nper\nhttps://github.com/rust-lang/rust-analyzer/blob/eb5da56d839ae0a9e9f50774fa3eb78eb0964550/docs/dev/lsp-extensions.md?plain=1#L26.\n", "name": "rust_analyzer" }, { @@ -1633,6 +1645,11 @@ "desc": "https://github.com/npezza93/ttags\n ", "name": "ttags" }, + { + "cmd": ["turbo-language-server", "--stdio"], + "desc": "https://www.npmjs.com/package/turbo-language-server\n\n`turbo-language-server` can be installed via `npm`:\n\n```sh\nnpm install -g turbo-language-server\n```\n\nor via `yarn`:\n\n```sh\nyarn global add turbo-language-server\n```\n", + "name": "turbo_ls" + }, { "cmd": ["node", null, "--stdio"], "desc": "https://github.com/stardog-union/stardog-language-servers/tree/master/packages/turtle-language-server\n`turtle-language-server`, An editor-agnostic server providing language intelligence (diagnostics, hover tooltips, etc.) for the W3C standard Turtle RDF syntax via the Language Server Protocol.\ninstallable via npm install -g turtle-language-server or yarn global add turtle-language-server.\nrequires node.\n", @@ -1720,7 +1737,7 @@ }, { "cmd": ["veridian"], - "desc": "https://github.com/vivekmalneedi/veridian\n\nA SystemVerilog LanguageServer.\n\nDownload the latest release for your OS from the releases page\n\n**install with slang feature, if C++17 compiler is available**\n\ncargo install --git https://github.com/vivekmalneedi/veridian.git\n--all-features \\# install if C++17 compiler is not available cargo\ninstall --git https://github.com/vivekmalneedi/veridian.git\n", + "desc": "https://github.com/vivekmalneedi/veridian\n\nA SystemVerilog LanguageServer.\n\nDownload the latest release for your OS from the releases page\n\nInstall with slang feature, if C++17 compiler is available:\n```\ncargo install --git https://github.com/vivekmalneedi/veridian.git --all-features\n```\n\nInstall if C++17 compiler is not available:\n```\ncargo install --git https://github.com/vivekmalneedi/veridian.git\n```\n ", "name": "veridian" }, { @@ -1767,6 +1784,11 @@ "desc": "https://github.com/vuejs/vetur/tree/master/server\n\nVue language server(vls)\n`vue-language-server` can be installed via `npm`:\n```sh\nnpm install -g vls\n```\n", "name": "vuels" }, + { + "cmd": ["wat_server"], + "desc": "https://github.com/g-plane/wasm-language-tools\n\nWebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format.\nIt also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format.\n", + "name": "wasm_language_tools" + }, { "cmd": ["wgsl_analyzer"], "desc": "https://github.com/wgsl-analyzer/wgsl-analyzer\n\n`wgsl_analyzer` can be installed via `cargo`:\n```sh\ncargo install --git https://github.com/wgsl-analyzer/wgsl-analyzer wgsl_analyzer\n```\n", diff --git a/generated/none-ls.nix b/generated/none-ls.nix index 51cdea3923..e83639ee32 100644 --- a/generated/none-ls.nix +++ b/generated/none-ls.nix @@ -126,6 +126,7 @@ "buildifier" "cbfmt" "clang_format" + "cljfmt" "cljstyle" "cmake_format" "codespell" diff --git a/generated/rust-analyzer.nix b/generated/rust-analyzer.nix index 26ba306fce..1f41b2d288 100644 --- a/generated/rust-analyzer.nix +++ b/generated/rust-analyzer.nix @@ -531,6 +531,24 @@ kind = "boolean"; }; }; + "rust-analyzer.completion.autoAwait.enable" = { + description = '' + Toggles the additional completions that automatically show method calls and field accesses with `await` prefixed to them when completing on a future. + ''; + pluginDefault = true; + type = { + kind = "boolean"; + }; + }; + "rust-analyzer.completion.autoIter.enable" = { + description = '' + Toggles the additional completions that automatically show method calls with `iter()` or `into_iter()` prefixed to them when completing on a type that has them. + ''; + pluginDefault = true; + type = { + kind = "boolean"; + }; + }; "rust-analyzer.completion.autoimport.enable" = { description = '' Toggles the additional completions that automatically add imports when completed. @@ -833,9 +851,9 @@ kind = "list"; }; }; - "rust-analyzer.files.excludeDirs" = { + "rust-analyzer.files.exclude" = { description = '' - These directories will be ignored by rust-analyzer. They are + These paths (file/directories) will be ignored by rust-analyzer. They are relative to the workspace root, and globs are not supported. You may also need to add the folders to Code's `files.watcherExclude`. ''; @@ -1558,6 +1576,15 @@ kind = "boolean"; }; }; + "rust-analyzer.inlayHints.typeHints.hideClosureParameter" = { + description = '' + Whether to hide inlay parameter type hints for closures. + ''; + pluginDefault = false; + type = { + kind = "boolean"; + }; + }; "rust-analyzer.inlayHints.typeHints.hideNamedConstructor" = { description = '' Whether to hide inlay type hints for constructors. diff --git a/plugins/by-name/efmls-configs/packages.nix b/plugins/by-name/efmls-configs/packages.nix index e52eeaa850..8453879601 100644 --- a/plugins/by-name/efmls-configs/packages.nix +++ b/plugins/by-name/efmls-configs/packages.nix @@ -87,8 +87,9 @@ in "shellharden" "shfmt" "smlfmt" - "sqlfluff" "sql-formatter" + "sqlfluff" + "sqruff" "statix" "stylua" "taplo" diff --git a/plugins/by-name/markview/default.nix b/plugins/by-name/markview/default.nix index 1272b0a721..c04924c5e2 100644 --- a/plugins/by-name/markview/default.nix +++ b/plugins/by-name/markview/default.nix @@ -21,78 +21,80 @@ lib.nixvim.plugins.mkNeovimPlugin { ''; settingsOptions = { - buf_ignore = defaultNullOpts.mkListOf types.str [ "nofile" ] '' - Buftypes to disable markview-nvim. - ''; + preview = { + enable = defaultNullOpts.mkBool true '' + Enable preview functionality. + ''; - modes = - defaultNullOpts.mkListOf types.str - [ - "n" - "no" - ] - '' - Modes where preview is enabled. - ''; + enable_hybrid_mode = defaultNullOpts.mkBool true '' + Enable hybrid mode functionality. + ''; - hybrid_modes = defaultNullOpts.mkListOf types.str null '' - Modes where hybrid mode is enabled. - ''; + buf_ignore = defaultNullOpts.mkListOf types.str [ "nofile" ] '' + Buftypes to disable markview-nvim. + ''; - callback = { - on_enable = defaultNullOpts.mkLuaFn' { - pluginDefault = # Lua + modes = + defaultNullOpts.mkListOf types.str + [ + "n" + "no" + "c" + ] '' - function(buf, win) - vim.wo[window].conceallevel = 2; - vim.wo[window].concealcursor = "nc"; - end + Modes where preview is enabled. ''; - description = '' - Action to perform when markview is enabled. - ''; - }; - on_disable = defaultNullOpts.mkLuaFn' { - pluginDefault = # Lua - '' - function(buf, win) - vim.wo[window].conceallevel = 0; - vim.wo[window].concealcursor = ""; - end - ''; - description = '' - Action to perform when markview is disabled. - ''; - }; + hybrid_modes = defaultNullOpts.mkListOf types.str null '' + Modes where hybrid mode is enabled. + ''; - on_mode_change = defaultNullOpts.mkLuaFn' { - pluginDefault = # Lua - '' - function(buf, win, mode) - if vim.list_contains(markview.configuration.modes, mode) then - vim.wo[window].conceallevel = 2; - else - vim.wo[window].conceallevel = 0; - end - end - ''; - description = '' - Action to perform when mode is changed, while the plugin is enabled. - ''; - }; + icon_provider = defaultNullOpts.mkEnum [ "devicons" "internal" "mini" ] "internal" '' + Provider for icons. + Available options: + - "devicons": Use nvim-web-devicons + - "internal": Use internal icons (default) + - "mini": Use mini.icons + ''; }; }; settingsExample = { - buf_ignore = [ ]; - modes = [ - "n" - "x" - ]; - hybrid_modes = [ - "i" - "r" - ]; + preview = { + buf_ignore = [ ]; + modes = [ + "n" + "x" + ]; + hybrid_modes = [ + "i" + "r" + ]; + }; + }; + + extraConfig = cfg: { + # v25 migration warning added 2025-03-04 + warnings = lib.nixvim.mkWarnings "plugins.markview" ( + lib.map + (name: { + when = cfg.settings ? ${name}; + message = '' + v25 had a complete spec redesign. `${name}` had been moved to `preview.${ + if name == "callback" then "callbacks" else name + }`. + See https://github.com/OXY2DEV/markview.nvim/blob/v25.0.0/doc/migration.txt#L155 + ''; + }) + [ + "buf_ignore" + "callback" + "callbacks" + "debounce" + "filetypes" + "hybrid_modes" + "modes" + ] + ); }; } diff --git a/plugins/by-name/none-ls/packages.nix b/plugins/by-name/none-ls/packages.nix index 4d60ccf017..f9d15a130e 100644 --- a/plugins/by-name/none-ls/packages.nix +++ b/plugins/by-name/none-ls/packages.nix @@ -39,6 +39,7 @@ in "checkmake" "checkstyle" "clazy" + "cljfmt" "codespell" "commitlint" "cppcheck" diff --git a/plugins/lsp/language-servers/pylsp.nix b/plugins/lsp/language-servers/pylsp.nix index 73ef9e1c34..a23ac61577 100644 --- a/plugins/lsp/language-servers/pylsp.nix +++ b/plugins/lsp/language-servers/pylsp.nix @@ -609,6 +609,11 @@ in # Those tests fail when third-party plugins are loaded "test_notebook_document__did_open" "test_notebook_document__did_change" + + # test/plugins/test_autoimport.py:322: AssertionError + # E assert False + # E + where False = any(. at 0x7fff54a2eb20>) + "test_autoimport_code_actions_and_completions_for_notebook_document" ]; }) ); diff --git a/plugins/lsp/lsp-packages.nix b/plugins/lsp/lsp-packages.nix index e522cb3227..7bcd53c8d8 100644 --- a/plugins/lsp/lsp-packages.nix +++ b/plugins/lsp/lsp-packages.nix @@ -43,6 +43,7 @@ "dolmenls" "drools_lsp" "ds_pinyin_lsp" + "dts_lsp" "ecsact" "ember" "esbonio" @@ -60,6 +61,7 @@ "glint" "gradle_ls" "grammarly" + "graphql" # nodePackages.graphql-language-service-cli was removed in https://github.com/NixOS/nixpkgs/pull/382557 "groovyls" "guile_ls" "haxe_language_server" @@ -130,6 +132,7 @@ "roc_ls" "rome" "salt_ls" + "scry" # deprecated and removed from nixpkgs "selene3p_ls" "sixtyfps" "slangd" @@ -154,6 +157,7 @@ "textlsp" "theme_check" "tsp_server" + "turbo_ls" "turtle_ls" # typst-lsp has been removed from nixpkgs as the project is archived "typst_lsp" @@ -168,6 +172,7 @@ "veridian" "visualforce_ls" "vuels" + "wasm_language_tools" "yang_lsp" "yls" "ziggy" @@ -176,6 +181,7 @@ packages = { aiken = "aiken"; + air = "air-formatter"; angularls = "angular-language-server"; ansiblels = "ansible-language-server"; arduino_language_server = "arduino-language-server"; @@ -245,10 +251,6 @@ gleam = "gleam"; glsl_analyzer = "glsl_analyzer"; glslls = "glslls"; - graphql = [ - "nodePackages" - "graphql-language-service-cli" - ]; golangci_lint_ls = "golangci-lint-langserver"; gopls = "gopls"; harper_ls = "harper"; @@ -343,7 +345,6 @@ "akkuPackages" "scheme-langserver" ]; - scry = "scry"; serve_d = "serve-d"; shopify_theme_ls = "shopify-cli"; slint_lsp = "slint-lsp"; diff --git a/tests/lsp-servers.nix b/tests/lsp-servers.nix index c54ee84480..000579c390 100644 --- a/tests/lsp-servers.nix +++ b/tests/lsp-servers.nix @@ -43,20 +43,14 @@ let "ruff_lsp" "bufls" "typst_lsp" - - # TODO: 2025-01-22 python312Packages.anytree is broken (dependency of bitbake-language-server) - "bitbake_language_server" - ] - ++ lib.optionals pkgs.stdenv.isAarch64 [ - # Broken - "scheme_langserver" ] ++ lib.optionals (pkgs.stdenv.hostPlatform.system == "aarch64-linux") [ - # TODO: 2025-01-09 python312Packages.tree-sitter (dependency of autotools-language-server) is broken - # https://github.com/NixOS/nixpkgs/issues/372375 - "autotools_ls" # TODO: 2024-10-05 build failure "fstar" + + # TODO: 2025-03-04 build failure + # https://github.com/NixOS/nixpkgs/pull/386758 + "nickel_ls" ]; in { diff --git a/tests/test-sources/plugins/by-name/copilot-chat/default.nix b/tests/test-sources/plugins/by-name/copilot-chat/default.nix index 98471d1f34..246217f3ea 100644 --- a/tests/test-sources/plugins/by-name/copilot-chat/default.nix +++ b/tests/test-sources/plugins/by-name/copilot-chat/default.nix @@ -8,63 +8,24 @@ plugins.copilot-chat = { enable = true; + # https://github.com/CopilotC-Nvim/CopilotChat.nvim/blob/main/lua/CopilotChat/config.lua settings = { - debug = false; - proxy = null; - allow_insecure = false; - system_prompt = "require('CopilotChat.prompts').COPILOT_INSTRUCTIONS"; - model = "gpt-4"; - temperature = 0.1; - question_header = "## User "; - answer_header = "## Copilot "; - error_header = "## Error "; - separator = "───"; - show_folds = true; - show_help = true; - auto_follow_cursor = true; - auto_insert_mode = false; - clear_chat_on_new_prompt = false; - highlight_selection = true; + system_prompt = "require('CopilotChat.config.prompts').COPILOT_INSTRUCTIONS"; + model = "gpt-4-o"; + agent = "none"; context = null; - history_path.__raw = "vim.fn.stdpath('data') .. '/copilotchat_history'"; + sticky = null; + + temperature = 0.1; + headless = false; callback = null; - selection = '' + + selection.__raw = '' function(source) local select = require('CopilotChat.select') - return select.visual(source) or select.line(source) + return select.visual(source) or select.buffer(source) end ''; - prompts = { - Explain.prompt = "/COPILOT_EXPLAIN Write an explanation for the active selection as paragraphs of text."; - Review = { - prompt = "/COPILOT_REVIEW Review the selected code."; - callback = '' - function(response, source) - -- see config.lua for implementation - end - ''; - }; - Fix.prompt = "/COPILOT_GENERATE There is a problem in this code. Rewrite the code to show it with the bug fixed."; - Optimize.prompt = "/COPILOT_GENERATE Optimize the selected code to improve performance and readablilty."; - Docs.prompt = "/COPILOT_GENERATE Please add documentation comment for the selection."; - Tests.prompt = "/COPILOT_GENERATE Please generate tests for my code."; - FixDiagnostic = { - prompt = "Please assist with the following diagnostic issue in file:"; - selection = "require('CopilotChat.select').diagnostics"; - }; - Commit = { - prompt = "Write commit message for the change with commitizen convention. Make sure the title has maximum 50 characters and message is wrapped at 72 characters. Wrap the whole message in code block with language gitcommit."; - selection = "require('CopilotChat.select').gitdiff"; - }; - CommitStaged = { - prompt = "Write commit message for the change with commitizen convention. Make sure the title has maximum 50 characters and message is wrapped at 72 characters. Wrap the whole message in code block with language gitcommit."; - selection = '' - function(source) - return select.gitdiff(source, true) - end - ''; - }; - }; window = { layout = "vertical"; @@ -78,39 +39,29 @@ footer = null; zindex = 1; }; - mappings = { - complete.insert = ""; - close = { - normal = "q"; - insert = ""; - }; - reset = { - normal = ""; - insert = ""; - }; - submit_prompt = { - normal = ""; - insert = ""; - }; - toggle_sticky = { - detail = "Makes line under cursor sticky or deletes sticky line."; - normal = "gr"; - }; - accept_diff = { - normal = ""; - insert = ""; - }; - jump_to_diff.normal = "gj"; - quickfix_diffs.normal = "gq"; - yank_diff = { - normal = "gy"; - register = "\""; - }; - show_diff.normal = "gd"; - show_info.normal = "gi"; - show_context.normal = "gc"; - show_help.normal = "gh"; - }; + + show_help = true; + show_folds = true; + highlight_selection = true; + highlight_headers = true; + auto_follow_cursor = true; + auto_insert_mode = false; + insert_at_end = false; + + debug = false; + log_level = "info"; + proxy = null; + allow_insecure = false; + + chat_autocomplete = true; + + log_path.__raw = "vim.fn.stdpath('state') .. '/CopilotChat.log'"; + history_path.__raw = "vim.fn.stdpath('data') .. '/copilotchat_history'"; + + question_header = "## User "; + answer_header = "## Copilot "; + error_header = "## Error "; + separator = "───"; }; }; }; diff --git a/tests/test-sources/plugins/by-name/markview/default.nix b/tests/test-sources/plugins/by-name/markview/default.nix index 6209dd4fc3..91a31d66a7 100644 --- a/tests/test-sources/plugins/by-name/markview/default.nix +++ b/tests/test-sources/plugins/by-name/markview/default.nix @@ -8,37 +8,20 @@ enable = true; settings = { - buf_ignore = [ "nofile" ]; - modes = [ - "n" - "no" - ]; - hybrid_modes = [ ]; - callback = { - on_enable = # Lua - '' - function(buf, win) - vim.wo[window].conceallevel = 2; - vim.wo[window].concealcursor = "nc"; - end - ''; - on_disable = # Lua - '' - function(buf, win) - vim.wo[window].conceallevel = 0; - vim.wo[window].concealcursor = ""; - end - ''; - on_mode_change = # Lua - '' - function(buf, win, mode) - if vim.list_contains(markview.configuration.modes, mode) then - vim.wo[window].conceallevel = 2; - else - vim.wo[window].conceallevel = 0; - end - end - ''; + preview = { + enable = true; + buf_ignore = [ ]; + icon_provider = "internal"; + filetypes = [ ]; + hybrid_modes = [ ]; + ignore_previews = [ ]; + max_buf_lines = 1000; + modes = [ ]; + render_distance = [ + 200 + 200 + ]; + splitview_winopts = { }; }; }; };