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: gnatinspect, Next: Upgrading, Prev: Installation, Up: Installation
+File: ada-mode.info, Node: Ada Reference Manual, Next: gpr_query, Prev: Installation, Up: Installation
+
+2.1 Ada Reference Manual
+========================
-2.1 gnatinspect
-===============
+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: gpr_query, Next: Upgrading, Prev: Ada Reference Manual, Up: Installation
-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'.
+2.2 gpr_query
+=============
- 'gnatinspect' is distributed as part of 'gnatcoll'. Ada mode
-requires the very latest version, in 'gnatcoll 1.6' distributed with
-GNATPro 7.2. 'gnatcoll 1.6' must be compiled with GNATPro 7.2.
+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).
- To build 'gnatinspect', assuming gnat-7.2 is installed in
-'/usr/gnat-7.2', and gnat-7.2 is in PATH:
+ 'gpr_query' requires the 'gnatcoll' library provided by AdaCore. Ada
+mode requires the very latest version 'gnatcoll 1.7w' distributed with
+GNAT GPL 2014.
- tar xf ~/Downloads/gnatcoll-1.6-src.tgz
- cd gnatcoll-1.6-src
- ./configure --prefix=/usr/gnat-7.2
- make Gnatcoll_Build=Debug
- sudo make Gnatcoll_Build=Debug install
+ To build 'gpr_query', assuming GNAT GPL 2014 is installed in
+'/usr/gnat-gpl-2014', and '/usr/gnat-gpl-2014/bin' is in PATH:
+
+ tar xf ~/Downloads/gnatcoll-1.7x-src.tgz
+ cd gnatcoll-1.7w-src
+ ./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 gnatinspect:
+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: gnatinspect, Up: Installation
+File: ada-mode.info, Node: Upgrading, Prev: gpr_query, Up: Installation
-2.2 Upgrading from previous versions
+2.3 Upgrading from previous versions
====================================
See the file NEWS for more details; here we summarize only important
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
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
-which-func unless they are loaded first.
+ada-mode does not set up the Ada-specific features of imenu and speedbar
+unless imenu is loaded first.
(setq-default indent-tabs-mode nil)
(electric-pair-mode 1)
- (require 'imenu)
- (require 'which-func)
+ (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)
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
+word fragment (or "substring"); part of a word between two underscores
or word boundary.
For example:
'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.
+ '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.
-'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
+ 'gpr_query' backend, and a minor mode providing similar functions
for C++.
\1f
Node: Top\7f945
Node: Overview\7f2576
Node: Installation\7f3787
-Node: gnatinspect\7f4675
-Node: Upgrading\7f5636
-Node: Customization\7f6210
-Node: Non-standard file names\7f6692
-Node: Other compiler\7f8533
-Node: Other cross-reference\7f9112
-Node: Other customization\7f9831
-Node: Compiling Executing\7f12301
-Node: Compile commands\7f13036
-Node: Compiling Examples\7f15774
-Node: No project files\7f16606
-Node: Set compiler options\7f21972
-Node: Set source search path\7f23934
-Node: Use GNAT project file\7f26387
-Node: Use multiple GNAT project files\7f29161
-Node: Use a Makefile\7f31881
-Node: Compiler errors\7f33196
-Node: Project files\7f34013
-Node: Project file overview\7f35040
-Node: Project file variables\7f36568
-Node: Moving Through Ada Code\7f40198
-Node: Identifier completion\7f42897
-Node: Indentation\7f43859
-Node: Statement skeletons\7f47911
-Node: Aligning code\7f49696
-Node: Automatic casing\7f50641
-Node: Comment Handling\7f53345
-Node: Key summary\7f53864
-Node: Developer overview\7f56491
-Node: Directory structure\7f56831
-Node: Package organization\7f60317
-Node: Ada mode\7f60552
-Node: gpr mode\7f62748
-Node: GNAT core\7f63031
-Node: Wisi\7f63977
-Node: OpenToken\7f64944
-Node: ELPA\7f65546
-Node: GNU Free Documentation License\7f66156
-Node: Index\7f91317
+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