diff options
| author | あすぱる <contact@aspulse.dev> | 2025-11-26 09:31:36 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-25 16:31:36 -0800 |
| commit | 75dab156f58ed6ada4aa585e2b47986190f1baf1 (patch) | |
| tree | 563f4d5b19253de6ab90e05f79cd0dd6e4808c2f /lua/lspconfig/util.lua | |
| parent | docs: update configs.md (diff) | |
| download | nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.tar nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.tar.gz nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.tar.bz2 nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.tar.lz nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.tar.xz nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.tar.zst nvim-lspconfig-75dab156f58ed6ada4aa585e2b47986190f1baf1.zip | |
fix(denols): skip non-deno TypeScript projects #4207
### 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
Diffstat (limited to 'lua/lspconfig/util.lua')
0 files changed, 0 insertions, 0 deletions
