aboutsummaryrefslogtreecommitdiffstats
path: root/lsp
Commit message (Collapse)AuthorAgeFilesLines
* feat!: deprecate systemd_ls in favor of systemd_lsp #4262Magnus Larsen3 days1-13/+4
|
* fix(biome): avoid false-positive root_dir matches #4261Victor Accarini3 days1-1/+1
| | | | | | | | | Problem: Biome server becomes active if biome appears as a substring in package.json, even when biome is not being used. Solution: Since biome is behind the `@biomejs` namespace we can narrow its activation by appending `js` in the searched term.
* fix(tblgen_lsp_server): also search build dir for db #4260Stefan Weigl-Bosker8 days1-2/+5
|
* fix(roslyn_ls): guess root_dir for decompiled code #4257Matthew Wilding9 days1-3/+8
| | | Try to guess the root_dir by getting the lsp client from the previous buffer.
* fix(tsgo): prefer local node_modules binary over global #4258ryoppippi9 days1-1/+8
| | | | | | | Convert the cmd from a static array to a function that checks for a locally installed tsgo binary in node_modules/.bin/ before falling back to the global installation. This ensures projects using @typescript/native-preview as a local dependency will use the correct version, matching the pattern already used by biome.
* fix(roslyn_ls): attach in decompiled code #4254Matthew Wilding10 days1-0/+5
|
* fix(ast_grep): invalid filetypes #4253Charles Taylor10 days1-3/+1
| | | | | | | | | | | | | | | | Problem: `csharp` is not a valid filetype in neovim. csharp files are of filetype `cs`. You can see a warning by doing ```lua vim.ls.enable({ "ast_grep"}) ``` `:checkheatlh lsp` or `:LspInfo` shows this warning: ``` vim.lsp: Enabled Configurations ⚠️ WARNING Unknown filetype 'csharp' (Hint: filename extension != filetype). ```
* feat: home_assistant #4248Micah Halter12 days1-0/+18
|
* fix(buf_ls): remove unnecessary flags + "beta" comment #4250Stefan VanBuren12 days1-3/+3
|
* feat: systemd_lsp #4251Kris12 days1-0/+20
| | | It's more up-to-date than systemd-language-server.
* fix(harper_ls): add `.harper-dictionary.txt` as root marker #4246Chris Grieser2025-12-171-1/+1
| | | | | | The file `.harper-dictionary.txt` stores the workspace-specific dictionary, thus making it a root marker. https://writewithharper.com/docs/integrations/language-server#Workspace-Dictionary
* docs(roslyn_ls): format codeblock #4241Eero Häihälä2025-12-161-0/+2
|
* fix(copilot): use correct error variable #4240Stefan van der Wolf2025-12-151-1/+1
| | | | | | | | | Problem: The client:exec_cmd callback was incorrectly referencing to err variable from the outer scope instead of the cmd_err variable from its on scope. Could cause problems when err is nil but the cmd_err is not. Solution: Changed the reference from err to cmd_err
* fix(ltex_plus): asciidoc is added to enabled languages (#4239)Denys Digtiar2025-12-151-0/+2
| | | | | | | | | Problem: LTEX+ LS supports Asciidoc but it is not enabled by default. Suggested way of extending configuration overrides the values, since `filetypes` and `ltex.enabled` are Lua list. Solution: Add Asciidoc to the default list of enabled languages.
* fix(omnisharp): "*.slnx" root marker #4236Vincent Labelle2025-12-141-1/+2
| | | | | | | | Problem: Root detection doesn't support the new solution file format which is now the default in .NET 10. Solution: Add '*.slnx' to root_dir function.
* feat: hylo_ls #4237Ambrus Tóth2025-12-141-0/+13
|
* feat: brioche #4238Andrej Kolčin2025-12-141-0/+12
| | | | | | An LSP for [Brioche]: a package manger which uses custom TypeScript-like recipe files. Repo: https://github.com/brioche-dev/brioche [Brioche]: https://brioche.dev/
* feat(flow): use flow executable for cmd if available in PATHGaetan Lepage2025-12-121-1/+10
|
* feat(java_language_server): default cmd #4229Gaétan Lepage2025-12-111-0/+1
|
* docs: omnisharp cmd #4230Gaétan Lepage2025-12-111-2/+0
| | | This LS does have a default (dynamic) `cmd` set.
* feat(nextls): default cmd #4232Gaétan Lepage2025-12-111-1/+2
|
* feat(lexical): default cmd #4231Gaétan Lepage2025-12-111-4/+3
|
* feat(wc_language_server): web components language server #4228Burton Smith2025-12-071-0/+85
|
* feat: rumdl #4199Yota Toyama2025-12-051-0/+12
|
* fix(gitlab_duo): token update on init #4226Aboobacker MK2025-12-041-1/+11
| | | | | | | | Problem: LSP was not getting updated LSP on initialization when the token is fetched from persistent storage Solution: Added `workspace/didChangeConfiguration` after token validation
* feat(ts_ls): add LspTypescriptGoToSourceDefinition command #4225Ilia Choly2025-12-031-0/+23
|
* fix(buf_ls): restrict reuse_client to buf_ls clients only #4221Masayuki Izumi2025-11-291-2/+2
| | | | | | | | | | | | The previous implementation used `reuse_client = function() return true end`, which caused buf_ls to reuse *any* existing LSP client. As a result, when a Copilot LSP client was already running, buf_ls attempted to reuse that client instead of spawning its own, preventing buf_ls from attaching to .proto buffers. Restrict reuse_client so only buf_ls clients can be reused.
* feat(postgres_lsp): require workspace #4220Igor Lacerda2025-11-291-0/+1
|
* fix(eslint): LspEslintFixAll defined in wrong buffer #4218Tu2025-11-261-1/+1
|
* fix(denols): skip non-deno TypeScript projects #4207あすぱる2025-11-251-1/+18
| | | | | | | | | | | | | | | | | | | | ### Problem Currently, non-Deno TypeScript LSPs (`ts_ls`, `tsgo`, `vtsls`) have mechanisms to prevent conflicts by not activating `on_dir` when a Deno project is detected. https://github.com/neovim/nvim-lspconfig/blob/e0fae251f8459940331960106d4bd9457cec23de/lsp/ts_ls.lua#L56-L73 However, `denols` lacks such a mechanism. As a result, when a non-Deno project is opened with `denols` enabled, both LSPs become attached. ### Solution We will add conflict prevention logic to `denols`, similar to what non-Deno TypeScript LSPs have. Currently, [Deno has a workspace feature](https://docs.deno.com/runtime/fundamentals/workspaces/), so we will detect the workspace root using `deno.lock` in the same way non-Deno TypeScript LSPs do. If `deno.lock` is not present and only `deno.json(c)` exists, we will handle it with a fallback. ### Testing I confirmed that the expected LSP launched with the expected `root_dir` in the following situations: - Deno monorepo project - A single Deno project with a deno.lock file in the root - A single Deno project without a deno.lock file in the root - npm monorepo project - A single npm project with a package-lock.json file in the root - A single npm project without a package-lock.json (or any other non-Deno lock file) in the root
* fix(hls): invalid formatter #4215talarys2025-11-251-1/+1
|
* feat(rust_analyzer): enable codelens (#4210)Mike J McGuirk2025-11-211-0/+17
| | | | | Problem: rust_analyzer does not contain the configs for codelens by default Solution: Add codelens config
* feat(lua_ls): enable codelens, inlay hints #4211Mike J McGuirk2025-11-211-0/+6
| | | | | Problem: Current lua_ls config does not enable codelens and inlay hints Solution: Add enable for both of them
* fix(neocmake): use subcommand instead of flag #4208idealseal2025-11-211-1/+1
| | | | Old versions accept both, however starting with v0.9.0 only subcommands will be recognized.
* fix(tailwindcss): dynamic registration for `didWatchChangedFiles` #4206David2025-11-201-0/+7
| | | | Not having this was leading to the lsp falling back to watching *all* files, and causes nasty side effects such as https://github.com/DopplerHQ/cli/issues/502
* fix(lsp): detect deno.jsonc as Deno project for ↵Thiago Marques2025-11-185-5/+5
| | | | | | | biome/eslint/ts_ls/tsgo/vtsls #4203 Even though Deno docs says that both deno.json and deno.jsonc files can be used for its configuration, deno.jsonc was not being considered to prevent biome/eslint/ts_ls/tsgo/vtsls to run in Deno projects.
* fix(leanls) : drop outdated config #4177Y. Ding2025-11-181-45/+0
| | | | | The old file has compatibility issues with the newest version of the `lean.nvim` plugin. The `lean.nvim` plugin now handles language server attachment internally and no longer requires `nvim-lspconfig`. However, for users who still need `nvim-lspconfig` installed (e.g., for other languages), the existing file would shadow the newer one, leading to conflicts. This update directly copies the relevant file from `lean.nvim` to resolve this.
* feat: tclsp #4200Niko Savola2025-11-171-0/+22
|
* fix(ts_ls): broken in non-Deno repo #4198Daniel Imfeld2025-11-161-2/+2
|
* fix(angularls): improves node_modules path resolution #4190Erikson Kaszubowski2025-11-161-14/+40
| | | | | | | | | | | Problem: Search for node_modules uses a costly call to fn.globpath; the final path resolution was not working on Linux. Solution: A custom function to resolve ngserver location from CMD wrappers on Windows; and the corrected final path. Co-authored-by: Erikson K. <erikson23@gmail.com>
* fix(lsp): improve ts_ls root detection for deno projects #4193Apocalypse2025-11-161-6/+4
| | | | | | Refactor project root detection logic to properly exclude ts_ls when deno.json/deno.lock are at the same or higher level than project markers. Co-authored-by: yzs <yuanzishuai@qq.com>
* fix(docs): handle config errors, document rename #4192Justin M. Keyes2025-11-161-2/+4
| | | | | | | | | | | | | | | Problem: If a config throws an error it fails the entire doc generation. Solution: Handle config error in docgen. Unfortunately, this doesn't show the error message, it shows: loop or previous error loading module 'lsp.volar' instead of the actual `error('…')` message. So meanwhile, document the current deprecation/rename pattern and use `vim.notify()` instead.
* feat: vsrocq, rename "vscoqtop" config #4176simon-dima2025-11-162-5/+11
|
* fix(Gitlab Duo): lint #4187Justin M. Keyes2025-11-151-11/+9
|
* feat(sourcekit): update root_dir check for .bsp #4186Ben Lu2025-11-151-1/+1
| | | Mirrors: https://github.com/swiftlang/vscode-swift/pull/1865
* feat(Gitlab Duo): login + inline_completion #4157Aboobacker MK2025-11-141-0/+440
| | | | | | | | | | Prerequisites: - Node.js and npm installed - GitLab account with Duo Pro license - Neovim 0.12+ (for inline completion support) Limitations: This initial implementation only supports GitLab.com. Support for self-managed GitLab instances may be added in a future iteration.
* fix(eslint.lua): nonsense passed to list_extend()Justin M. Keyes2025-11-141-3/+2
|
* fix: luals warningsJustin M. Keyes2025-11-1415-10/+29
|
* ci: emmyluaJustin M. Keyes2025-11-141-0/+1
| | | | | | - Introduce emmylua CI job to type-check code. - Drop old analyzers that haven't reported anything useful in a long time and are redundant with luals/emmylua.
* fix(angularls): reference to invalid field #4184Thomas Canta2025-11-131-1/+1
| | | | | | | Problem: `config.root` is not a valid field. Solution Replace it by `config.root_dir`.