Gnu Emacs Ada mode 8.0.4 is now available in GNU ELPA.
All Ada mode executables can now be built with Alire
(https://alire.ada.dev/); this greatly simplifies that process.
gpr-query and gpr-mode are split out into separate GNU ELPA packages.
You must install them separately (Emacs install-package doesn’t
support “recommended packages” like Debian does).
Ada mode can now be used with Eglot; this is controlled by new variables:
ada-diagnostics-backend - one of wisi, eglot, none
ada-face-backend - one of wisi, eglot, none
ada-indent-backend - one of wisi, eglot, none
ada-statement-backend - one of wisi, eglot, none
ada-xref-backend - one of gnat, gpr_query, eglot, none
The diagnostic, face, indent, and statement backends default to wisi
if the wisi parser is found in PATH, to eglot if the Ada LSP server is
found, and none otherwise. The xref backend defaults to gpr_query if
the gpr_query executable in PATH, to gnat otherwise.
ada-diagnostics-backend controls the source of compilation error
messages while editing.
ada-statement-backend controls statement motion; forward-sexp,
wisi-goto-statement-end, etc. ada-xref-backend controls
wisi-goto-spec/body and Emacs xref commands.
In addition, name completion is provided by eglot if any of the other
backends are using eglot; eglot completion is always better than wisi.
The current AdaCore language server (version 23) supports face but not
indent. The current version of eglot (1.10) does not support face. The
Language Server Protocol does not support statment motion. So for now,
eglot + ada_language_server only provides xref and completion.
The AdaCore language server ada_language_server is installed with
GNATStudio (which ada-mode will find by default), or can be built with
Alire. If you build it with Alire, either put it in PATH, or set
I have not tested ada-mode with lsp-mode. You can set ada-*-backend to
'other to expermiment with that, or tree-sitter, or some other
backend. tree-sitter will be fully supported in the next ada-mode
The required Ada code requires a manual compile step, after the normal
If you have Alire installed, these scripts use it.