]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/ada-mode/ada-mode.info
release ada-mode 5.1.7, wisi 1.1.0; minor format changes in ada-ref-man (take 2)
[gnu-emacs-elpa] / packages / ada-mode / ada-mode.info
index da08d6cc179c87c636c5ab64d82ea7ae3429596c..e2c10f95bf1ad7b2177c8044c67d4b9f06071b4a 100644 (file)
@@ -1,8 +1,7 @@
-This is ../ada-mode.info, produced by makeinfo version 4.13 from
-../ada-mode.texi.
+This is ada-mode.info, produced by makeinfo version 5.2 from
+ada-mode.texi.
 
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012, 2013  Free Software Foundation, Inc.
+Copyright (C) 1999 - 2014 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -15,7 +14,6 @@ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
      modify this GNU manual.  Buying copies from the FSF supports it in
      developing GNU and promoting software freedom."
-
 INFO-DIR-SECTION Emacs editing modes
 START-INFO-DIR-ENTRY
 * Ada mode: (ada-mode).         Emacs mode for editing and navigating Ada code.
@@ -24,8 +22,7 @@ END-INFO-DIR-ENTRY
 \1f
 File: ada-mode.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
 
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012, 2013  Free Software Foundation, Inc.
+Copyright (C) 1999 - 2014 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -49,8 +46,8 @@ File: ada-mode.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
 * Moving Through Ada Code::     Moving easily through Ada sources
 * Identifier completion::       Finishing words automatically
 * Indentation::                 Indenting your code automatically as you type
-* Statement skeletons::
-* Aligning code::
+* Statement skeletons::         Some code is written for you
+* Aligning code::               Making it pretty
 * Automatic casing::            Adjusting the case of words automatically
 * Comment Handling::            Reformatting comments easily
 * Key summary::
@@ -64,34 +61,32 @@ File: ada-mode.info,  Node: Overview,  Next: Installation,  Prev: Top,  Up: Top
 1 Overview
 **********
 
-The Emacs mode for programming in Ada helps the user in reading
-existing code and facilitates writing new code.
+The Emacs mode for programming in Ada helps the user in reading existing
+code and facilitates developing new code.
 
-   When the Gnu Ada compiler GNAT is used, the cross-reference
-information output by the compiler is used to provide powerful code
-navigation (jump to definition, find all uses, etc).
+   Cross-reference information output by the compiler is used to provide
+powerful code navigation (jump to definition, find all uses, etc).
 
-   When you open a file with a file extension of `.ads' or `.adb',
-Emacs will automatically load and activate Ada mode.
+   When you open a file with a file extension of '.ads' or '.adb', Emacs
+will automatically load and activate Ada mode.
 
    Ada mode works without any customization, if you are using the GNAT
