GNU-devel ELPA - ada-mode


major-mode for editing Ada sources
ada-mode-7.3beta1.0.20220711.185004.tar, 2022-Jul-12, 4.58 MiB
Stephen Leake <>
Browse ELPA's repository
CGit or Gitweb
ada-mode gpr-mode

To install this package, run in Emacs:

M-x package-install RET ada-mode RET

Full description

Emacs Ada mode version 7.1.3

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

Cross-reference information output by the compiler is used to provide
powerful code navigation (jump to definition, find all uses, show
overriding, etc). By default, only the AdaCore GNAT compiler is
supported; other compilers can be supported. Ada mode uses gpr_query
to query compiler-generated cross reference information. 

Ada mode uses a parser to provide fontification, navigation, and
indentation. The parser is implemented in Ada, is fast enough even for very 
large files (via partial parsing), and recovers from almost all syntax

gpr_query and the parser are provided as Ada source code that must be
compiled and installed:

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

See section Installation for more information on
installing; you may need additional packages.

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-7.3beta0.20220710.165208.tar.lz2022-Jul-11 321 KiB
ada-mode- 321 KiB
ada-mode- MiB
ada-mode- MiB
ada-mode- MiB
ada-mode- MiB
ada-mode- MiB
ada-mode- MiB
ada-mode- MiB
ada-mode- MiB


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 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
   parse table file; it is too big to keep in ELPA. This can take a
   couple of minutes.

** New custom variable gpr-query-no-symbols allows disabling reading
   the symbol completion table from the gpr_query process. When nil,
   symbols are read in the background, but there can enough
   interference with foreground processing to be annoying. When
   non-nil, symbols are not read, and completing symbols in xref is
   disabled. Default is nil.

** New custom variable gpr-query-exec-opts allows specifying options
   for gpr_query.

** Declare indent option ada-indent-hanging-rel-exp obsolete; it was
   never well defined, and now has no effect.

** parser Ada language protocol version 4; delete
   ada-indent-hanging-rel-exp, add ada-indent-subprogram-is

* Ada Mode 7.2.1

** More fixes for xref-file-location syntax, required by Emacs 28.

** Adapt to change in uniquify-files.
   uniquify-files no longer sets project-read-file-name-function by
   default.  ada-find-file (C-c C-t) will still use this package's
   completion style, but project-find-file (C-x p f) will not by

   Set project-read-file-name-function to uniq-file-read if you would
   like to keep using uniquify-files's completion style outside of

* Ada Mode 7.2.0
21 Nov 2021

** Correct last fix (sigh).

* Ada Mode 7.1.9
21 Nov 2021

** Adapt to change in xref.el xref-file-location.

* Ada Mode 7.1.8
09 Aug 2021

** Packaging bug fix.

* Ada Mode 7.1.7 
06 Aug 2021

** Packaging bug fix.

* Ada Mode 7.1.6 
30 Jul 2021

** Uses wisi 3.1.3 for compatibility with gnat FSF 11, Pro 22,
   Community 2021.

* Ada Mode 7.1.5 packaging bug

* Ada Mode 7.1.4
07 Aug 2020

** Set auto-mode-alist for ada-mode.

* Ada Mode 7.1.3
04 Jun 2020

** Indentation of 'is' in expression functions is restored to 7.0.1

** wisi-get-identifier (used by wisi-goto-spec/body and others) sets