GNU ELPA - ada-mode


major-mode for editing Ada sources
ada-mode-8.1.0.tar (.sig), 2024-Mar-31, 7.70 MiB
Stephen Leake <>
Atom feed
Browse ELPA's repository
CGit or Gitweb

To install this package from Emacs, use package-install or list-packages.

Full description

Emacs Ada mode version 8.1.0

Ada mode provides auto-casing, fontification, navigation, and
indentation for Ada source code files.

Cross-reference via Emacs xref can use an xref backend provided by the
gpr-query package, or a language server via the eglot package; they
must be installed separately. Ada mode uses whichever of these is
found on PATH, defaulting to gpr-query.

Ada mode uses a parser to provide fontification, single-file
navigation, and indentation. Ada mode allows using eglot as the
backend for these, but the current version of AdaCore
ada_language_server only supports single and multi-file navigation.
The wisi parser backend supports all Ada mode functions, is
implemented in Ada, is fast enough even for very large files (via
partial or incremental parsing), and recovers from almost all syntax

The wisi parser is provided as Ada source code that must be compiled and
installed, either directly or via Alire (

cd ~/.emacs.d/elpa/ada-mode-i.j.k
./ can take an option "--prefix=<dir>" to set the installation

Both shell scripts use Alire if the 'alr' executable is found in PATH.

Ada mode will be automatically loaded when you open a file
with a matching extension (default *.ads, *.adb).

Ada mode uses project files to define large (multi-directory)
projects, and to define casing exceptions.

See for help on using and customizing Ada mode.

Old versions

ada-mode-8.0.5.tar.lz2023-Feb-08 278 KiB
ada-mode-8.0.4.tar.lz2023-Jan-24 277 KiB
ada-mode-8.0.3.tar.lz2023-Jan-12 275 KiB
ada-mode-7.3.1.tar.lz2022-Nov-02 320 KiB
ada-mode-7.3.0.tar.lz2022-Oct-25 321 KiB
ada-mode-7.2.1.tar.lz2022-Jul-104.66 MiB
ada-mode-7.2.0.tar.lz2021-Nov-244.66 MiB
ada-mode-7.1.9.tar.lz2021-Nov-214.66 MiB
ada-mode-7.1.8.tar.lz2021-Aug-094.66 MiB
ada-mode-7.1.7.tar.lz2021-Aug-064.66 MiB
ada-mode-7.1.6.tar.lz2021-Jul-314.66 MiB
ada-mode-7.1.0.tar.lz2020-May-144.66 MiB
ada-mode-7.0.1.tar.lz2020-Jan-313.25 MiB
ada-mode-6.2.1.tar.lz2019-Aug-182.96 MiB
ada-mode-6.1.1.tar.lz2019-Jul-122.81 MiB
ada-mode-6.0.1.tar.lz2018-Dec-082.88 MiB
ada-mode-5.3.2.tar.lz2018-Nov-14 202 KiB
ada-mode-5.2.2.tar.lz2017-Jul-09 200 KiB
ada-mode-5.1.9.tar.lz2016-Jan-22 136 KiB
ada-mode-5.0.1.tar.lz2014-Feb-03 116 KiB


GNU Emacs Ada mode NEWS -- history of user-visible changes.

Copyright (C) 2014 - 2020 Free Software Foundation, Inc.

Please send ada-mode bug reports to, with
'ada-mode' in the subject. If possible, use M-x report-emacs-bug.

* Ada Mode 8.1.0
22 Sep 2023

** ada_annex_p.wy (the source grammar file) is now compatible with
   tree-sitter; a tree-sitter source grammar file ada_annex_p.js is

** parser Ada language protocol version 5

* Ada Mode 8.0.5
3 Feb 2020

** Alire and ELPA packaging fixes.

* Ada Mode 8.0.4
16 Jan 2023

** Misc bug fixes.
* Ada Mode 8.0.3
6 Jan 2023

** Support building ada-mode parser with Alire.

** Support using Emacs ada-mode with Emacs eglot; uses an LSP parser
   instead of the wisi parser. Many features of ada-mode are not
   supported by eglot; See the info manual.

** gpr-query, gnat-compiler, gpr-mode each split out to a separate
   Emacs package and Alire crate.

** ada-xref-tool renamed to ada-xref-backend; now supports choice eglot.

** New user configuration variables; ada-diagnostics-backend,
   ada-face-backend, ada-indent-backend, ada-statement-backend.

** Declared user configuration variable ada-language-version obsolete;
   it is no longer used (Ada 2022 is assumed).

** The default header comment is no longer inserted in new files by
   default; you must enable auto-insert-mode to enable that. This
   makes it easier to turn off.

** ada-mode no longer sets comment-padding; to restore previous
  behavior, add this to your ada-mode init:
  (setq-local comment-padding " ")

** ada-mode no longer sets require-final-newline; to restore previous
  behavior, add this to your ada-mode init:
  (setq-local require-final-newline t)

** ada-build-prompt-select-prj-file now takes a filename argument; it
   can be used to specify a project file on the Emacs command line:
   emacs --eval "(ada-build-prompt-select-prj-file \"hello.gpr\")" hello.adb

** In wisi project files, import_env_var=<name> can be used to inherit
   an environment variable from the Emacs process.

** Minor bug fixes.

* Ada Mode 7.3.0
22 Oct 2022 beta promoted to release

* Ada Mode 7.3.beta
9 Jul 2022 beta testing

** Support incremental parse. Set wisi-incremental-parse-enable t to
   experiment with this; default is nil, because the parser often gets

   When the parser gets confused (which is fairly often), use M-x
   wisi-reset-parser to recover.

   When using incremental parse, it is best to keep the number of
   errors in the file small; the parse time is proportial to the
   number of errors, and error recover is often noticeably slow .

** The Ada grammar is updated to the proposed Ada 2022 standard, and
   is now in the file ada_annex_p.wy.

** ada-end-name-optional now defaults to 't', to match the
   expectations of new Ada users. Experienced users that follow a
   style guide requiring matching end names should set this to 'nil',
   since that gives better error correction.

** New indent option add ada-indent-subprogram-is; indentation of 'is'
   in expression functions and similar subprogram declarations.
   Previously, this was ada-indent-broken; now you can set it
   separately (ie to 0).

** Indentation of 'is' and 'with' in null and abstract subprogram
   specification is now consistent with non-abstract subprogram
   specification and expression function.

** Indentation of comment in subprogram body after param_list before
   'is' matches subprogram spec;

   procedure Foo
     (A : in Integer)
   --  Computes stuff
   is ...

** ada-make-subprogram-body now inserts "null;"; this eliminates a
   syntax error, improving incremental parse. Similarly, the skeleton
   commands insert dummy names where needed to avoid syntax errors.

** New key binding prefix C-c r for the various ada-refactor commands.

** New command ada-parse-require-process starts the external parser,
   without waiting for it to respond.

** now runs wisitoken-bnf-generate to create the Ada LR1