mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-19 00:15:13 +00:00
Add Ada / SPARK language support via AdaCore Ada Language Server (#1461)
Introduces Language.ADA backed by AdaCore's Ada Language Server (ALS), the standard LSP-compliant server for Ada — and SPARK, since both share the .ads/.adb file extensions and ALS distinguishes SPARK by source-level pragmas/aspects rather than by file type. ALS is auto-downloaded from AdaCore's GitHub releases (linux-x64/arm64, darwin-x64/arm64, win32-x64) using the LanguageServerDependencyProviderSinglePath pattern, with SHA256 verification per-platform. Users can override the downloaded binary by setting ls_specific_settings.ada.ls_path to a pre-installed ada_language_server (e.g. from Alire, GNAT Studio, or the VS Code Ada extension). Test repo is a minimal multi-file GNAT project (default.gpr, helper.ads, helper.adb, main.adb). Tests modelled on test_php_basic.py: ls_running, find_definition (within/across), find_references (within/across), find_symbol, document_symbols, hierarchical document symbols, bare-symbol-name sanity check.
This commit is contained in:
1 parent
ab98ea6762
commit
249f6b07f9
16 files changed
+454
-2
No files matched your search
@@ -28,6 +28,13 @@ or at least freely available for use.
|
||||
We currently provide direct, out-of-the-box support for the programming languages listed below.
|
||||
Some languages require additional installations or setup steps, as noted.
|
||||
|
||||
* **Ada / SPARK**
|
||||
(uses AdaCore's [Ada Language Server (ALS)](https://github.com/AdaCore/ada_language_server),
|
||||
automatically downloaded; supports `.ads`, `.adb`, and `.ada` files;
|
||||
works best with a `.gpr` GNAT project file at the repository root;
|
||||
SPARK is handled by the same server transparently — set language `ada` for both.
|
||||
To use a pre-installed ALS (e.g. from Alire, GNAT Studio, or the VS Code Ada extension),
|
||||
set `ls_specific_settings.ada.ls_path`.)
|
||||
* **AL**
|
||||
* **Angular**
|
||||
(experimental; requires Node.js + npm, plus `npm install` having been run in the project root so that `@angular/core`
|
||||
|
||||
Reference in new issue
Block a user