From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,FREEMAIL_FROM, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Received: by 2002:a05:6214:2c0d:b0:535:1c20:920f with SMTP id lc13-20020a0562142c0d00b005351c20920fmr1427216qvb.7.1674653278033; Wed, 25 Jan 2023 05:27:58 -0800 (PST) X-Received: by 2002:a05:6808:df7:b0:35a:9331:8cbb with SMTP id g55-20020a0568080df700b0035a93318cbbmr2149230oic.201.1674653277729; Wed, 25 Jan 2023 05:27:57 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 25 Jan 2023 05:27:57 -0800 (PST) Injection-Info: google-groups.googlegroups.com; posting-host=135.180.197.170; posting-account=W2gdXQoAAADxIuhBWhPFjUps3wUp4RhQ NNTP-Posting-Host: 135.180.197.170 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Gnu Emacs Ada mode 8.0.4 released. From: Stephen Leake Injection-Date: Wed, 25 Jan 2023 13:27:58 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:64882 List-Id: 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 gnat-lsp-server-exec. 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 release. The required Ada code requires a manual compile step, after the normal list-packages installation: cd ~/.emacs.d/elpa/ada-mode-7.3beta* ./build.sh ./install.sh If you have Alire installed, these scripts use it.