GNU ELPA - ada-mode


major-mode for editing Ada sources
ada-mode-5.2.1.tar, 2016-Oct-31, 1.17MB
Stephen Leake <>
Home page
Browse ELPA's repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET ada-mode RET

Full description

Emacs Ada mode version 5.2.1

Ada mode requires Emacs 24.2 or greater

See ada-mode.texi (or a compiled version) for help on using and
customizing Ada mode, upgrading from previous versions, and notes for
Ada mode developers.

Ada mode is provided as a Gnu ELPA package; to install the package,
add to ~./emacs:


then invoke M-x list-packages, install Ada mode.

Note that you must have the Emacs lisp sources installed; that's a
separate package in some distributions.

To install Ada mode, gpr mode, and associated utilities from this distribution:

Unzip to a convenient place (we will use ~/ada-mode in the following).

In a shell:
$ cd ~/ada-mode/build/wisi
$ make byte-compile

Edit your ~/.emacs, add:

(add-to-list 'load-path (expand-file-name "~/ada-mode"))

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

By default ada-mode uses gnat find for cross-reference functions.
There is support for an alternative: gpr_query. See ada-mode.texi
section Installation for more.

(end of file)

Old versions

ada-mode-5.0.tar2013-Dec-25 980kB
ada-mode-5.0.1.tar2014-Feb-03 990kB


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

Copyright (C) 2014 Free Software Foundation, Inc.
See the end of the file for license conditions.

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

* Ada mode 5.2.1
31 Oct 2016

** A line starting with '(' is now always indented with
   ada-indent-broken. Previously, in some cases it was indented by
   ada-indent - 1. Since the defaults set ada-indent = 3,
   ada-indent-broken = 2, this is transparent unless you use other

** GPR_PROJECT_PATH is set in the compilation process environment when
   the Ada project is selected, and cleared when the project is
   deselected. This allows selecting other Emacs projects, then
   returning to an Ada project.

** New function ada-show-local-references (bound to C-c C-l) searches
   for references within the current file only.

** New option ada-xref-full-path (default nil) if t, shows full paths
   in cross references.

** The indentation functions are significantly rewritten to make them
   better organized and easier to understand and maintain. This
   resulted in some minor indentation changes, mostly for consistency;
   in particular, case expressions are indented by ada-indent-broken,
   to match if espressions.

* Ada mode 5.2.0
26 Jul 2016

** GNAT 2016 drops support for 'gnat find'; users must use gpr_query.

** ada-xref-tool now defaults to gpr_query if gpr_query executable is
   found in PATH.

** source code for compiling gpr_query is installed with the Gnu ELPA
   package; instructions for compiling and installing it are in

** better handling of cross-compile targets.

** Allow trailing label in a sequence_of_statements:
      goto Next;
   end loop;

** Handle package aspects.

** tested with GNAT GPL 2016.

** several bug fixes

* Ada mode 5.1.9
20 Jan 2016

** New option ada-indent-comment-gnat matches the GNAT style check for
   comments in all cases (previously, there were some cases where the
   comment indent algorithm did not match the GNAT check).

** New menu command "Show source file search path"; displays
   compilation-search-path in a buffer.

** Adding missing grammar statements to allow removing parens around
   conditional and quantified expressions.

** Key binding for ada-case-create-partial-exception in ada-mode
   changed to C-c C-M-y; this is easier to type, and matches the key
   binding in gpr-mode.

** ada-case-keyword changed to accept the symbols 'lower-case,
   'upper-case instead of the functions downcase-word, upcase-word.

** ada-case-identifier changed to accept the symbols 'mixed-case,
   'lower-case, 'upper-case instead of the functions 'ada-mixed-case,
   'ada-lower-case, 'ada-upper-case.

** ada-fix-add-context-clause now sorts "limited with" and "private
   with" clauses after other clauses.

** ada-align now aligns '=>' in case expressions.

** ada-align-paramlist now handles access function parameters:

   procedure Choose
     (X, Y, Z    :        Integer;
      Preference : access function (A, B : Integer) return Boolean);

** ada-next-statement-keyword now moves to matching close paren if on
   open paren, ada-prev-statement-keyword moves from close paren to
   open paren.

** New hook ada-prj-parse-hook, run from ada-parse-prj-file.

** GPR mode now does case adjust similar to Ada mode.

** gpr parser handles nested case statements without blowing up.

** gpr parser handles package renames

** fix other bugs

* Ada mode 5.1.8
10 Apr 2015

** requires OpenToken 6.0

** ada-align handle identifiers that start with Ada keywords

** functions for ada-case-identifier now take three args: start, end,

** parsing is not required by find-other-file if the current buffer is
   larger than wisi-size-threshold

** fix misc bugs

* Ada mode 5.1.7
18 Nov 2014

** add ada-find-file that prompts for a file from the current project,
   with completion.

** fix bug that prevented
    Y : Boolean := Boolean'(if True then False);

** add ada-create-select-default-prj, to simplify working with small

** Handle deleting whitespace between words, inserting whitespace in
   the middle of a word properly.

** Change ada-case-adjust to capitalize words in comments and strings
   by default; C-u adjusts case as if code.

** allow 'raise' in expressions for GNAT GPL 2014 aspects

** move all except keyword face highighting to grammar; much more
   accurate, easier to maintain, simpler, faster.

** delete gnatinspect support; gpr_query is better

** misc bug fixes

* Ada mode 5.1.6
28 Sep 2014

** improve syntax highlighting of names after 'of', 'new', 'renames'

** fix ada-format-paramlist to handle 'aliased' keyword (new in Ada
   2012), and 'not null' without 'access'.

** fix ada-find-other-file in separate bodies; now navigates to the

** restore ada-indent-newline-indent for [return]

* Ada mode 5.1.5
12 Jul 2014

** add C-c <, C-c >; goto-declaration-start, -end

** improve parsing speed significantly

* Ada mode 5.1.4
26 May 2014

** support expression functions

** beginning-of-defun-function, end-of-defun-function are now set. A
   "defun" is a generic, package, protected, subprogram, or task spec
   or body.

** C-c C-s is now bound to ada-goto-previous-pos, which goes to the
   first position in ada-goto-pos-ring. Most navigation functions set
   ada-goto-pos-ring. This allows easy navigation back to the start of
   a cross-reference chain.

** xref tool error handlers no longer show the xref tool buffer; the
   new Ada menu item 'show xref tool buffer' can be used instead.

** The parser supports more deeply nested case statements.

* Ada mode 5.1.3
19 Apr 2014

** more GNAT error message auto-fixes

** support aspects on subprogram declarations; format same as SPARK examples.

** fix bug in ada-syntax-propertize that caused query-replace to screw up

** inhibit reparse due to case adjust; case adjust entire buffer is
   now _much_ faster.

** Non-ASCII characters supported in Ada mode buffers, including GNAT
   bracket notation.

* Ada mode 5.1.2
16 Mar 2014

** fix another packaging bug; forgot to add files to ELPA git!

* Ada mode 5.1.1
14 Mar 2014

** require wisi-1.0.2, to fix packaging bug

** gnat-find now called with -a to include read-only .ali files in the results.

* Ada mode 5.1.0
13 Mar 2014

** Emacs 24.2 supported, via cl-lib in Gnu ELPA

** Better handling of aspects.

** 'record' is aligned with 'type' in derived types

** Several minor indentation bugs have been fixed.

** Added "2.2 Upgrading from previous versions" to the user guide.

** ada-align now properly handles subprograms with the opening paren
   on the same line as the preceding code and code on the same line as
   the closing paren:

    function Foo (Param_1 : Integer;
                  Param_2 : Integer) return Integer;

** When no project file is selected, the default variables are
   consistently used instead. Previously, the default variables were
   only used when parsing a project file.

** info files are properly visible in main info menu

** 'C-c ;' used to run `comment-dim', which is bound to 'M-;' in the
   global keymap. 'C-c ;' now gives an error with a message saying
   'use M-; instead'.

* Ada mode 5.0.1
Feb 2 2014

First public release, via ELPA

* Ada mode 5.0.0
Dec 24 2013

** first release in ELPA

** Previous version was 4.00, in Emacs core. 5.0.1 is a complete
   rewrite, using a generalized LALR parser that caches syntactic
   information in text properties.