GNU ELPA - ada-mode


major-mode for editing Ada sources
ada-mode-7.2.1.tar, 2022-Jul-10, 7.76 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.2.1

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.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.5.tar.lz2021-Jul-274.66 MiB
ada-mode-7.1.4.tar.lz2020-Aug-074.66 MiB
ada-mode-7.1.3.tar.lz2020-Jun-054.66 MiB
ada-mode-7.1.2.tar.lz2020-May-214.66 MiB
ada-mode-7.1.1.tar.lz2020-May-144.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-6.0.0.tar.lz2018-Dec-031.30 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 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
   completion delimiters appropriately. When using gpr-query, for a
   procedure declared as:

   package Package_Name is
      procedure Procedure_Name (args);

   the completion string looks like:


   so for example you can type "iterate<wisitok" to complete on
   WisiToken iterators, or "add(Data" to complete on all subprograms
   whose name starts with "add" and whose first argument starts with

** New constant ada-declaration-nonterms holds the Ada nonterminal
   identifiers, for use with wisi-cache-nonterm.

** ada-which-function is now a command (can be invoked by M-x); useful
   when you don't want which-function-mode turned on, but want to know
   what function point is in.

* Ada Mode 7.1.2
20 May 2020

** Revert change in indent of 'is' in expression_function_declaration
   to 7.0.1 behavior.

* Ada Mode 7.1.1
14 May 2020

** packaging bug fix

* Ada Mode 7.1
11 May 2020

** gpr_query Version 3

** ada-mode fully supports non-ASCII text (the few remaining
   ASCII-only regular expressions have been fixed).

** gpr_query now starts in the background, and provides a completion
   table of all symbols in the project.

** keystroke C-M-i is bound to `completion-at-point', and uses the
   symbol table provided by gpr-query.

** Commands that prompt for a symbol (ie C-u C-c C-d
   wisi-goto-spec/body and C-u M-. xref-find-definitions) use the
   completion table provided by gpr_query. With a single C-u, all
   symbols in the project are used; with two C-u, only
   symbols defined in the current file are used.

** ada-in-paramlist-p (used by ada-align and other things) no longer
   parses the full buffer; it only parses if in parens, and only a
   small region containing the parens.

** Virtual tokens are used in indent, improving indent computation.

** Error recovery is improved.

** Fixes debbugs 40403, 40964, 37620

* Ada Mode 7.0.1
30 Jan 2020

** fix packaging bugs

** is now split into and; the latter
   takes --prefix and may need to be run as root.

** improve xref integration

* Ada Mode 7.0.0
19 Dec 2019

** parser Ada language protocol version 3

** Added support for the Ada 2020 features
   iterated_component_association (ai12-0061), target_name
   (ai12-0125), delta_aggregate (ai12-0127); these are supported in
   GNAT Community 2019.

** Major restructuring of code, moving many functions from ada-mode to
   wisi for use in other language modes, and using cl-defgeneric
   dispatching instead of function variables. Normal users should see
   no changes, except that some ada-mode functions will warn about