Add Nextflow language server support (#1815)

The Nextflow language server schedules a debounced (1s) AST update on every
didOpen/didChange, and LanguageService.references is the only request that does
not await it -- documentSymbol, codeLens, documentLink and semanticTokensFull
all do. A references request issued inside that window races the recompile of
the file it asks about and can return an empty list, which is what the macOS CI
runner hit. Send a documentSymbol request for the same file first, which blocks
server-side until the pending update has been applied.

Also compare reference paths using the platform separator in the tests, since
relativePath is OS-native and the hardcoded forward slashes failed on Windows.
This commit is contained in:
Evangelos Karatzas authored and GitHub committed 2026-08-08 18:58:46 +02:00
1 parent 27d7d0e0ec
commit 76b94f3274
17 files changed
+529 -9

No files matched your search

@@ -115,6 +115,11 @@ Some languages require additional installations or setup steps, as noted.
* **mSL** (mIRC Scripting Language)
(auto-installed; no external dependencies required — uses a custom pygls-based LSP server shipped with Serena;
supports document symbols, workspace symbols, references, and go-to-definition for aliases, events, menus, dialogs, and CTCP handlers in `.mrc` files)
* **Nextflow**
(uses the official [Nextflow language server](https://github.com/nextflow-io/language-server), which is automatically
downloaded; requires a Java 17+ runtime, discovered via `ls_specific_settings.nextflow.java_home`, `JAVA_HOME` or `java` on PATH;
covers `.nf` scripts — Nextflow `.config` files are not treated as source files, since the language server reports no symbols for them;
processes, workflows and functions are reported under their declared name, e.g. `GREET` for `process GREET`)
* **Nix**
(requires nixd installation)
* **OCaml**