feat: add Deno language server support - #1778
Open
shiersa wants to merge 1 commit into
Open
Conversation
shiersa
force-pushed
the
feat/deno-language-server
branch
2 times, most recently
from
July 29, 2026 07:01
1af6e49 to
d4b8bee
Compare
Add a Deno language server backed by the Deno CLI's built-in `deno lsp`, serving TypeScript/JavaScript in Deno projects. Unlike the plain typescript-language-server it understands Deno module resolution (npm:/jsr:/https: imports) and the `Deno.*` global namespace. It is experimental and must be selected explicitly via `language_servers: [deno]`; it overlaps the TypeScript server on file extensions, so it is not auto-detected. Requires the `deno` CLI on PATH. Tests run in CI: the `deno` marker joins the other-langs batch, which now installs Deno via denoland/setup-deno. Off-CI and wherever the CLI is absent they skip through the central conftest guard, following the existing pattern for toolchain-gated language servers.
shiersa
force-pushed
the
feat/deno-language-server
branch
from
July 29, 2026 18:21
d4b8bee to
1b9dc2d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Deno language server backed by the Deno CLI's built-in
deno lsp, serving TypeScript/JavaScript in Deno projects. Unlike the plain typescript-language-server it understands Deno module resolution (npm:/jsr:/https:imports) and theDeno.*global namespace.It is experimental and must be selected explicitly via
language_servers: [deno]— it overlaps the TypeScript server on file extensions (.ts/.tsx/.js/.jsx/…), so it is not auto-detected. Requires thedenoCLI on PATH (it bundles the language server).This is a fresh implementation against the current
DependencyProviderarchitecture, following.serena/memories/adding_new_language_support_guide.md. (There is an older, stalled PR #1048 from before that refactor; this does not build on it and deliberately avoids the auto-detect / replace-TypeScript behaviour that overlapping extensions can't disambiguate.)Changes
src/solidlsp/language_servers/deno_language_server.py— the language server (deno lsp, single-path dependency provider, TS-family language ids)src/solidlsp/ls_config.py—DENOenum, file-extension matcher, factory wiring, experimental flagtest/solidlsp/deno/test_deno_basic.py+test/resources/repos/deno/test_repo/— tests + a minimal Deno repopyproject.toml—denopytest markerREADME.md,docs/01-about/020_programming-languages.md,CHANGELOG.md— docsTesting
Verified locally against
deno 2.9.0:deno lspreturns document symbols and resolves cross-file go-to-definition and find-references on the test repo.CI note: the
deno-marked test job needsdenoinstalled (e.g.denoland/setup-deno) — happy to add that here or as a follow-up.Checklist
CONTRIBUTING.mdregarding the scope of PRs (isolated addition of a new language server).CHANGELOG.md.