-compiler (`https://libre2.adacore.com/') and the GNAT default naming
+compiler (<https://libre2.adacore.com/>) and the GNAT default naming
 convention.
 
    You must customize a few things if you are using a different file
-naming convention or compiler; *Note Other compiler::, *Note
-Non-standard file names::.
+naming convention or compiler; *Note Non-standard file names::, *Note
+Other compiler::.
 
    In addition, you may want to customize the indentation,
 capitalization, and other things; *Note Other customization::.
 
-   Finally, for large Ada projects, you will want to set up an Emacs
-Ada mode project file for each project; *Note Project files::. Note
-that these are different from the GNAT project files used by gnatmake
-and other GNAT commands.
+   Finally, for large Ada projects, you will want to set up an Emacs Ada
+mode project file for each project; *Note Project files::.  Note that
+these are different from the GNAT project files used by the GNAT tools.
 
-   *Note Running Debuggers Under Emacs: (emacs)Running Debuggers Under
-Emacs, for general information on debugging.
+   *Note Debuggers: (emacs)Debuggers, for general information on
+debugging.
 
 \1f
 File: ada-mode.info,  Node: Installation,  Next: Customization,  Prev: Overview,  Up: Top
@@ -99,44 +94,92 @@ File: ada-mode.info,  Node: Installation,  Next: Customization,  Prev: Overview,
 2 Installation
 **************
 
-Ada mode is part of the standard Emacs distribution; if you use that,
-no files need to be installed.
+Ada mode requires Emacs 24.2 or greater; it also requires the Emacs lisp
+sources (not just the compiled binaries).
+
+   Ada mode is distributed in the Gnu ELPA package archive; it can be
+installed via 'M-x list-packages' (*note (emacs)Packages::).  You must
+first enable packages in your '~/.emacs', _after_ customizing
+'Info-default-directory-list' (if you do that):
+
+     (package-initialize)
 
    Ada mode is also available as a separate distribution, from the Emacs
 Ada mode website
-`http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html'. The
-separate distribution may be more recent.
+<http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html>.
 
-   For installing the separate distribution, see the `README' file in
+   For installing the separate distribution, see the 'README' file in
 the distribution.
 
-   To see what version of Ada mode you have installed, do `M-x
+   To see what version of Ada mode you have installed, invoke 'M-x
 ada-mode-version'.
 
+   You may also want to install additional utilities:
+
 * Menu:
 
-* gnatinspect::
+* Ada Reference Manual::
+* gpr_query::
+* Upgrading::
+
+\1f
+File: ada-mode.info,  Node: Ada Reference Manual,  Next: gpr_query,  Prev: Installation,  Up: Installation
+
+2.1 Ada Reference Manual
+========================
+
+The ELPA package ada-ref-man includes the Ada Reference Manual and
+Annotated Ada Reference Manual in info format.
 
 \1f
-File: ada-mode.info,  Node: gnatinspect,  Prev: Installation,  Up: Installation
+File: ada-mode.info,  Node: gpr_query,  Next: Upgrading,  Prev: Ada Reference Manual,  Up: Installation
+
+2.2 gpr_query
+=============
 
-2.1 gnatinspect
-===============
+Ada mode has support for an external cross reference tool 'gpr_query',
+which supports Ada, C, C++, and any other language for which AdaCore gcc
+provices the '-fdump-xref' ('-fdump-xref' is an AdaCore extension).
 
-Ada mode has experimental support for the new AdaCore cross reference
-tool `gnatinspect', which supports Ada, C, C++, and any other language
-for which gcc provices the `-fdump-xref'.
+   'gpr_query' requires the 'gnatcoll' library provided by AdaCore.  Ada
+mode requires the very latest version 'gnatcoll 1.7w' distributed with
+GNAT GPL 2014.
 
-   `gnatinspect' is distributed as part of `gnatcoll'. Ada mode
-requires the very latest version, in `gnatcoll 1.7w' distributed with
-GNATPro 7.2 preview.
+   To build 'gpr_query', assuming GNAT GPL 2014 is installed in
+'/usr/gnat-gpl-2014', and '/usr/gnat-gpl-2014/bin' is in PATH:
 
-   To build `gnatinspect':
-     tar xf ~/Downloads/gnatcoll-1.7w-src.tgz
+     tar xf ~/Downloads/gnatcoll-1.7x-src.tgz
      cd gnatcoll-1.7w-src
-     ./configure --prefix=/usr/gnat-7.1.2
-     make Gnatcoll_Build=Debug
-     sudo make Gnatcoll_Build=Debug install
+     ./configure --prefix=/usr/gnat-gpl-2014
+     make
+     sudo make install
+     cd ~/.emacs.d/elpa/ada-mode-5.xx/build
+     make install-gpr_query
+
+   To build an sqlite3 executable that is compatible with the database
+created by 'gpr_query':
+
+     cd gnatcoll-1.7w-src/src/sqlite/amalgamation/
+     gcc -O2 -o sqlite3 shell.c sqlite3.c -ldl -lpthread
+
+\1f
+File: ada-mode.info,  Node: Upgrading,  Prev: gpr_query,  Up: Installation
+
+2.3 Upgrading from previous versions
+====================================
+
+See the file NEWS for more details; here we summarize only important
+user interface changes.
+
+'from 5.0.1'
+     Nothing to do.
+
+'from 4.01'
+     There are many user interface and API changes between 4.01 and
+     5.0.1; we only document those that may be hard to diagnose here.
+
+     'prog-mode-hook' is no longer run by 'ada-mode'; 'ada-mode' is no
+     longer derived from 'prog-mode'.  Use 'ada-mode-hook' instead.
 
 \1f
 File: ada-mode.info,  Node: Customization,  Next: Compiling Executing,  Prev: Installation,  Up: Top
@@ -145,9 +188,9 @@ File: ada-mode.info,  Node: Customization,  Next: Compiling Executing,  Prev: In
 **********************
 
 Here we assume you are familiar with setting variables in Emacs, either
-thru 'customize' or in elisp (in your `.emacs' file). For a basic
-introduction to customize, elisp, and Emacs in general, see the
-tutorial (`C-h t').
+thru 'customize' or in elisp (in your '.emacs' file).  For a basic
+introduction to customize, elisp, and Emacs in general, see the tutorial
+('C-h t').
 
 * Menu:
 
@@ -163,21 +206,21 @@ File: ada-mode.info,  Node: Non-standard file names,  Next: Other compiler,  Pre
 ===========================
 
 By default, Ada mode is configured to use the GNAT file naming
-convention, where file names are a simple modification of the Ada
-names, and the extension for specs and bodies are `.ads' and `.adb',
+convention, where file names are a simple modification of the Ada names,
+and the extension for specs and bodies are '.ads' and '.adb',
 respectively.
 
    Emacs uses the file extension to enable Ada mode; Ada mode uses the
-file extentions to allow moving from a package body to the
-corresponding spec and back.
+file extentions to allow moving from a package body to the corresponding
+spec and back.
 
    Emacs and Ada mode support ways to use alternative file extensions
-for specs and bodies. Note that you must also tell the compiler about
+for specs and bodies.  Note that you must also tell the compiler about
 these extensions; doing that is beyond the scope of this manual.
 
-   For instance, if your spec and bodies files are called `UNIT_s.ada'
-and `UNIT_b.ada', respectively, you can add the following to your
-`.emacs' file:
+   For instance, if your spec and bodies files are called 'UNIT_s.ada'
+and 'UNIT_b.ada', respectively, you can add the following to your
+'.emacs' file:
 
      ;; Tell Ada mode about spec and body extensions
      (ada-add-extensions "_s.ada" "_b.ada")
@@ -190,18 +233,18 @@ and `UNIT_b.ada', respectively, you can add the following to your
      (ada-add-extensions ".ads" "_b.ada")
      (ada-add-extensions ".ads" ".body")
 
-   This means that whenever Ada mode looks for the body for a file
-whose extension is `.ads', it will take the first available file that
-ends with either `.adb', `_b.ada' or `.body'.
+   This means that whenever Ada mode looks for the body for a file whose
+extension is '.ads', it will take the first available file that ends
+with either '.adb', '_b.ada' or '.body'.
 
    Simililarly, if Ada mode is looking for a spec, it will look for
-`.ads' or `_s.ada'.
+'.ads' or '_s.ada'.
 
    If the filename excluding the extension is not derived from the Ada
 name following the GNAT convention, you need to provide an alternate
-function for `ada-file-name-from-ada-name'. Doing that is beyond the
-scope of this manual; see the current definitions in `ada-mode.el' and
-`ada-gnat.el' for examples.
+function for 'ada-file-name-from-ada-name'.  Doing that is beyond the
+scope of this manual; see the current definitions in 'ada-mode.el' and
+'ada-gnat-xref.el' for examples.
 
 \1f
 File: ada-mode.info,  Node: Other compiler,  Next: Other cross-reference,  Prev: Non-standard file names,  Up: Customization
@@ -209,15 +252,15 @@ File: ada-mode.info,  Node: Other compiler,  Next: Other cross-reference,  Prev:
 3.2 Other compiler
 ==================
 
-The project variable `ada_compiler' (default elisp variable
-`ada-compiler') is used to index several variables that point to the
+The project variable 'ada_compiler' (default elisp variable
+'ada-compiler') is used to index several variables that point to the
 compiler-specific functions for corresponding Ada mode operations.
 
    To use a compiler other than GNAT, you must write Emacs lisp code
-that provides the interface to the compiler, and set `ada-compiler' and
+that provides the interface to the compiler, and set 'ada-compiler' and
 the indirection variables.
 
-   See `ada-gnat-compile.el' for an example.
+   See 'ada-gnat-compile.el' for an example.
 
 \1f
 File: ada-mode.info,  Node: Other cross-reference,  Next: Other customization,  Prev: Other compiler,  Up: Customization
@@ -225,17 +268,25 @@ File: ada-mode.info,  Node: Other cross-reference,  Next: Other customization,
 3.3 Other cross-reference
 =========================
 
-The project variable `ada_xref' (default elisp variable
-`ada-xref-tool') is used to index several variables that point to the
+The project variable 'ada_xref' (default elisp variable 'ada-xref-tool')
+is used to index several variables that point to the
 cross-reference-tool-specific functions for corresponding Ada mode
 operations.
 
-   To use a cross reference tool other than gnatxref, you must write
+   The default cross-reference tool is 'gnatxref', provided by the file
+'ada-gnat-xref.el'.  One other tool is supported: 'gpr_query'.  To use
+it, add the following to '~/.emacs':
+
+     (require 'gpr-query)
+
+   To use 'gpr_query', the Ada code 'gpr_query.adb' must be compiled;
+see *note Installation::.
+
+   To use a cross reference tool other than the above, you must write
 Emacs lisp code that provides the interface to the compiler, and set
-`ada-xref-tool' and the indirection variables. This has already been
-done for `gnatinspect'; set `ada-xref-tool' to `'gnat_inspect'.
+'ada-xref-tool' and the indirection variables.
 
-   See `ada-gnat-xref.el' and `gnat-inspect.el' for examples.
+   See 'ada-gnat-xref.el' and 'gpr-query.el' for examples.
 
 \1f
 File: ada-mode.info,  Node: Other customization,  Prev: Other cross-reference,  Up: Customization
@@ -243,49 +294,54 @@ File: ada-mode.info,  Node: Other customization,  Prev: Other cross-reference,
 3.4 Other customization
 =======================
 
-All user-settable Ada mode variables can be set via the menu `Ada |
-Customize'.  Click on the `Help' button there for help on using
+All user-settable Ada mode variables can be set via the menu 'Ada |
+Customize'.  Click on the 'Help' button there for help on using
 customize.
 
    To modify a specific variable, you can directly call the function
-`customize-variable'; just type `M-x customize-variable <RET>
+'customize-variable'; just type 'M-x customize-variable <RET>
 VARIABLE-NAME <RET>').
 
    Alternately, you can specify variable settings in the Emacs
-configuration file, `~/.emacs'. This file is coded in Emacs lisp, and
+configuration file, '~/.emacs'.  This file is coded in Emacs lisp, and
 the syntax to set a variable is the following:
      (setq variable-name value)
 
    Some general Emacs settings that are useful for Ada files:
-`delete-trailing-whitespace'
+'delete-trailing-whitespace'
      Deletes space, tab at end of line and blank lines at end of buffer.
-
-`untabify'
+'untabify'
      Deletes tab characters that have crept into the file.
-
-`indent-tabs-mode'
+'indent-tabs-mode'
      Don't insert tab characters when indenting.
-
-`copyright-update'
+'copyright-update'
      Updates the copyright date in the file header comment, to the
      current year.
-
-`electric-pair-mode'
+'electric-pair-mode'
      Insert a matching right paren when you type a left paren.
-
-`hippie-expand'
-     Bind hippie-expand to a key; it expands the word before point,
+'hippie-expand'
+     Bind 'hippie-expand' to a key; it expands the word before point,
      using words from current buffer, other buffers, file names, etc;
-     see `hippie-expand-try-functions-list'. You can also add
-     `ada-skel-hippie-try' to that list. Note that `ada-expand', which
-     defaults to `ada-skel-expand', is bound to <C-c C-e> (*note
+     see 'hippie-expand-try-functions-list'.  You can also add
+     'ada-skel-hippie-try' to that list.  Note that 'ada-expand', which
+     defaults to 'ada-skel-expand', is bound to <C-c C-e> (*note
      Statement skeletons::).
+'imenu'
+     Navigate to subprograms and types by name, from a minibuffer menu.
+'speedbar'
+     Navigate to subprograms and types by name, from a list in a
+     dedicated window.
+'which-func'
+
+   The above can all be set by the following code in your '~/.emacs'.
+Note that some are functions are added to 'before-save-hook'; they run
+just before a buffer is written to disk.  Also, the order is important;
+ada-mode does not set up the Ada-specific features of imenu and speedbar
+unless imenu is loaded first.
 
-   The above can all be set by the following code in your `~/.emacs'.
-Note that some are functions are added to `before-save-hook'; they run
-just before a buffer is written to disk.
      (setq-default indent-tabs-mode nil)
      (electric-pair-mode 1)
+     (require 'imenu) ;; also enables speedbar
      (require 'ada-mode)
      (add-to-list 'hippie-expand-try-functions-list 'ada-skel-hippie-try)
      (define-key ada-mode-map "\C-e"     'hippie-expand)
@@ -303,15 +359,15 @@ File: ada-mode.info,  Node: Compiling Executing,  Next: Project files,  Prev: Cu
 4 Compiling Executing
 *********************
 
-Ada projects can be compiled, linked, and executed using commands on
-the Ada menu. All of these commands can be customized via a project
-file (*note Project files::), but the defaults are sufficient for using
-the GNAT compiler for simple projects (single files, or several files
-in a single directory).
+Ada projects can be compiled, linked, and executed using commands on the
+Ada menu.  All of these commands can be customized via a project file
+(*note Project files::), but the defaults are sufficient for using the
+GNAT compiler for simple projects (single files, or several files in a
+single directory).
 
-   For complex projects, you will want to use `make' or some other
-build tool; in that case, you will need an Emacs Ada mode project file
-to tell Emacs about the project directory tree and other settings.
+   For complex projects, you will want to use 'make' or some other build
+tool; in that case, you will need an Emacs Ada mode project file to tell
+Emacs about the project directory tree and other settings.
 
 * Menu:
 
@@ -329,73 +385,72 @@ Here are the commands for building an Ada project and running the main
 program.
 
    In multi-file projects, there must be one file that is the main
-program. That is given by the `main' project file variable; it defaults
-to the current file if not yet set, but is also set by the "set main
-and build" command.
+program.  That is given by the 'main' project file variable; it defaults
+to the current file if not yet set, but is also set by the "set main and
+build" command.
 
-`Check file'
+'Check file'
      Compiles the current file in syntax check mode, by running
-     `check_cmd' defined in the current project file. This typically
+     'check_cmd' defined in the current project file.  This typically
      runs faster than full compile mode, speeding up finding and fixing
      compilation errors.
 
-     This sets `main' only if it has not been set yet.
+     This sets 'main' only if it has not been set yet.
 
-`Compile file'
-     Compiles the current file, by running `comp_cmd' from the current
+'Compile file'
+     Compiles the current file, by running 'comp_cmd' from the current
      project file.
 
-     This does not set `main'.
+     This does not set 'main'.
 
-`Set main and Build'
-     Sets `main' to the current file, then executes the Build command.
+'Set main and Build'
+     Sets 'main' to the current file, then executes the Build command.
 
-`Show main'
-     Display `main' in the message buffer.
+'Show main'
+     Display 'main' in the message buffer.
 
-`Build'
-     Compiles all obsolete units of the current `main', and links
-     `main', by running `make_cmd' from the current project.
+'Build'
+     Compiles all obsolete units of the current 'main', and links
+     'main', by running 'make_cmd' from the current project.
 
-     This sets `main' only if it has not been set yet.
+     This sets 'main' only if it has not been set yet.
 
-`Run'
+'Run'
      Executes the main program in a shell, displayed in a separate Emacs
-     buffer. This runs `run_cmd' from the current project. The
+     buffer.  This runs 'run_cmd' from the current project.  The
      execution buffer allows for interactive input/output.
 
      To modify the run command, in particular to provide or change the
-     command line arguments, type `C-u' before invoking the command.
+     command line arguments, type 'C-u' before invoking the command.
 
      This command is not available for a cross-compilation toolchain.
 
-   It is important when using these commands to understand how `main'
-is used and changed.
+   It is important when using these commands to understand how 'main' is
+used and changed.
 
-   Build runs 'gnatmake' on the main unit. During a typical edit/compile
-session, this is the only command you need to invoke, which is why it
-is bound to `C-c C-c'. It will compile all files needed by the main
-unit, and display compilation errors in any of them.
+   Build runs 'gnatmake' on the main unit.  During a typical
+edit/compile session, this is the only command you need to invoke, which
+is why it is bound to 'C-c C-c'.  It will compile all files needed by
+the main unit, and display compilation errors in any of them.
 
    Note that Build can be invoked from any Ada buffer; typically you
 will be fixing errors in files other than the main, but you don't have
 to switch back to the main to invoke the compiler again.
 
-   Novices and students typically work on single-file Ada projects. In
-this case, `C-c C-m' will normally be the only command needed; it will
+   Novices and students typically work on single-file Ada projects.  In
+this case, 'C-c C-m' will normally be the only command needed; it will
 build the current file, rather than the last-built main.
 
-   There are three ways to change `main':
-
-  1. Invoke `Ada | Set main and Build', which sets `main' to the
-     current file.
+   There are three ways to change 'main':
 
-  2. Invoke `Ada | Project | Edit', edit `main' and `main', and click
-     `[save]'
+  1. Invoke 'Ada | Set main and Build', which sets 'main' to the current
+     file.
 
-  3. Invoke `Ada | Project | Load', and load a project file that
-     specifies `main'
+  2. Invoke 'Ada | Project | Edit', edit 'main' and 'main', and click
+     '[save]'
 
+  3. Invoke 'Ada | Project | Load', and load a project file that
+     specifies 'main'
 
 \1f
 File: ada-mode.info,  Node: Compiling Examples,  Next: Compiler errors,  Prev: Compile commands,  Up: Compiling Executing
@@ -431,9 +486,9 @@ File: ada-mode.info,  Node: No project files,  Next: Set compiler options,  Prev
 
 This example uses no project files.
 
-   First, create a directory `Example_1', containing:
+   First, create a directory 'Example_1', containing:
 
-   `hello.adb':
+   'hello.adb':
 
      with Ada.Text_IO;
      procedure Hello
@@ -444,7 +499,7 @@ This example uses no project files.
    Yes, this is missing "use Ada.Text_IO;" - we want to demonstrate
 compiler error handling.
 
-   `hello_2.adb':
+   'hello_2.adb' has no errors:
 
      with Hello_Pkg;
      procedure Hello_2
@@ -452,17 +507,13 @@ compiler error handling.
         Hello_Pkg.Say_Hello;
      end Hello_2;
 
-   This file has no errors.
-
-   `hello_pkg.ads':
+   'hello_pkg.ads' has no errors:
 
      package Hello_Pkg is
         procedure Say_Hello;
      end Hello_Pkg;
 
-   This file has no errors.
-
-   `hello_pkg.adb':
+   'hello_pkg.adb':
 
      with Ada.Text_IO;
      package Hello_Pkg is
@@ -472,13 +523,13 @@ compiler error handling.
         end Say_Hello;
      end Hello_Pkg;
 
-   Yes, this is missing the keyword `body'; another compiler error
-example. However, note that the indentation engine parser accepts this
+   Yes, this is missing the keyword 'body'; another compiler error
+example.  However, note that the indentation engine parser accepts this
 code with no errors, making it easier to indent slightly illegal Ada
 code.
 
-   In buffer `hello.adb', invoke the menu entry `Ada | Build | Check
-syntax'. You should get a `*compilation*' buffer containing something
+   In buffer 'hello.adb', invoke the menu entry 'Ada | Build | Check
+syntax'.  You should get a '*compilation*' buffer containing something
 like (the directory paths will be different):
 
      -*- mode: compilation; default-directory: "c:/Projects/org.emacs.ada-mode.stephe-1/test/Example_1/" -*-
@@ -493,25 +544,25 @@ like (the directory paths will be different):
 
      Compilation exited abnormally with code 4 at Fri Oct 18 04:23:54
 
-   The lines with actual errors (starting with `hello.adb') are
+   The lines with actual errors (starting with 'hello.adb') are
 highlighted, with the file name in red.
 
-   Now invoke `Ada | Build | Next compilation error'.  Or you can click
+   Now invoke 'Ada | Build | Next compilation error'.  Or you can click
 the middle mouse button on the first error line, or use the key binding
 shown on the menu.  The compilation buffer scrolls to put the first
-error on the top line, and point is put at the place of the error in
-the `hello.adb' buffer.
+error on the top line, and point is put at the place of the error in the
+'hello.adb' buffer.
 
-   To fix the error, invoke `Ada | Build | Fix compilation error'; this
-adds "Ada.Text_Io." to the line:
+   To fix the error, invoke 'Ada | Build | Fix compilation error'; this
+adds "Ada.Text_Io."  to the line:
 
          Ada.Text_Io.Put_Line ("hello from hello.adb");
 
-   Now invoke `Ada | Build | Show main'; this displays `Ada mode main:
+   Now invoke 'Ada | Build | Show main'; this displays 'Ada mode main:
 hello'.
 
-   Now (in buffer `hello.adb'), invoke `Ada | Build | Build'. You are
-prompted to save the file (if you haven't already). Then the
+   Now (in buffer 'hello.adb'), invoke 'Ada | Build | Build'.  You are
+prompted to save the file (if you haven't already).  Then the
 compilation buffer is displayed again, containing:
 
      -*- mode: compilation; default-directory: "c:/Projects/org.emacs.ada-mode.stephe-1/test/Example_1/" -*-
@@ -524,10 +575,10 @@ compilation buffer is displayed again, containing:
 
      Compilation finished at Fri Oct 18 20:39:34
 
-   The compilation has succeeded without errors; `hello.exe' now exists
-in the same directory as `hello.adb'.
+   The compilation has succeeded without errors; 'hello.exe' now exists
+in the same directory as 'hello.adb'.
 
-   Now invoke `Ada | Build | Run'. The `*compilation*' buffer is
+   Now invoke 'Ada | Build | Run'.  The '*compilation*' buffer is
 displayed, containing
 
      -*- mode: compilation; default-directory: "c:/Projects/org.emacs.ada-mode.stephe-1/test/Example_1/" -*-
@@ -540,46 +591,45 @@ displayed, containing
 
    That completes the first part of this example.
 
-   Now we will compile a multi-file project. Open the file
-`hello_2.adb', invoke `Ada | Build | Set main and Build'. This finds an
-error in `hello_pkg.adb':
+   Now we will compile a multi-file project.  Open the file
+'hello_2.adb', invoke 'Ada | Build | Set main and Build'.  This finds an
+error in 'hello_pkg.adb':
 
      hello_pkg.adb:2:08: keyword "body" expected here [see file name]
 
    This demonstrates that gnatmake finds the files needed by the main
-program. However, it cannot find files in a different directory, unless
-you use an Emacs Ada mode project file or a GNAT project file to
-specify the other directories; *Note Set source search path::, *note
-Use GNAT project file::.
+program.  However, it cannot find files in a different directory, unless
+you use an Emacs Ada mode project file or a GNAT project file to specify
+the other directories; *Note Set source search path::, *note Use GNAT
+project file::.
 
-   Invoke `Ada | Build | Show main'; this displays `Ada mode main:
+   Invoke 'Ada | Build | Show main'; this displays 'Ada mode main:
 hello_2'.
 
-   Move to the error with `C-x `', and fix the error by adding `body':
+   Move to the error with 'C-x `', and fix the error by adding 'body':
 
      package body Hello_Pkg is
 
-   Now, while still in `hello_pkg.adb', invoke `Ada | Build | Build'.
-gnatmake successfully builds `hello_2'. This demonstrates that Emacs
-has remembered the main file, in the project variable `main', and used
+   Now, while still in 'hello_pkg.adb', invoke 'Ada | Build | Build'.
+gnatmake successfully builds 'hello_2'.  This demonstrates that Emacs
+has remembered the main file, in the project variable 'main', and used
 it for the Build command.
 
-   Finally, again while in `hello_pkg.adb', invoke `Ada | Build | Run'.
-The `*compilation*' buffer displays `Hello from hello_pkg.adb'.
+   Finally, again while in 'hello_pkg.adb', invoke 'Ada | Build | Run'.
+The '*compilation*' buffer displays 'Hello from hello_pkg.adb'.
 
-   One final point. If you switch back to buffer `hello.adb', and
-invoke `Ada | Build | Run', `hello_2.exe' will be run. That is because
-`main' is still set to `hello_2', as you can see when you invoke `Ada |
+   One final point.  If you switch back to buffer 'hello.adb', and
+invoke 'Ada | Build | Run', 'hello_2.exe' will be run.  That is because
+'main' is still set to 'hello_2', as you can see when you invoke 'Ada |
 Build | Show main'.
 
-   There are two ways to change `main':
-
-  1. Invoke `Ada | Build | Set main and Build', which sets `main' to
-     the current file.
+   There are two ways to change 'main':
 
-  2. Invoke `Ada | Build | Set Project ...', and select a project file
-     that specifies `main'.
+  1. Invoke 'Ada | Build | Set main and Build', which sets 'main' to the
+     current file.
 
+  2. Invoke 'Ada | Build | Set Project ...', and select a project file
+     that specifies 'main'.
 
 \1f
 File: ada-mode.info,  Node: Set compiler options,  Next: Set source search path,  Prev: No project files,  Up: Compiling Examples
@@ -590,13 +640,13 @@ File: ada-mode.info,  Node: Set compiler options,  Next: Set source search path,
 This example illustrates using an Emacs Ada mode project file to set a
 compiler option.
 
-   If you have files from `Example_1' open in Emacs, you should close
-them so you don't get confused. Use menu `File | Close (current
+   If you have files from 'Example_1' open in Emacs, you should close
+them so you don't get confused.  Use menu 'File | Close (current
 buffer)'.
 
-   In directory `Example_2', create these files:
+   In directory 'Example_2', create these files:
 
-   `hello.adb':
+   'hello.adb':
 
      with Ada.Text_IO;
      procedure Hello
@@ -604,20 +654,20 @@ buffer)'.
         Put_Line("Hello from hello.adb");
      end Hello;
 
-   This is the same as `hello.adb' from `Example_1'. It has two errors;
-missing "use Ada.Text_IO;", and no space between `Put_Line' and its
+   This is the same as 'hello.adb' from 'Example_1'.  It has two errors;
+missing "use Ada.Text_IO;", and no space between 'Put_Line' and its
 argument list.
 
-   `hello.adp':
+   'hello.adp':
 
      comp_opt=-gnatyt
 
    This tells the GNAT compiler to check for token spacing; in
 particular, there must be a space preceding a parenthesis.
 
-   In buffer `hello.adb', invoke `Ada | Build | Set main and Build'.
-This finds the project file `hello.adp', uses it to set the compiler
-options, and builds the project. You should get a `*compilation*'
+   In buffer 'hello.adb', invoke 'Ada | Build | Set main and Build'.
+This finds the project file 'hello.adp', uses it to set the compiler
+options, and builds the project.  You should get a '*compilation*'
 buffer containing something like (the directory paths will be
 different):
 
@@ -631,12 +681,12 @@ different):
      gnatmake: "hello.adb" compilation error
 
    Compare this to the compiler output in *note No project files::; the
-gnatmake option `-cargs' has been replaced by `-cargs -gnaty', and an
-additional error is reported in `hello.adb' on line 4. This shows that
-`hello.adp' is being used to set the compiler options.
+gnatmake option '-cargs' has been replaced by '-cargs -gnaty', and an
+additional error is reported in 'hello.adb' on line 4.  This shows that
+'hello.adp' is being used to set the compiler options.
 
-   Fixing the error, linking and running the code proceed as in *note
-No project files::.
+   Fixing the error, linking and running the code proceed as in *note No
+project files::.
 
 \1f
 File: ada-mode.info,  Node: Set source search path,  Next: Use GNAT project file,  Prev: Set compiler options,  Up: Compiling Examples
@@ -647,15 +697,15 @@ File: ada-mode.info,  Node: Set source search path,  Next: Use GNAT project file
 In this example, we show how to deal with files in more than one
 directory, using an Emacs Ada mode project file to set the search path.
 
-   Create the directory `Example_3', containing:
+   Create the directory 'Example_3', containing:
 
-   `hello_pkg.ads':
+   'hello_pkg.ads':
 
      package Hello_Pkg is
         procedure Say_Hello;
      end Hello_Pkg;
 
-   `hello_pkg.adb':
+   'hello_pkg.adb':
 
      with Ada.Text_IO;
      package Hello_Pkg is
@@ -665,13 +715,13 @@ directory, using an Emacs Ada mode project file to set the search path.
         end Say_Hello;
      end Hello_Pkg;
 
-   These are the same files from example 1; `hello_pkg.adb' has an
-error on line 2.
+   These are the same files from example 1; 'hello_pkg.adb' has an error
+on line 2.
 
-   In addition, create a directory `Example_3/Other', containing these
+   In addition, create a directory 'Example_3/Other', containing these
 files:
 
-   `Other/hello_3.adb':
+   'Other/hello_3.adb':
 
      with Hello_Pkg;
      with Ada.Text_IO; use Ada.Text_IO;
@@ -683,20 +733,20 @@ files:
 
    There are no errors in this file.
 
-   `Other/other.adp':
+   'Other/other.adp':
 
      src_dir=..
 
    Note that there must be no trailing spaces.
 
-   In buffer `hello_3.adb', invoke `Ada | Project files | Find and set
-project...', and select `Example_3/Other/other.adp'. This tells Emacs
-Ada mode to stop using the project file from `Example_2', and use the
-one for `Example_3'. Also note that since this project file is not
-named `hello_3.adp', it would not be found by default.
+   In buffer 'hello_3.adb', invoke 'Ada | Project files | Find and set
+project...', and select 'Example_3/Other/other.adp'.  This tells Emacs
+Ada mode to stop using the project file from 'Example_2', and use the
+one for 'Example_3'.  Also note that since this project file is not
+named 'hello_3.adp', it would not be found by default.
 
-   Then, again in `hello_3.adb', invoke `Ada | Set main and Build'. You
-should get a `*compilation*' buffer containing something like (the
+   Then, again in 'hello_3.adb', invoke 'Ada | Set main and Build'.  You
+should get a '*compilation*' buffer containing something like (the
 directory paths will be different):
 
      cd c:/Examples/Example_3/Other/
@@ -706,16 +756,16 @@ directory paths will be different):
      hello_pkg.adb:2:08: keyword "body" expected here [see file name]
      gnatmake: "C:\Examples\Example_3\hello_pkg.adb" compilation error
 
-   Compare the `-cargs' option to the compiler output in *note Set
-compiler options::; this shows that `other.adp' is being used to set
-the compiler options.
+   Compare the '-cargs' option to the compiler output in *note Set
+compiler options::; this shows that 'other.adp' is being used to set the
+compiler options.
 
-   Move to the error with `C-x `'. Ada mode searches the list of
-directories given by `src_dir' for the file mentioned in the compiler
+   Move to the error with 'C-x `'.  Ada mode searches the list of
+directories given by 'src_dir' for the file mentioned in the compiler
 error message.
 
-   Fixing the error, linking and running the code proceed as in *note
-No project files::.
+   Fixing the error, linking and running the code proceed as in *note No
+project files::.
 
 \1f
 File: ada-mode.info,  Node: Use GNAT project file,  Next: Use multiple GNAT project files,  Prev: Set source search path,  Up: Compiling Examples
@@ -726,15 +776,15 @@ File: ada-mode.info,  Node: Use GNAT project file,  Next: Use multiple GNAT proj
 In this example, we show how to use a GNAT project file, with no Ada
 mode project file.
 
-   Create the directory `Example_4', containing:
+   Create the directory 'Example_4', containing:
 
-   `hello_pkg.ads':
+   'hello_pkg.ads':
 
      package Hello_Pkg is
         procedure Say_Hello;
      end Hello_Pkg;
 
-   `hello_pkg.adb':
+   'hello_pkg.adb':
 
      with Ada.Text_IO;
      package Hello_Pkg is
@@ -744,13 +794,13 @@ mode project file.
         end Say_Hello;
      end Hello_Pkg;
 
-   These are the same files from example 1; `hello_pkg.adb' has an
-error on line 2.
+   These are the same files from example 1; 'hello_pkg.adb' has an error
+on line 2.
 
-   In addition, create a directory `Example_4/Gnat_Project', containing
+   In addition, create a directory 'Example_4/Gnat_Project', containing
 these files:
 
-   `Gnat_Project/hello_4.adb':
+   'Gnat_Project/hello_4.adb':
 
      with Hello_Pkg;
      with Ada.Text_IO; use Ada.Text_IO;
@@ -762,17 +812,17 @@ these files:
 
    There are no errors in this file.
 
-   `Gnat_Project/hello_4.gpr':
+   'Gnat_Project/hello_4.gpr':
 
      project Hello_4 is
         for Source_Dirs use (".", "..");
      end Hello_4;
 
-   In buffer `hello_4.adb', invoke `Ada | Project | Load...', and
-select `Example_4/Gnat_Project/hello_4.gpr'.
+   In buffer 'hello_4.adb', invoke 'Ada | Project | Load...', and select
+'Example_4/Gnat_Project/hello_4.gpr'.
 
-   Then, again in `hello_4.adb', invoke `Ada | Set main and Build'. You
-should get a `*compilation*' buffer containing something like (the
+   Then, again in 'hello_4.adb', invoke 'Ada | Set main and Build'.  You
+should get a '*compilation*' buffer containing something like (the
 directory paths will be different):
 
      -*- mode: compilation; default-directory: "c:/Projects/org.emacs.ada-mode.stephe-1/test/Example_4/Gnat_Project/" -*-
@@ -785,12 +835,12 @@ directory paths will be different):
 
      Compilation exited abnormally with code 4 at Mon Oct 21 11:28:31
 
-   Compare the `gcc' options to the compiler output in *note Set
-compiler options::; this shows that `hello_4.gpr' is being used to set
+   Compare the 'gcc' options to the compiler output in *note Set
+compiler options::; this shows that 'hello_4.gpr' is being used to set
 the compiler options.
 
-   Fixing the error, linking and running the code proceed as in *note
-No project files::.
+   Fixing the error, linking and running the code proceed as in *note No
+project files::.
 
 \1f
 File: ada-mode.info,  Node: Use multiple GNAT project files,  Next: Use a Makefile,  Prev: Use GNAT project file,  Up: Compiling Examples
@@ -801,12 +851,12 @@ File: ada-mode.info,  Node: Use multiple GNAT project files,  Next: Use a Makefi
 In this example, we show how to use multiple GNAT project files,
 specifying the GNAT project search path in an Ada mode project file.
 
-   Create the directory `Example_4' as specified in *note Use GNAT
+   Create the directory 'Example_4' as specified in *note Use GNAT
 project file::.
 
-   Create the directory `Example_5', containing:
+   Create the directory 'Example_5', containing:
 
-   `hello_5.adb':
+   'hello_5.adb':
 
      with Hello_Pkg;
      with Ada.Text_IO; use Ada.Text_IO;
@@ -818,12 +868,12 @@ project file::.
 
    There are no errors in this file.
 
-   `hello_5.adp':
+   'hello_5.adp':
 
      ada_project_path=../Example_4/Gnat_Project
      gpr_file=hello_5.gpr
 
-   `hello_5.gpr':
+   'hello_5.gpr':
 
      with "hello_4";
      project Hello_5 is
@@ -833,12 +883,12 @@ project file::.
         end Compiler;
      end Hello_5;
 
-   In buffer `hello_5.adb', invoke `Ada | Project | Find and select
-project...', and select `Example_5/hello_5.adp'. This would also be
+   In buffer 'hello_5.adb', invoke 'Ada | Project | Find and select
+project...', and select 'Example_5/hello_5.adp'.  This would also be
 found by default if no previous project file had been selected.
 
-   Then, again in `hello_5.adb', invoke `Ada | Build | Set main and
-Build'. You should get a `*compilation*' buffer containing something
+   Then, again in 'hello_5.adb', invoke 'Ada | Build | Set main and
+Build'.  You should get a '*compilation*' buffer containing something
 like (the directory paths will be different):
 
      -*- mode: compilation; default-directory: "c:/Projects/org.emacs.ada-mode.stephe-1/test/Example_5/" -*-
@@ -851,8 +901,8 @@ like (the directory paths will be different):
 
      Compilation exited abnormally with code 4 at Mon Oct 21 11:32:05
 
-   Now type `C-x `'. `Example_4/hello_pkg.adb' is shown, demonstrating
-that `hello_5.gpr' and `hello_4.gpr' are being used to set the
+   Now type 'C-x `'.  'Example_4/hello_pkg.adb' is shown, demonstrating
+that 'hello_5.gpr' and 'hello_4.gpr' are being used to set the
 compilation search path.
 
 \1f
@@ -864,12 +914,12 @@ File: ada-mode.info,  Node: Use a Makefile,  Prev: Use multiple GNAT project fil
 In this example, we show how to use a Makefile to build an Ada project
 with GNAT, run the result, and clean the build directories.
 
-   Create the directories `Example_4, Example_5' as specified in *note
-Use GNAT project file::,  *note Use multiple GNAT project files::.
+   Create the directories 'Example_4, Example_5' as specified in *note
+Use GNAT project file::, *note Use multiple GNAT project files::.
 
-   In `Example_5', add the file:
+   In 'Example_5', add the file:
 
-   `Makefile':
+   'Makefile':
 
      # build and run hello_5 project
 
@@ -893,13 +943,13 @@ Use GNAT project file::,  *note Use multiple GNAT project files::.
      # eval:(ada-select-prj-file "hello_5.adp")
      # End:
 
-   Close and re-open `Makefile'; the `Local Variables' section sets the
-project file to `hello_5.adp' when the `Makefile' is opened. You can
-also use <C-x C-e> to execute the select line after the `Makefile' is
-opened, to change the project file back to `hello_5.adp'.
+   Close and re-open 'Makefile'; the 'Local Variables' section sets the
+project file to 'hello_5.adp' when the 'Makefile' is opened.  You can
+also use <C-x C-e> to execute the select line after the 'Makefile' is
+opened, to change the project file back to 'hello_5.adp'.
 
-   In `Makefile', invoke `Tools | Compile...', and accept the default
-make command. This runs the `all' target, which builds `hello_5' and
+   In 'Makefile', invoke 'Tools | Compile...', and accept the default
+make command.  This runs the 'all' target, which builds 'hello_5' and
 runs it.
 
 \1f
@@ -908,20 +958,20 @@ File: ada-mode.info,  Node: Compiler errors,  Prev: Compiling Examples,  Up: Com
 4.3 Compiler errors
 ===================
 
-The `Check syntax' and `Build' commands, or running `make', place
-compilation errors in a separate buffer named `*compilation*'.
+The 'Check syntax' and 'Build' commands, or running 'make', place
+compilation errors in a separate buffer named '*compilation*'.
 
    Each line in this buffer will become active: you can simply click on
 it with the middle button of the mouse, or move point to it and press
-<RET>. Emacs will then display the relevant source file and put point
+<RET>.  Emacs will then display the relevant source file and put point
 on the line and column where the error was found.
 
-   You can also press the `C-x `' key (`next-error'), and Emacs will
-jump to the first error. If you press that key again, it will move you
+   You can also press the 'C-x `' key ('next-error'), and Emacs will
+jump to the first error.  If you press that key again, it will move you
 to the second error, and so on.
 
-   Some error messages also include references to other files. These
-references are accessed via `C-c `'.
+   Some error messages also include references to other files.  These
+references are accessed via 'C-c `'.
 
 \1f
 File: ada-mode.info,  Node: Project files,  Next: Moving Through Ada Code,  Prev: Compiling Executing,  Up: Top
@@ -933,16 +983,20 @@ An Emacs Ada mode project file specifies what directories hold sources
 for your project, and allows you to customize the compilation commands
 and other things on a per-project basis.
 
-   The default file extension for Ada mode project files is `*.adp'.
-You can use a different extension by adding it to
-`ada-prj-parser-alist'.
+   The default file extension for Ada mode project files is '*.adp' or
+'*.prj'.  You can use a different extension by adding it to
+'ada-prj-file-extensions', and a different syntax by adding a parser
+function to 'ada-prj-parser-alist'.
 
-   Note that Ada mode project files `*.adp' are different than GNAT
-compiler project files `*.gpr'. However, Emacs Ada mode can use a GNAT
-project file to specify the project directories. If no other
+   Note that Ada mode project files '*.adp' are different than GNAT
+compiler project files '*.gpr'.  However, Emacs Ada mode can use a GNAT
+project file to specify the project directories.  If no other
 customization is needed, a GNAT project file can be used without an
 Emacs Ada mode project file.
 
+   If no Emacs Ada mode project file is specified, some Ada mode
+functions are not available.
+
 * Menu:
 
 * Project file overview::
@@ -954,23 +1008,26 @@ File: ada-mode.info,  Node: Project file overview,  Next: Project file variables
 5.1 Project file overview
 =========================
 
-Project files have a simple syntax; they may be edited directly. Each
+Project files have a simple syntax; they may be edited directly.  Each
 line specifies a project variable name and its value, separated by "="
 (spaces not allowed):
      src_dir=/Projects/my_project/src_1
      src_dir=/Projects/my_project/src_2
 
-   Some variables (like `src_dir') are lists; multiple occurrences are
+   Any line that does not have an "=" is a comment.
+
+   Some variables (like 'src_dir') are lists; multiple occurrences are
 concatenated.
 
    There must be no space between the variable name and "=", and no
 trailing spaces.
 
    The current project file is given by the lisp variable
-`ada-prj-default-project-file'.
+'ada-prj-default-project-file', and shown by the menu command <Ada |
+Project Files | Show project>.
 
-   To set the project file, use the menu command `Ada | Set Project
-...', or the elisp functions `ada-parse-prj-file, ada-select-prj-file'.
+   To set the project file, use the menu command 'Ada | Set Project
+...', or the elisp functions 'ada-parse-prj-file, ada-select-prj-file'.
 The latter can be added to a Makefile:
 
      # Local Variables:
@@ -979,12 +1036,12 @@ The latter can be added to a Makefile:
      # End:
 
    You specify either a GNAT project file or an Emacs Ada mode project
-file; if the file extension is `.gpr', the file is treated as a GNAT
-project file. Any other extension is treated as an Emacs Ada mode
-project file.
+file; if the file extension is '.gpr', the file is treated as a GNAT
+project file.  Extensions given by 'ada-prj-file-extensions' (default
+'.adp, .prj') are treated as an Emacs Ada mode project file.
 
    After a project file is parsed, you can make it current again with
-just `ada-select-prj-file', or by selecting it from the menu.
+just 'ada-select-prj-file', or by selecting it from the menu.
 
 \1f
 File: ada-mode.info,  Node: Project file variables,  Prev: Project file overview,  Up: Project files
@@ -992,78 +1049,93 @@ File: ada-mode.info,  Node: Project file variables,  Prev: Project file overview
 5.2 Project file variables
 ==========================
 
-Some project file variables can also be defined in elisp variables.
-
-   To set a project variable that is a list, specify each element of the
+To set a project variable that is a list, specify each element of the
 list on a separate line in the project file.
 
    Process environment variables can be referenced using the normal
-`$var' syntax.
+'$var' syntax.
 
    Most project variables have defaults that can be changed by setting
-elisp variables; the table below identifies the lisp variable for each
-project variable. Elisp variables corresponding to project variables
+elisp variables; the table below identifies the elisp variable for each
+project variable.  Elisp variables corresponding to project variables
 that are lists are elisp lists.
 
    In general, project variables are evaluated when referenced in Emacs
-Ada mode commands. Relative file paths are expanded to absolute
-relative to the directory containing the project file.
+Ada mode commands.  Relative file paths are expanded relative to the
+directory containing the project file.
 
    Ada mode defines some project variables; others are defined by the
 compiler.
 
-   Here is the list of variables valid for all compilers. In the default
-values, the current directory `"."' is the directory containing the
-project file.
+   Here is the list of variables valid for all compilers.  In the
+default values, the current directory '"."' is the directory containing
+the project file.
 
-`ada_compiler'   [default: `ada-compiler, gnat']
-     Ada compiler for this project. It must occur in the project file
+'ada_compiler' [default: 'ada-compiler, gnat']
+     Ada compiler for this project.  It must occur in the project file
      before any compiler-specific project variable.
 
-`auto_case'      [default: `ada-auto-case, t']
+'auto_case' [default: 'ada-auto-case, t']
      Non-nil means automatically change case of preceding word while
      typing.
 
-`case_keyword'   [default: `ada-case-keyword, downcase-word']
-     Function to call to adjust the case of an Ada keywords.
+'case_identifier' [default: 'ada-case-identifier, ada-mixed-case']
+     Function to call to adjust the case of an Ada identifier.
+
+'case_keyword' [default: 'ada-case-keyword, downcase-word']
+     Function to call to adjust the case of an Ada keyword.
 
-`case_strict'    [default: `ada-case-strict, t']
-     If non-nil, force Mixed_Case for identifiers.  Otherwise, allow
-     UPPERCASE for identifiers.
+'case_strict' [default: 'ada-case-strict, t']
+     If non-nil, 'ada-mixed-case' forces 'Mixed_Case' for identifiers.
+     Otherwise, 'ada-mixed-case' allows 'UPPERCASE' for identifiers.
 
-`casing'         [default: `ada-case-exception-file, nil']
-     List of files containing casing exceptions. *Note Automatic
+'casing' [default: 'ada-case-exception-file, nil']
+     List of files containing casing exceptions.  *Note Automatic
      casing::.
 
-`src_dir'        [default: `"."']
+'el_file' [default: ]
+     The value is a file name, which is loaded as an elisp file when the
+     project file is parsed or selected.  This allows setting Ada mode
+     indentation variables, and any arbitrary elisp code used to
+     customize the project.
+
+'path_sep' [default: 'path-separator']
+     Separator character used in compiler search paths.
+
+'src_dir' [default: '"."']
      A list of directories to search for source files.
 
-`xref_tool'      [default: `ada-xref-tool, gnat-xref']
+'xref_tool' [default: 'ada-xref-tool, gnat-xref']
      Cross reference tool for this project.
 
-
    The following variables are valid with the GNAT compiler:
 
-`ada_project_path'   [default: `""']
+'ada_project_path' [default: '""']
      A list of directories to search for GNAT project files.
 
-     If set, the `ADA_PROJECT_PATH' process environment variable is set
-     to this value in the child process that runs GNAT tools. If not
-     set, `ADA_PROJECT_PATH' in the child process is inherited from the
+     If set, the 'GPR_PROJECT_PATH' process environment variable is set
+     to this value in the child process that runs GNAT tools.  If not
+     set, 'GPR_PROJECT_PATH' in the child process is inherited from the
      Emacs process.
 
-     If you have the `ADA_PROJECT_PATH' environment variable set in the
-     Emacs process correctly for all of your projects, you do not need
-     to set this project variable.
+     If you have the 'GPR_PROJECT_PATH' or 'ADA_PROJECT_PATH'
+     environment variable set in the Emacs process correctly for all of
+     your projects, you do not need to set this project variable.
 
-`gpr_file'   [default: `""']
+     The project search path can also be set in GNAT aggregate projects.
+     However, the gnat tools do not make that path available to Emacs,
+     so you must duplicate it in an Emacs Ada project file.
+
+'gpr_file' [default: '""']
      The GNAT project file.
 
      If set, the source and project directories specified in the GNAT
-     project file are appended to `src_dir' and `ada_project_path'.
+     project file are appended to 'src_dir' and 'ada_project_path'.
      This allows specifying Ada source directories with a GNAT project
      file, and other source directories with the Emacs project file.
 
+'gpr_project_path' [default: '""']
+     Same as 'ada_project_path'.
 
 \1f
 File: ada-mode.info,  Node: Moving Through Ada Code,  Next: Identifier completion,  Prev: Project files,  Up: Top
@@ -1071,63 +1143,75 @@ File: ada-mode.info,  Node: Moving Through Ada Code,  Next: Identifier completio
 6 Moving Through Ada Code
 *************************
 
-There are several commands to navigate through Ada code. All these
+There are several commands to navigate through Ada code.  All these
 functions are available through the Ada menu and keybindings.
 
-   Some of these commands rely on facilities provided by the compiler;
-the standard Emacs Ada mode only supports the GNAT compiler, but others
-can be added.
+   Some of these commands rely on cross reference facilities provided by
+the compiler; the standard Emacs Ada mode only supports the GNAT
+compiler, but others can be added (*note Other cross-reference::).
 
-`C-c C-d'
+'C-c C-d'
      Move from any use of an identifier to its declaration, for from a
-     declaration to its body.
+     declaration to its body (if there is one).
 
-`C-c M-d'
-     Move from a child type declaration to the parent type declaration.
+'C-c M-d'
+     Move from a child type declaration to the parent type declaration;
+     display a list of references if there is more than one parent.
 
-`C-c C-n'
+'C-c C-n'
      Move to the next keyword in the current statement.
 
-     For example, if point is on `if', move to `then'.
+     For example, if point is on 'if', move to 'then'.
 
-`C-c C-p'
+'C-c C-p'
      Move to the previous keyword in the current statement.
 
-     For example, if point is on `then', move to `if'.
+     For example, if point is on 'then', move to 'if'.
 
-`C-c C-o'
-     Switch between corresponding spec and body. There are several
+'C-c C-o'
+     Switch between corresponding spec and body.  There are several
      special cases:
-        *     If the region is active, it is assumed to contain an Ada
-          package     name; position point on the corresponding package
-          declaration.
 
-        *     If point is in the start line of a top level child package
-             declaration (but not package body), or a child subprogram
-          spec or     body, position point on the corresponding parent
-          package     declaration.
+        * If the region is active, it is assumed to contain an Ada
+          package name; position point on the corresponding package
+          declaration.
 
-        *     If point is in the start line of a top level separate
-          body,     position point on the corresponding separate stub
+        * If point is in the start line of a top level child package
+          declaration (but not package body), or a child subprogram spec
+          or body, position point on the corresponding parent package
           declaration.
 
-        *     If point is in a subprogram, position point on the
-          corresponding     declaration or body in the other file.
+        * If point is in the start line of a top level separate body,
+          position point on the corresponding separate stub declaration.
+
+        * If point is in a subprogram declaration or body, position
+          point on the corresponding body or declaration in the other
+          file.
 
+        * If point is on a 'with' clause, position point on the
+          corresponding declaration.
 
-`C-c C-r'
-     Show all references to the identifier surrounding point. Use `C-x
-     `' (`next-error') to visit each reference (as for compilation
+'C-c C-r'
+     Show all references to the identifier surrounding point.  Use 'C-x
+     `' ('next-error') to visit each reference (as for compilation
      errors).
 
-`C-c C-x'
+'C-c C-x'
      Show all declarations that override the primitive procedure at
-     point. Use `C-x `' (`next-error') to visit each reference (as for
+     point.  Use 'C-x `' ('next-error') to visit each reference (as for
      compilation errors).
 
-`C-u SPACE'
+'C-c M-x'
+     Show the declaration that the declaration at point overrides.
+
+'C-u SPACE'
      Jump back to the previous location.
 
+'Ada | Misc | Refresh cross reference cache'
+     Cross reference information is loaded from the compiler output when
+     the first cross reference command is issued.  If the code is
+     recompiled after that, the cross reference information is reloaded
+     by invoking this menu command.
 
 \1f
 File: ada-mode.info,  Node: Identifier completion,  Next: Indentation,  Prev: Moving Through Ada Code,  Up: Top
@@ -1135,22 +1219,22 @@ File: ada-mode.info,  Node: Identifier completion,  Next: Indentation,  Prev: Mo
 7 Identifier completion
 ***********************
 
-Emacs provides a general way of completing identifiers: `M-/' (bound to
-`dabbrev-expand'). This is an easy way to type faster: you just have to
+Emacs provides a general way of completing identifiers: 'M-/' (bound to
+'dabbrev-expand').  This is an easy way to type faster: you just have to
 type the first few letters of an identifier, and then loop through all
 the possible completions.
 
-   `M-/' works by parsing all open Ada files for possible completions.
+   'M-/' works by parsing all open Ada files for possible completions.
 
-   For instance, if the words `my_identifier' and `my_subprogram' are
-the only words starting with `my' in any of the open Ada files, then
-you will have this scenario:
+   For instance, if the words 'my_identifier' and 'my_subprogram' are
+the only words starting with 'my' in any of the open Ada files, then you
+will have this scenario:
 
      You type:  myM-/
-     Emacs inserts:  `my_identifier'
-     If you press M-/ once again, Emacs replaces `my_identifier' with
-     `my_subprogram'.
-     Pressing M-/ once more will bring you back to `my_identifier'.
+     Emacs inserts:  'my_identifier'
+     If you press M-/ once again, Emacs replaces 'my_identifier' with
+     'my_subprogram'.
+     Pressing M-/ once more will bring you back to 'my_identifier'.
 
    This is a very fast way to do completion, and the casing of words
 will also be respected.
@@ -1161,81 +1245,85 @@ File: ada-mode.info,  Node: Indentation,  Next: Statement skeletons,  Prev: Iden
 8 Indentation
 *************
 
-Ada mode comes with a full set of rules for automatic indentation. You
+Ada mode comes with a full set of rules for automatic indentation.  You
 can also configure the indentation, via the following variables:
 
-`ada-indent'                  (default value: 3)
+'ada-indent' (default value: 3)
      Number of columns for default indentation.
 
-`ada-indent-broken'           (default value: 2)
+'ada-indent-broken' (default value: 2)
      Number of columns to indent the continuation of a broken line.
 
-`ada-indent-comment-col-0'  (default value: nil)
+'ada-indent-comment-col-0' (default value: nil)
      If non-nil, comments currently starting in column 0 are left in
      column 0.  Otherwise, they are indented with previous comments or
      code.
 
-`ada-indent-label'            (default value: -3)
+'ada-indent-label' (default value: -3)
      Number of columns to indent a label.
 
-`ada-indent-record-rel-type'  (default value: 3)
-     Indentation for `record' relative to `type' or `use'.
+'ada-indent-record-rel-type' (default value: 3)
+     Indentation for 'record' relative to 'type' or 'use'.
 
-`ada-indent-renames'           (default value: 2)
-     Indentation for `renames' relative to the matching subprogram
+'ada-indent-renames' (default value: 2)
+     Indentation for 'renames' relative to the matching subprogram
      keyword.
 
-     If the subprogram has parameters then if `ada-indent-renames' is
-     zero or less the indentation is abs `ada-indent-renames' relative
-     to the open parenthesis; if `ada-indent-renames' is one or more
-     the indentation is relative to the line containing the keyword.
+     If the subprogram has parameters then if 'ada-indent-renames' is
+     zero or less the indentation is abs 'ada-indent-renames' relative
+     to the open parenthesis; if 'ada-indent-renames' is one or more the
+     indentation is relative to the line containing the keyword.
 
-     If the subprogram has no parameters then `ada-indent-broken' the
+     If the subprogram has no parameters then 'ada-indent-broken' the
      indentation is relative to the indentation of the line containing
      the keyword.
 
-`ada-indent-return'           (default value: 0)
-     Indentation for `return' relative to the matching  `function'.
+'ada-indent-return' (default value: 0)
+     Indentation for 'return' relative to the matching 'function'.
 
-     If the function has parameters, then if `ada-indent-return' is
-     zero or less the indentation is abs `ada-indent-return' relative
-     to the open parenthesis; if `ada-indent-return' is one or more,
-     indentation is relative to line containing `function'.
+     If the function has parameters, then if 'ada-indent-return' is zero
+     or less the indentation is abs 'ada-indent-return' relative to the
+     open parenthesis; if 'ada-indent-return' is one or more,
+     indentation is relative to line containing 'function'.
 
-     If the function has no parameters, `ada-indent-broken' is used
-     relative to line containing `function'.
+     If the function has no parameters, 'ada-indent-broken' is used
+     relative to line containing 'function'.
 
-`ada-indent-use'  (default value: ada-indent-broken)
-     Indentation for the lines in a `use' statement.
+'ada-indent-use' (default value: ada-indent-broken)
+     Indentation for the lines in a 'use' statement.
 
-`ada-indent-when'             (default value: 3)
-     Indentation for `when' relative to `exception', `case', or `or' in
-     `select'.
+'ada-indent-when' (default value: 3)
+     Indentation for 'when' relative to 'exception', 'case', or 'or' in
+     'select'.
 
-`ada-indent-with'             (default value: ada-indent-broken)
-     Indentation for the lines in a `with' context clause.
+'ada-indent-with' (default value: ada-indent-broken)
+     Indentation for the lines in a 'with' context clause.
 
+   The indentation variables are buffer local; the global value may be
+overridden in an elisp file invoked by an 'el_file' Emacs Ada mode
+project file statement, or in a file local variable section.
 
    The following keys indent portions of the text:
-`RET'
+
+'RET'
      Insert and indent a new line.
 
-`TAB'
+'TAB'
      Indent the current line, or the current region.
 
-`C-c TAB'
+'C-c TAB'
      Indent the current statement or declaration.
 
-
    The indentation algorithm relies on a grammar parser to identify the
-syntactic role for keywords and other words in the code. If the code is
-accepted by the parser, the indentation is correct. If the code is not
-accepted (because it is partially complete during editing), the
-indentation engine falls back to the trivial algorithm of indenting
-each new line the same as the previous line.
+syntactic role for keywords and other words in the code.  If the code is
+accepted by the parser, the indentation is done according to the rules
+in the indentation engine.
 
-   Once enough new text has been entered to make the code acceptable to
-the parser, the statement or declaration is properly indented.
+   If the code is not accepted (because it is partially complete during
+editing), the indentation engine falls back to the trivial algorithm of
+indenting each new line the same as the previous line.  Once enough new
+text has been entered to make the code acceptable to the parser, the
+statement or declaration is properly indented.
 
    For example, if you are entering this code:
 
@@ -1243,12 +1331,13 @@ the parser, the statement or declaration is properly indented.
         B;
      end if;
 
-   when you type `RET B', `B' is indented to the same column as `if'.
-Then when you type the final `;', all three lines are indented, putting
-`B' where it belongs.
+   when you type 'RET B', 'B' is indented to the same column as 'if',
+because the parser does not find 'end if;'.  Then when you type the
+final ';' followed by <TAB>, all three lines are indented, putting 'B'
+where it belongs.
 
    To be more user friendly, the parser accepts a superset of the Ada
-grammer. For example, the parser accepts this code for an `if'
+grammer.  For example, the parser accepts this code for an 'if'
 statement:
 
      if then
@@ -1260,14 +1349,17 @@ omitted.
    One way to easily insert empty statements like this is using *note
 Statement skeletons::.
 
+   In rare cases, the parser gets confused; it can be reset by invoking
+menu <Ada | Misc | Reset parser>.  Please report such cases as a bug.
+
 \1f
 File: ada-mode.info,  Node: Statement skeletons,  Next: Aligning code,  Prev: Indentation,  Up: Top
 
 9 Statement skeletons
 *********************
 
-`C-c C-e' expands the previous one or two words into a statment
-skeleton. For example, `if C-c C-e' expands to:
+'C-c C-e' expands the previous one or two words into a statment
+skeleton.  For example, 'i f C-c C-e' expands to:
 
      if  then
      elsif  then
@@ -1278,17 +1370,19 @@ skeleton. For example, `if C-c C-e' expands to:
 this is a convenient way to insert statements with correct indentation.
 
    For named statements (packages, loops, etc), the name is taken from
-the word before point, and the name of statement from the word before
-that. Some expansions prompt for more information, such as whether a
-spec or body is desired. For example, `package A_Package C-c C-e' first
-prompts for "body" or "spec". If "spec" is selected, the following code
+the word before point, and the name of the statement from the word
+before that.
+
+   Some expansions prompt for more information, such as whether a spec
+or body is desired.  For example, 'package A_Package C-c C-e' first
+prompts for "body" or "spec".  If "spec" is selected, the following code
 is inserted:
 
      package A_Package is
      private
      end A_Package;
 
-   Named blocks work similarly: `declare A_Block C-c C-e' expands
+   Named blocks work similarly: 'declare A_Block C-c C-e' expands
 (without prompting) to:
 
      A_Block:
@@ -1297,8 +1391,18 @@ is inserted:
         exception
         end A_Block;
 
-   Note that the order of the keyword `declare' and the name `A_Block'
+   Note that the order of the keyword 'declare' and the name 'A_Block'
 are reversed in the expansion; this may take some getting used to.
+Alternately, if no name is present in the buffer, you are prompted for a
+name: 'declare C-c C-e' first prompts for a name, then expands to the
+above.
+
+   The variable 'ada-skel-initial-string' defines what to insert in a
+newly created empty buffer.  It defaults to '{header}', which is a
+placeholder defined by 'ada-skel-header', which inserts a typical header
+with a copyright license (choice of GPL or restricted).  Users will
+typically want to override the definition of 'ada-skel-initial-string'
+and/or 'ada-skel-header', or provide more choices of copyright license.
 
 \1f
 File: ada-mode.info,  Node: Aligning code,  Next: Automatic casing,  Prev: Statement skeletons,  Up: Top
@@ -1307,7 +1411,7 @@ File: ada-mode.info,  Node: Aligning code,  Next: Automatic casing,  Prev: State
 ****************
 
 Aligning code adds space in each line so that similar parts of
-successive lines are aligned vertically. For example, a sequence of
+successive lines are aligned vertically.  For example, a sequence of
 declarations:
 
      A : Integer;
@@ -1320,7 +1424,7 @@ declarations:
      Another : Float   := 1.0;
      More    : Integer := 2;
 
-   Alignment is invoked by `C-c C-a', which aligns the sequence of
+   Alignment is invoked by 'C-c C-a', which aligns the sequence of
 statements surrounding point, or within the selected region.
 
    Parameter lists are also aligned:
@@ -1344,36 +1448,37 @@ File: ada-mode.info,  Node: Automatic casing,  Next: Comment Handling,  Prev: Al
 *******************
 
 Casing of identifiers, attributes and keywords is automatically
-performed while typing when the variable `ada-auto-case' is non-nil.
-Every time you type a word separator, the previous word is
+performed while typing when the variable 'ada-auto-case' is non-nil (the
+default).  Every time you type a word separator, the previous word is
 automatically cased.
 
    You can customize the automatic casing with the following variables:
 
-`ada-case-keyword'
+'ada-case-keyword'
      Value must be one of:
-    `downcase-word'
+     'downcase-word'
           Ada keywords will be lowercase.
 
-    `upcase-word'
+     'upcase-word'
           Ada keywords will be uppercase.
 
-`ada-case-strict'
-     If non-nil, all identifiers are forced to `Mixed_Case'; first
+'ada-case-strict'
+     If non-nil, all identifiers are forced to 'Mixed_Case'; first
      letter, and letter following "_" are uppercase; rest are lowercase.
 
      If nil, the mixed case characters in identifiers are forced to
-     upper case, but the other characters are not modified. That allows
-     typing all uppercase identifiers without defining an exception.
+     upper case, but the other characters are not modified.  That allows
+     typing all uppercase identifiers without defining a casing
+     exception.
 
    You can define exceptions to these rules, in files specified by the
-variable `ada-case-exception-file'. Each line in a case exception file
-specifies the casing of one word or word fragment. If an exception is
+variable 'ada-case-exception-file'.  Each line in a case exception file
+specifies the casing of one word or word fragment.  If an exception is
 defined in multiple files, the first occurrence is used.
 
-   If the word starts with an asterisk (`*'), it defines the casing of
-a word fragemnt (or "substring"); part of a word between two
-underscores or word boundary.
+   If the word starts with an asterisk ('*'), it defines the casing of a
+word fragment (or "substring"); part of a word between two underscores
+or word boundary.
 
    For example:
 
@@ -1381,56 +1486,53 @@ underscores or word boundary.
      *IO
      GNAT
 
-   The word fragment `*IO' applies to any word containing "_io";
-`Text_IO', `Hardware_IO', etc.
+   The word fragment '*IO' applies to any word containing "_io";
+'Text_IO', 'Hardware_IO', etc.
 
    There are two ways to add new items to this file: you can simply edit
-it as you would edit any text file. Or you can position point on the
-word you want to add, and select menu `Ada | Casing | Create full
-exception' (`C-c C-y', `ada-case-create-exception') or `Ada | Casing |
-Create partial exception' (`C-c C-M-y').  The word will be added to the
-current list of exceptions and to the file.
-
-   It is sometimes useful to have multiple exception files. For
-example, one could be the standard Ada acronyms, the second some
-company specific exceptions, and the last one some project specific
-exceptions. If you set up the variable `ada-case-exception-file' as a
-list of files, each of them will be parsed and used in your emacs
-session. When you create a new exception, you are prompted for the file
-to save it in.
+it as you would edit any text file.  Or you can position point on the
+word you want to add, and select menu 'Ada | Casing | Create full
+exception' or 'Ada | Casing | Create partial exception'.  The word will
+be added to the current list of exceptions and to the file.
+
+   It is sometimes useful to have multiple exception files.  For
+example, one could be the standard Ada acronyms, the second some company
+specific exceptions, and the last one some project specific exceptions.
+If you set up the variable 'ada-case-exception-file' as a list of files,
+each of them will be parsed and used in your emacs session.  When you
+create a new exception, you are prompted for the file to save it in.
 
    Other keys and menu entries are defined:
 
-`C-c C-w'
-     Adjust case of the word at point. With prefix arg, adjust case
-     even if in comment. Normally, comments are not affected by case
+'C-c C-w'
+     Adjust case of the word at point.  With prefix arg, adjust case
+     even if in comment.  Normally, comments are not affected by case
      adjust.
 
-`Ada | Casing | Adjust case region'
+'Ada | Casing | Adjust case region'
      Adjust case in the active region.
 
-`Ada | Casing | Adjust case buffer'
+'Ada | Casing | Adjust case buffer'
      Adjust case in the active buffer.
 
-
 \1f
 File: ada-mode.info,  Node: Comment Handling,  Next: Key summary,  Prev: Automatic casing,  Up: Top
 
 12 Comment Handling
 *******************
 
-By default, comment lines get indented like Ada code. There are a few
+By default, comment lines get indented like Ada code.  There are a few
 additional functions to handle comments:
 
-`M-;'
+'M-;'
      If the region is active, comment or uncomment it.
 
      If the current line is empty, start a comment.
 
      Otherwise, add a comment at the end of the line, in a column given
-     by `comment-column'.
+     by 'comment-column'.
 
-`M-q'
+'M-q'
      Fill the current comment paragraph.
 
 \1f
@@ -1439,92 +1541,109 @@ File: ada-mode.info,  Node: Key summary,  Next: Developer overview,  Prev: Comme
 13 Key summary
 **************
 
-`M-/'
+This table summarizes the keys described in this manual.  Other keys are
+bound by Ada mode; see <C-h b> for a complete list.  The Ada menu also
+displays keys bound to menu operations.
+
+'M-/'
      *Note Identifier completion::.  Complete the word before point;
      repeat to cycle thru possible completions.
 
-`M-;'
+'M-;'
      *Note Comment Handling::.  If the region is active, comment or
      uncomment it.
 
-`RET'
+'M-q'
+     *Note Comment Handling::.  Fill the current comment paragraph.
+
+'RET'
      *Note Indentation::.  Insert and indent a new line.
 
-`TAB'
+'TAB'
      *Note Indentation::.  Indent the current line, or the current
      region.
 
-`C-c TAB'
+'C-c TAB'
      *Note Indentation::.  Indent the current statement or declaration.
 
-`C-c `'
+'C-c `'
      *Note Compiler errors::.  Move to the location of the secondary
      reference in the current compilation error.
 
-`C-c C-a'
+'C-c C-a'
      *Note Aligning code::.  Align code.
 
-`C-c C-d'
+'C-c C-c'
+     *Note Compile commands::.  Build the current main program.
+
+'C-c C-d'
      *Note Moving Through Ada Code::.  Move from any use of an
      identifier to its declaration, for from a declaration to its body.
 
-`C-c M-d'
+'C-c M-d'
      *Note Moving Through Ada Code::.  Move from a child type
      declaration to the parent type declaration.
 
-`C-c C-e'
-     *Note Statement skeletons::.  Expand previous one or two words
-     into a statement or declaration skeleton.
+'C-c C-e'
+     *Note Statement skeletons::.  Expand previous one or two words into
+     a statement or declaration skeleton.
+
+'C-c C-c'
+     *Note Compile commands::.  Build the current file.
 
-`C-c C-n'
+'C-c C-n'
      *Note Moving Through Ada Code::.  Move to the next keyword in the
      current statement.
 
-`C-c C-o'
-     *Note Moving Through Ada Code::.  Switch between corresponding
-     spec and body, or find other spec.
+'C-c C-o'
+     *Note Moving Through Ada Code::.  Switch between corresponding spec
+     and body, or find other spec.
 
-`C-c C-p'
+'C-c C-p'
      *Note Moving Through Ada Code::.  Move to the previous keyword in
      the current statement.
 
-`C-c C-r'
+'C-c C-r'
      *Note Moving Through Ada Code::.  Show all references to the
      identifier surrounding point.
 
-`C-c C-w'
-     *Note Automatic casing::.  Adjust case of the word at point. With
+'C-c C-w'
+     *Note Automatic casing::.  Adjust case of the word at point.  With
      prefix arg, adjust case even if in comment.
 
-`C-c C-x'
+'C-c C-x'
      *Note Moving Through Ada Code::.  Show all declarations that
      override the primitive procedure at point.
 
-`C-c C-y'
+'C-c C-y'
      *Note Automatic casing::.  Create case exception.
 
-`C-x `'
+'C-c `'
+     *Note Compiler errors::.  Move to the location of the next
+     secondary compilation error.
+
+'C-x `'
      *Note Compiler errors::.  Move to the location of the next
      compilation error or show result.
 
-`M-q'
+'M-q'
      *Note Comment Handling::.  Fill the current comment paragraph.
 
-
 \1f
 File: ada-mode.info,  Node: Developer overview,  Next: GNU Free Documentation License,  Prev: Key summary,  Up: Top
 
 14 Developer overview
 *********************
 
-If you'd like to contribute to Ada mode, or just understand the
-sources, here's an overview.
+If you'd like to contribute to Ada mode, or just understand the sources,
+here's an overview.
 
 * Menu:
 
 * Directory structure::
 * Package organization::
 * OpenToken::
+* ELPA::
 
 \1f
 File: ada-mode.info,  Node: Directory structure,  Next: Package organization,  Prev: Developer overview,  Up: Developer overview
@@ -1532,97 +1651,97 @@ File: ada-mode.info,  Node: Directory structure,  Next: Package organization,  P
 14.1 Directory structure
 ========================
 
-`org.emacs.ada-mode.stephe-1'
+'org.emacs.ada-mode'
      Main source.
 
      File extensions:
-    `*.el'
+     '*.el'
           Elisp files; main code.
 
-    `*.elc'
-          Byte-compiled elisp files, not in the distribution. Generated
-          by the Makefile target `byte-compile'.
+     '*.elc'
+          Byte-compiled elisp files, not in the distribution.  Generated
+          by the Makefile target 'byte-compile', or by the Emacs package
+          installer.
 
-          Compiling the parse tables (`*-wy.el') speeds up loading them
-          significantly. Compiling other files speeds up parsing, but
+          Compiling the parse tables ('*-wy.el') speeds up loading them
+          significantly.  Compiling other files speeds up parsing, but
           not noticeably.
 
           One reason to byte-compile files is to find errors; the byte
           compiler reports undefined variables, wrong argument counts,
           etc.
 
-    `*-wy.el'
-          Parse tables, generated from the corresponding grammar `*.wy'
-          by the OpenToken tool `wisi-generate.exe'. These are in the
-          tarball distribution and the monotone so users and Elisp
-          developers don't have to install OpenToken.
+     '*-wy.el'
+          Parse tables, generated from the corresponding grammar '*.wy'
+          by the OpenToken tool 'wisi-generate.exe'.  These are in the
+          tarball distribution and the monotone repository so users and
+          Elisp developers don't have to install OpenToken.
 
-    `*-wy.output'
-          Diagnostic output from `wisi-generate.exe', useful for tracing
-          parses while debugging a grammar issue. Not in the tarball
+     '*-wy.output'
+          Diagnostic output from 'wisi-generate.exe', useful for tracing
+          parses while debugging a grammar issue.  Not in the tarball
           distribution or the monotone repository.
 
-    `*.wy'
-          Grammar files, specifying the language to be parsed. The
+     '*.wy'
+          Grammar files, specifying the language to be parsed.  The
           syntax for these grammar files is similar to that for bison
           and wisent, but not the same; see the OpenToken documentation
           for more info.
 
-          The wisi parser (in `wisi-parse.el') is a generalized LALR
-          parser, so it tolerates some conflicts and ambiguities. This
-          makes the grammars easier to write, and in particular makes
-          it possible to let the Ada grammar closely match Annex P of
-          the Ada Language Reference Manual (the syntax summary).
+          The wisi parser (in 'wisi-parse.el') is a generalized LALR
+          parser, so it tolerates some conflicts and ambiguities.  This
+          makes the grammars easier to write, and in particular makes it
+          possible to let the Ada grammar closely match Annex P of the
+          Ada Language Reference Manual (the syntax summary).
 
-    `*.texi'
+     '*.texi'
           Texinfo source for the user guides.
 
-    `*.html'
+     '*.html'
           Generated user guide in HTML format.
 
-    `*.info'
+     '*.info'
           Generated user guide in Emacs info format.
 
+'build'
+     Makefile for building the user guides, publishing to the web page
+     or Gnu ELPA. Test drivers.
 
-`build'
-     Makefiles for byte-compiling, running tests, making zips.
-
-`build/wisi'
-     Makefiles for building and testing with the wisi-based parser.
-     Separate from `build', because there used to be a SMIE-based
-     parser, and there might be another one someday.
+'build/wisi'
+     Makefile for building and testing with the wisi-based parser.
+     Separate from 'build', because there used to be a SMIE-based
+     parser, and there might be another parser someday.
 
      The emacs used to byte-compile and run tests is given by the 'make'
-     variable EMACS_EXE, which defaults to 'emacs'; it can be
-     overridden on the make command line or by an environment variable.
+     variable EMACS_EXE, which defaults to 'emacs'; it can be overridden
+     on the make command line or by an environment variable.
 
-`test'
+'test'
      All tests for Ada mode, gpr mode, parser.
 
      Each test is run in a separate invocation of Emacs, so it is
      completely independent of all other tests.
 
-     The tests are driven by the elisp code in `build/*.el'.
+     The tests are driven by the elisp code in 'build/*.el'.
 
      In general, the Ada mode tests open the file, execute test actions,
-     re-indent, and re-captialize the entire file. The result is diffed
+     re-indent, and re-captialize the entire file.  The result is diffed
      with the original, and must match.
 
      The test actions are defined by comments with the prefix
-     `--EMACSCMD:'; they are elisp forms that invoke Ada mode
-     functions. This is used to test navigation features and other
-     parser effects.
+     '--EMACSCMD:'; they are elisp forms that invoke Ada mode functions.
+     This is used to test navigation features and other parser effects.
 
-`test/Example_*'
+'test/Example_*'
      Starting files for examples in user guide.
 
-`test/gpr'
+'test/gpr'
      Tests for gpr mode.
 
-`test/subdir'
+'test/subdir'
      More tests; allows testing path search features.
 
-`test/wisi'
+'test/wisi'
      Tests of the elisp wisi grammar compiler and parser.
 
 \1f
@@ -1644,74 +1763,72 @@ File: ada-mode.info,  Node: Ada mode,  Next: gpr mode,  Prev: Package organizati
 14.2.1 Ada mode
 ---------------
 
-Ada mode consists of all files with `ada-' prefix in the file name.
+Ada mode consists of all files with 'ada-' prefix in the file name.
 
-`ada-mode.el'
+'ada-mode.el'
      The main file, implementing the keymap, menu, and top level
      functionality.
 
      It allows for different backend implementations for compiling,
-     cross-referencing, and indenting. The functions for each of these
+     cross-referencing, and indenting.  The functions for each of these
      backends dispatch thru global variables that are set by Emacs Ada
-     mode project files. They default to the GNAT compiler, the
+     mode project files.  They default to the GNAT compiler, the
      gnatxref cross reference tool, and the ada-wisi indentation engine.
 
-`ada-build.el'
+'ada-build.el'
      Provides functions for compiling Ada files without a Makefile (or
      similar tool).
 
-`ada-fix-error.el'
+'ada-fix-error.el'
      Provides an interface to utilities for automatically fixing errors
-     reported by the compiler. It dispatches to a compiler-specific
+     reported by the compiler.  It dispatches to a compiler-specific
      backend.
 
-`ada-gnat-compile.el'
+'ada-gnat-compile.el'
      Implements the Ada mode compiler functions for the GNAT compiler.
 
-`ada-gnat-xref.el'
+'ada-gnat-xref.el'
      Implements the Ada mode cross reference functions for the GNAT
      compiler.
 
-`ada-grammar.*'
+'ada-grammar.*'
      The Ada language grammar, and files generated from it by the
-     OpenToken tool `wisi-generate.exe'.
+     OpenToken tool 'wisi-generate.exe'.
 
-`ada-indent-user-options.el'
+'ada-indent-user-options.el'
      All user-settable options for the Ada indentation engine.
 
-`ada-mode-compat-23.4.el'
-     A start on defining functions used by Ada mode but not in Emacs
-     23.4.
+'ada-mode-compat-23.4.el'
+     Defines functions used by Ada mode that are not in Emacs 23.4.
 
-     Emacs Ada mode is written for Emacs 24.3. Emacs version 23.4 is
-     partially supported. Earlier versions of Emacs are not supported.
+     Emacs Ada mode is written for Emacs 24.3.  Emacs version 23.4 is
+     partially supported.  Earlier versions of Emacs are not supported.
 
-`ada-mode.texi'
+'ada-mode.texi'
      The Ada mode user guide source and compiled versions.
 
-`ada-skel.el'
+'ada-skel.el'
      Skeletons for expansion of Ada syntax (*note Statement
-     skeletons::). Extends the Emacs skeleton functions with "tokens",
+     skeletons::).  Extends the Emacs skeleton functions with "tokens",
      inspired by the lamented Else package (which was inspired by DEC
      LSE).
 
-`ada-wisi-opentoken.el'
+'ada-wisi-opentoken.el'
      Indentation functions useful when editing OpenToken code; an
      example of extending the Ada mode indentation engine for special
      circumstances.
 
-`ada-wisi.el'
+'ada-wisi.el'
      Implements the Ada mode indentation functions for the wisi
      indentation engine backend.
 
-
 \1f
 File: ada-mode.info,  Node: gpr mode,  Next: GNAT core,  Prev: Ada mode,  Up: Package organization
 
 14.2.2 gpr mode
 ---------------
 
-gpr mode consists of all files with `gpr-' prefix in the file name. The
+gpr mode consists of all files with 'gpr-' prefix in the file name.  The
 functions in each file are similar to the similarly-named Ada mode
 files.
 
@@ -1721,27 +1838,24 @@ File: ada-mode.info,  Node: GNAT core,  Next: Wisi,  Prev: gpr mode,  Up: Packag
 14.2.3 GNAT core
 ----------------
 
-`gnat-core.el'
+'gnat-core.el'
      GNAT is actually a multi-language tool; it builds on top of the
      multi-language gcc.
 
-     `gnat-core.el' is a start at a language-agnostic interface to the
-     GNAT tools. It was first factored out from `ada-gnat.el' and
-     `ada-mode.el' to support the multi-language `gnat-inspect.el',
-     which is still experimental.
+     'gnat-core.el' is a start at a language-agnostic interface to the
+     GNAT tools.  It was first factored out from 'ada-gnat.el' and
+     'ada-mode.el' to support the multi-language 'gpr_query.el'.
 
-     More code currently in `ada-mode.el' could be migrated to
-     `gnat-core.el', in particular the project file support.
+     More code currently in 'ada-mode.el' could be migrated to
+     'gnat-core.el', in particular the project file support.
 
-`gnat-inspect.el'
-     Provides an experimental interface to the experimental
-     multi-language cross-reference tool `gnatinspect' from AdaCore,
-     which will supercede `gnatxref'.
+'gpr-query.el'
+     Provides an interface to the external multi-language
+     cross-reference tool 'gpr_query'.
 
      Implements the Ada mode cross-reference functions for the
-     `gnatinspect' backend, and a minor mode providing similar
-     functions for C++.
-
+     'gpr_query' backend, and a minor mode providing similar functions
+     for C++.
 
 \1f
 File: ada-mode.info,  Node: Wisi,  Prev: GNAT core,  Up: Package organization
@@ -1749,42 +1863,63 @@ File: ada-mode.info,  Node: Wisi,  Prev: GNAT core,  Up: Package organization
 14.2.4 Wisi
 -----------
 
-The "wisi" parser. "wisi" used to be an acronym, but now it's just a
+The "wisi" parser.  "wisi" used to be an acronym, but now it's just a
 name.
 
-`wisi.el'
+'wisi.el'
      Implements the lexer, the main parser driver, parser actions that
      cache parser information in text properties, utilities for
      indenting and navigating using the cached information, and general
      setup.
 
-`wisi-compile.el'
-     Implements the parse table compiler. `wisi-generate.exe' processes
-     the grammar source `*.wy' into an elisp source representation of a
-     parse table `*-wy.el'. That is compiled into an internal structure
-     containing the state transitions and executable actions. The
+'wisi-compile.el'
+     Implements the parse table compiler.  'wisi-generate.exe' processes
+     the grammar source '*.wy' into an elisp source representation of a
+     parse table '*-wy.el'.  That is compiled into an internal structure
+     containing the state transitions and executable actions.  The
      actions can be any elisp form; the intent is that they be calls to
-     the action functions provided by `wisi.el'. `wisi-compile.el' uses
-     some features provided by `semantic'.
+     the action functions provided by 'wisi.el'.  'wisi-compile.el' uses
+     some features provided by 'semantic'.
 
-`wisi-parse.el'
+'wisi-parse.el'
      Implements the generalized LALR parser.
 
 \1f
-File: ada-mode.info,  Node: OpenToken,  Prev: Package organization,  Up: Developer overview
+File: ada-mode.info,  Node: OpenToken,  Next: ELPA,  Prev: Package organization,  Up: Developer overview
 
 14.3 OpenToken
 ==============
 
-Ada mode uses the OpenToken tool `wisi-generate.exe' to process the
-grammar sources into elisp parse tables. See
-`http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html' for
-current information about which version of OpenToken is required, and
-how to get it.
+Ada mode uses the OpenToken tool 'wisi-generate.exe' to process the
+grammar sources into elisp parse tables.  See
+<http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html> for current
+information about which version of OpenToken is required, and how to get
+it.
 
-   The Makefile variable `WISI_OPENTOKEN' gives the path to the build
+   The Makefile variable 'WISI_OPENTOKEN' gives the path to the build
 directory for OpenToken; you probably need to override it with an
-external environment variable or on the `make' command line.
+external environment variable or on the 'make' command line.
+
+\1f
+File: ada-mode.info,  Node: ELPA,  Prev: OpenToken,  Up: Developer overview
+
+14.4 ELPA
+=========
+
+Ada mode is published via the Gnu ELPA archive.  To test a new version
+of Ada mode, we use a local Gnu ELPA archive.  That requires fetching
+Gnu ELPA via git:
+
+     cd /Projects
+     git clone git://git.savannah.gnu.org/emacs/elpa.git
+
+   If you have an Emacs Savannah developer account, you can use:
+
+     cd /Projects
+     git clone <login>@git.savannah.gnu.org/emacs/elpa.git
+
+   'build/Makefile' contains targets for copying Ada mode source to the
+elpa workspace, and for building the elpa archive there.
 
 \1f
 File: ada-mode.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: Developer overview,  Up: Top
@@ -1795,7 +1930,7 @@ Appendix A GNU Free Documentation License
                      Version 1.3, 3 November 2008
 
      Copyright (C) 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc.
-     `http://fsf.org/'
+     <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
      of this license document, but changing it is not allowed.
@@ -1820,21 +1955,21 @@ Appendix A GNU Free Documentation License
      free program should come with manuals providing the same freedoms
      that the software does.  But this License is not limited to
      software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
+     of subject matter or whether it is published as a printed book.  We
+     recommend this License principally for works whose purpose is
      instruction or reference.
 
   1. APPLICABILITY AND DEFINITIONS
 
      This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
+     that contains a notice placed by the copyright holder saying it can
+     be distributed under the terms of this License.  Such a notice
      grants a world-wide, royalty-free license, unlimited in duration,
      to use that work under the conditions stated herein.  The
      "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
+     of the public is a licensee, and is addressed as "you".  You accept
+     the license if you copy, modify or distribute the work in a way
+     requiring permission under copyright law.
 
      A "Modified Version" of the Document means any work containing the
      Document or a portion of it, either copied verbatim, or with
@@ -1852,12 +1987,12 @@ Appendix A GNU Free Documentation License
      regarding them.
 
      The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
+     titles are designated, as being those of Invariant Sections, in the
+     notice that says that the Document is released under this License.
+     If a section does not fit the above definition of Secondary then it
+     is not allowed to be designated as Invariant.  The Document may
+     contain zero Invariant Sections.  If the Document does not identify
+     any Invariant Sections then there are none.
 
      The "Cover Texts" are certain short passages of text that are
      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -1868,27 +2003,27 @@ Appendix A GNU Free Documentation License
      A "Transparent" copy of the Document means a machine-readable copy,
      represented in a format whose specification is available to the
      general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
+     straightforwardly with generic text editors or (for images composed
+     of pixels) generic paint programs or (for drawings) some widely
+     available drawing editor, and that is suitable for input to text
+     formatters or for automatic translation to a variety of formats
+     suitable for input to text formatters.  A copy made in an otherwise
+     Transparent file format whose markup, or absence of markup, has
+     been arranged to thwart or discourage subsequent modification by
+     readers is not Transparent.  An image format is not Transparent if
+     used for any substantial amount of text.  A copy that is not
+     "Transparent" is called "Opaque".
 
      Examples of suitable formats for Transparent copies include plain
      ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
+     SGML or XML using a publicly available DTD, and standard-conforming
+     simple HTML, PostScript or PDF designed for human modification.
+     Examples of transparent image formats include PNG, XCF and JPG.
+     Opaque formats include proprietary formats that can be read and
+     edited only by proprietary word processors, SGML or XML for which
+     the DTD and/or processing tools are not generally available, and
+     the machine-generated HTML, PostScript or PDF produced by some word
+     processors for output purposes only.
 
      The "Title Page" means, for a printed book, the title page itself,
      plus such following pages as are needed to hold, legibly, the
@@ -1926,8 +2061,8 @@ Appendix A GNU Free Documentation License
      may not use technical measures to obstruct or control the reading
      or further copying of the copies you make or distribute.  However,
      you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
+     distribute a large enough number of copies you must also follow the
+     conditions in section 3.
 
      You may also lend copies, under the same conditions stated above,
      and you may publicly display copies.
@@ -1941,12 +2076,11 @@ Appendix A GNU Free Documentation License
      these Cover Texts: Front-Cover Texts on the front cover, and
      Back-Cover Texts on the back cover.  Both covers must also clearly
      and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
+     front cover must present the full title with all words of the title
+     equally prominent and visible.  You may add other material on the
+     covers in addition.  Copying with changes limited to the covers, as
+     long as they preserve the title of the Document and satisfy these
+     conditions, can be treated as verbatim copying in other respects.
 
      If the required texts for either cover are too voluminous to fit
      legibly, you should put the first ones listed (as many as fit
@@ -1954,40 +2088,39 @@ Appendix A GNU Free Documentation License
      adjacent pages.
 
      If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
+     numbering more than 100, you must either include a machine-readable
+     Transparent copy along with each Opaque copy, or state in or with
+     each Opaque copy a computer-network location from which the general
+     network-using public has access to download using public-standard
+     network protocols a complete Transparent copy of the Document, free
+     of added material.  If you use the latter option, you must take
+     reasonably prudent steps, when you begin distribution of Opaque
+     copies in quantity, to ensure that this Transparent copy will
+     remain thus accessible at the stated location until at least one
+     year after the last time you distribute an Opaque copy (directly or
+     through your agents or retailers) of that edition to the public.
 
      It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
+     the Document well before redistributing any large number of copies,
+     to give them a chance to provide you with an updated version of the
+     Document.
 
   4. MODIFICATIONS
 
      You may copy and distribute a Modified Version of the Document
      under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
+     release the Modified Version under precisely this License, with the
+     Modified Version filling the role of the Document, thus licensing
+     distribution and modification of the Modified Version to whoever
+     possesses a copy of it.  In addition, you must do these things in
+     the Modified Version:
 
        A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
+          distinct from that of the Document, and from those of previous
+          versions (which should, if there were any, be listed in the
+          History section of the Document).  You may use the same title
+          as a previous version if the original publisher of that
+          version gives permission.
 
        B. List on the Title Page, as authors, one or more persons or
           entities responsible for authorship of the modifications in
@@ -2017,31 +2150,30 @@ Appendix A GNU Free Documentation License
 
        I. Preserve the section Entitled "History", Preserve its Title,
           and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
+          authors, and publisher of the Modified Version as given on the
+          Title Page.  If there is no section Entitled "History" in the
+          Document, create one stating the title, year, authors, and
+          publisher of the Document as given on its Title Page, then add
+          an item describing the Modified Version as stated in the
+          previous sentence.
 
        J. Preserve the network location, if any, given in the Document
           for public access to a Transparent copy of the Document, and
           likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
+          previous versions it was based on.  These may be placed in the
+          "History" section.  You may omit a network location for a work
+          that was published at least four years before the Document
+          itself, or if the original publisher of the version it refers
+          to gives permission.
 
        K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
+          Preserve the Title of the section, and preserve in the section
+          all the substance and tone of each of the contributor
           acknowledgements and/or dedications given therein.
 
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
+       L. Preserve all the Invariant Sections of the Document, unaltered
+          in their text and in their titles.  Section numbers or the
+          equivalent are not considered part of the section titles.
 
        M. Delete any section Entitled "Endorsements".  Such a section
           may not be included in the Modified Version.
@@ -2054,11 +2186,11 @@ Appendix A GNU Free Documentation License
 
      If the Modified Version includes new front-matter sections or
      appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
+     material copied from the Document, you may at your option designate
+     some or all of these sections as invariant.  To do this, add their
+     titles to the list of Invariant Sections in the Modified Version's
+     license notice.  These titles must be distinct from any other
+     section titles.
 
      You may add a section Entitled "Endorsements", provided it contains
      nothing but endorsements of your Modified Version by various
@@ -2067,15 +2199,15 @@ Appendix A GNU Free Documentation License
      definition of a standard.
 
      You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
+     and a passage of up to 25 words as a Back-Cover Text, to the end of
+     the list of Cover Texts in the Modified Version.  Only one passage
+     of Front-Cover Text and one of Back-Cover Text may be added by (or
+     through arrangements made by) any one entity.  If the Document
+     already includes a cover text for the same cover, previously added
+     by you or by arrangement made by the same entity you are acting on
+     behalf of, you may not add another; but you may replace the old
+     one, on explicit permission from the previous publisher that added
+     the old one.
 
      The author(s) and publisher(s) of the Document do not by this
      License give permission to use their names for publicity for or to
@@ -2085,8 +2217,8 @@ Appendix A GNU Free Documentation License
 
      You may combine the Document with other documents released under
      this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
+     modified versions, provided that you include in the combination all
+     of the Invariant Sections of all of the original documents,
      unmodified, and list them all as Invariant Sections of your
      combined work in its license notice, and that you preserve all
      their Warranty Disclaimers.
@@ -2113,20 +2245,20 @@ Appendix A GNU Free Documentation License
      documents released under this License, and replace the individual
      copies of this License in the various documents with a single copy
      that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
+     rules of this License for verbatim copying of each of the documents
+     in all other respects.
 
      You may extract a single document from such a collection, and
      distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
+     a copy of this License into the extracted document, and follow this
+     License in all other respects regarding verbatim copying of that
+     document.
 
   7. AGGREGATION WITH INDEPENDENT WORKS
 
      A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     storage or distribution medium, is called an "aggregate" if the
+     separate and independent documents or works, in or on a volume of a
+     storage or distribution medium, is called an "aggregate" if the
      copyright resulting from the compilation is not used to limit the
      legal rights of the compilation's users beyond what the individual
      works permit.  When the Document is included in an aggregate, this
@@ -2171,8 +2303,8 @@ Appendix A GNU Free Documentation License
 
      However, if you cease all violation of this License, then your
      license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
+     provisionally, unless and until the copyright holder explicitly and
+     finally terminates your license, and (b) permanently, if the
      copyright holder fails to notify you of the violation by some
      reasonable means prior to 60 days after the cessation.
 
@@ -2184,33 +2316,33 @@ Appendix A GNU Free Documentation License
      after your receipt of the notice.
 
      Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
+     the licenses of parties who have received copies or rights from you
+     under this License.  If your rights have been terminated and not
+     permanently reinstated, receipt of a copy of some or all of the
+     same material does not give you any rights to use it.
 
- 10. FUTURE REVISIONS OF THIS LICENSE
 10. FUTURE REVISIONS OF THIS LICENSE
 
      The Free Software Foundation may publish new, revised versions of
      the GNU Free Documentation License from time to time.  Such new
      versions will be similar in spirit to the present version, but may
      differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
+     <http://www.gnu.org/copyleft/>.
 
      Each version of the License is given a distinguishing version
      number.  If the Document specifies that a particular numbered
      version of this License "or any later version" applies to it, you
      have the option of following the terms and conditions either of
      that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
+     published (not as a draft) by the Free Software Foundation.  If the
+     Document does not specify a version number of this License, you may
+     choose any version ever published (not as a draft) by the Free
+     Software Foundation.  If the Document specifies that a proxy can
+     decide which future versions of this License can be used, that
      proxy's public statement of acceptance of a version permanently
      authorizes you to choose that version for the Document.
 
- 11. RELICENSING
 11. RELICENSING
 
      "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
      World Wide Web server that publishes copyrightable works and also
@@ -2240,7 +2372,6 @@ Appendix A GNU Free Documentation License
      site under CC-BY-SA on the same site at any time before August 1,
      2009, provided the MMC is eligible for relicensing.
 
-
 ADDENDUM: How to use this License for your documents
 ====================================================
 
@@ -2257,7 +2388,7 @@ notices just after the title page:
        Free Documentation License''.
 
    If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
+Texts, replace the "with...Texts."  line with this:
 
          with the Invariant Sections being LIST THEIR TITLES, with
          the Front-Cover Texts being LIST, and with the Back-Cover Texts
@@ -2268,9 +2399,9 @@ combination of the three, merge those two alternatives to suit the
 situation.
 
    If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.
 
 \1f
 File: ada-mode.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
@@ -2281,67 +2412,72 @@ Index
 \0\b[index\0\b]
 * Menu:
 
-* ada-case-adjust-at-point:              Automatic casing.     (line 65)
-* ada-case-create-exception:             Automatic casing.     (line 47)
+* ada-case-adjust-at-point:              Automatic casing.     (line 64)
+* ada-case-create-exception:             Automatic casing.     (line 48)
 * ada-find-other-file:                   Moving Through Ada Code.
-                                                               (line 31)
+                                                               (line 32)
 * ada-goto-declaration:                  Moving Through Ada Code.
                                                                (line 14)
 * ada-goto-declaration-parent:           Moving Through Ada Code.
                                                                (line 18)
 * ada-next-statement-keyword:            Moving Through Ada Code.
-                                                               (line 21)
+                                                               (line 22)
 * ada-prev-statement-keyword:            Moving Through Ada Code.
-                                                               (line 26)
+                                                               (line 27)
+* ada-show-overridden:                   Moving Through Ada Code.
+                                                               (line 65)
 * ada-show-overriding:                   Moving Through Ada Code.
-                                                               (line 56)
+                                                               (line 60)
 * ada-show-references:                   Moving Through Ada Code.
-                                                               (line 51)
+                                                               (line 55)
 * comment-dwim:                          Comment Handling.     (line 10)
 * fill-paragraph:                        Comment Handling.     (line 18)
 
 
 \1f
 Tag Table:
-Node: Top\7f1031
-Node: Overview\7f2675
-Node: Installation\7f3984
-Node: gnatinspect\7f4607
-Node: Customization\7f5280
-Node: Non-standard file names\7f5761
-Node: Other compiler\7f7595
-Node: Other cross-reference\7f8174
-Node: Other customization\7f8892
-Node: Compiling Executing\7f11155
-Node: Compile commands\7f11889
-Node: Compiling Examples\7f14621
-Node: No project files\7f15453
-Node: Set compiler options\7f20838
-Node: Set source search path\7f22796
-Node: Use GNAT project file\7f25245
-Node: Use multiple GNAT project files\7f28018
-Node: Use a Makefile\7f30735
-Node: Compiler errors\7f32049
-Node: Project files\7f32863
-Node: Project file overview\7f33700
-Node: Project file variables\7f35055
-Node: Moving Through Ada Code\7f37979
-Node: Identifier completion\7f40087
-Node: Indentation\7f41048
-Node: Statement skeletons\7f44731
-Node: Aligning code\7f45932
-Node: Automatic casing\7f46876
-Node: Comment Handling\7f49600
-Node: Key summary\7f50118
-Node: Developer overview\7f52236
-Node: Directory structure\7f52567
-Node: Package organization\7f55955
-Node: Ada mode\7f56190
-Node: gpr mode\7f58393
-Node: GNAT core\7f58675
-Node: Wisi\7f59621
-Node: OpenToken\7f60583
-Node: GNU Free Documentation License\7f61171
-Node: Index\7f86351
+Node: Top\7f945
+Node: Overview\7f2576
+Node: Installation\7f3787
+Node: Ada Reference Manual\7f4753
+Node: gpr_query\7f5029
+Node: Upgrading\7f6094
+Node: Customization\7f6666
+Node: Non-standard file names\7f7148
+Node: Other compiler\7f8989
+Node: Other cross-reference\7f9568
+Node: Other customization\7f10503
+Node: Compiling Executing\7f13140
+Node: Compile commands\7f13875
+Node: Compiling Examples\7f16613
+Node: No project files\7f17445
+Node: Set compiler options\7f22811
+Node: Set source search path\7f24773
+Node: Use GNAT project file\7f27226
+Node: Use multiple GNAT project files\7f30000
+Node: Use a Makefile\7f32720
+Node: Compiler errors\7f34035
+Node: Project files\7f34852
+Node: Project file overview\7f35879
+Node: Project file variables\7f37407
+Node: Moving Through Ada Code\7f41037
+Node: Identifier completion\7f43736
+Node: Indentation\7f44698
+Node: Statement skeletons\7f48750
+Node: Aligning code\7f50535
+Node: Automatic casing\7f51480
+Node: Comment Handling\7f54184
+Node: Key summary\7f54703
+Node: Developer overview\7f57330
+Node: Directory structure\7f57670
+Node: Package organization\7f61156
+Node: Ada mode\7f61391
+Node: gpr mode\7f63587
+Node: GNAT core\7f63870
+Node: Wisi\7f64704
+Node: OpenToken\7f65671
+Node: ELPA\7f66273
+Node: GNU Free Documentation License\7f66883
+Node: Index\7f92044
 \1f
 End Tag Table