Mercurial > emacs
annotate lisp/progmodes/ada-mode.el @ 95322:54121bb9b5ad
(Problems): Remove fixed issues.
(vc-expand-dirs): Avoid returning directories.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Mon, 26 May 2008 23:53:33 +0000 |
parents | bcc553c768f9 |
children | b6ac850e9d2b |
rev | line source |
---|---|
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
1 ;;; ada-mode.el --- major-mode for editing Ada sources |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2 |
64699
629afbe74e61
Update copyright for release of 22.1 for progmodes directory.
Nick Roberts <nickrob@snap.net.nz>
parents:
64434
diff
changeset
|
3 ;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
79717 | 4 ;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
6 ;; Author: Rolf Ebert <ebert@inf.enst.fr> |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
7 ;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
8 ;; Emmanuel Briot <briot@gnat.com> |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
9 ;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org> |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
10 ;; Keywords: languages ada |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
11 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
12 ;; This file is part of GNU Emacs. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
13 |
94673
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
92148
diff
changeset
|
14 ;; GNU Emacs is free software: you can redistribute it and/or modify |
10705 | 15 ;; it under the terms of the GNU General Public License as published by |
94673
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
92148
diff
changeset
|
16 ;; the Free Software Foundation, either version 3 of the License, or |
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
92148
diff
changeset
|
17 ;; (at your option) any later version. |
10705 | 18 |
38401 | 19 ;; GNU Emacs is distributed in the hope that it will be useful, |
10705 | 20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
22 ;; GNU General Public License for more details. | |
23 | |
24 ;; You should have received a copy of the GNU General Public License | |
94673
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
92148
diff
changeset
|
25 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
26 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
27 ;;; Commentary: |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
28 ;; This mode is a major mode for editing Ada code. This is a major |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
29 ;; rewrite of the file packaged with Emacs-20. The Ada mode is |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
30 ;; composed of four Lisp files: ada-mode.el, ada-xref.el, ada-prj.el |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
31 ;; and ada-stmt.el. Only this file (ada-mode.el) is completely |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
32 ;; independent from the GNU Ada compiler GNAT, distributed by Ada |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
33 ;; Core Technologies. All the other files rely heavily on features |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
34 ;; provided only by GNAT. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
35 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
36 ;; Note: this mode will not work with Emacs 19. If you are on a VMS |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
37 ;; system, where the latest version of Emacs is 19.28, you will need |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
38 ;; another file, called ada-vms.el, that provides some required |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
39 ;; functions. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
40 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
41 ;;; Usage: |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
42 ;; Emacs should enter Ada mode automatically when you load an Ada file. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
43 ;; By default, the valid extensions for Ada files are .ads, .adb or .ada |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
44 ;; If the ada-mode does not start automatically, then simply type the |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
45 ;; following command : |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
46 ;; M-x ada-mode |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
47 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
48 ;; By default, ada-mode is configured to take full advantage of the GNAT |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
49 ;; compiler (the menus will include the cross-referencing features,...). |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
50 ;; If you are using another compiler, you might want to set the following |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
51 ;; variable in your .emacs (Note: do not set this in the ada-mode-hook, it |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
52 ;; won't work) : |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
53 ;; (setq ada-which-compiler 'generic) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
54 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
55 ;; This mode requires find-file.el to be present on your system. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
56 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
57 ;;; History: |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
58 ;; The first Ada mode for GNU Emacs was written by V. Broman in |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
59 ;; 1985. He based his work on the already existing Modula-2 mode. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
60 ;; This was distributed as ada.el in versions of Emacs prior to 19.29. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
61 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
62 ;; Lynn Slater wrote an extensive Ada mode in 1989. It consisted of |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
63 ;; several files with support for dired commands and other nice |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
64 ;; things. It is currently available from the PAL |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
65 ;; (wuarchive.wustl.edu:/languages/ada) as ada-mode-1.06a.tar.Z. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
66 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
67 ;; The probably very first Ada mode (called electric-ada.el) was |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
68 ;; written by Steven D. Litvintchouk and Steven M. Rosen for the |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
69 ;; Gosling Emacs. L. Slater based his development on ada.el and |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
70 ;; electric-ada.el. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
71 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
72 ;; A complete rewrite by M. Heritsch and R. Ebert has been done. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
73 ;; Some ideas from the Ada mode mailing list have been |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
74 ;; added. Some of the functionality of L. Slater's mode has not |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
75 ;; (yet) been recoded in this new mode. Perhaps you prefer sticking |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
76 ;; to his version. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
77 ;; |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
78 ;; A complete rewrite for Emacs-20 / GNAT-3.11 has been done by Ada Core |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
79 ;; Technologies. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
80 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
81 ;;; Credits: |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
82 ;; Many thanks to John McCabe <john@assen.demon.co.uk> for sending so |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
83 ;; many patches included in this package. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
84 ;; Christian Egli <Christian.Egli@hcsd.hac.com>: |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
85 ;; ada-imenu-generic-expression |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
86 ;; Many thanks also to the following persons that have contributed |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
87 ;; to the ada-mode |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
88 ;; Philippe Waroquiers (PW) <philippe@cfmu.eurocontrol.be> in particular, |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
89 ;; woodruff@stc.llnl.gov (John Woodruff) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
90 ;; jj@ddci.dk (Jesper Joergensen) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
91 ;; gse@ocsystems.com (Scott Evans) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
92 ;; comar@gnat.com (Cyrille Comar) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
93 ;; stephen.leake@gsfc.nasa.gov (Stephen Leake) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
94 ;; robin-reply@reagans.org |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
95 ;; and others for their valuable hints. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
96 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
97 ;;; Code: |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
98 ;; Note: Every function in this package is compiler-independent. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
99 ;; The names start with ada- |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
100 ;; The variables that the user can edit can all be modified through |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
101 ;; the customize mode. They are sorted in alphabetical order in this |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
102 ;; file. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
103 |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
104 ;; Supported packages. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
105 ;; This package supports a number of other Emacs modes. These other modes |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
106 ;; should be loaded before the ada-mode, which will then setup some variables |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
107 ;; to improve the support for Ada code. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
108 ;; Here is the list of these modes: |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
109 ;; `which-function-mode': Display the name of the subprogram the cursor is |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
110 ;; in in the mode line. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
111 ;; `outline-mode': Provides the capability to collapse or expand the code |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
112 ;; for specific language constructs, for instance if you want to hide the |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
113 ;; code corresponding to a subprogram |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
114 ;; `align': This mode is now provided with Emacs 21, but can also be |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
115 ;; installed manually for older versions of Emacs. It provides the |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
116 ;; capability to automatically realign the selected region (for instance |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
117 ;; all ':=', ':' and '--' will be aligned on top of each other. |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
118 ;; `imenu': Provides a menu with the list of entities defined in the current |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
119 ;; buffer, and an easy way to jump to any of them |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
120 ;; `speedbar': Provides a separate file browser, and the capability for each |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
121 ;; file to see the list of entities defined in it and to jump to them |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
122 ;; easily |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
123 ;; `abbrev-mode': Provides the capability to define abbreviations, which |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
124 ;; are automatically expanded when you type them. See the Emacs manual. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
125 |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
126 (require 'find-file nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
127 (require 'align nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
128 (require 'which-func nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
129 (require 'compile nil t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
130 |
65223
554ac3736464
(compile-auto-highlight, skeleton-further-elements): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64717
diff
changeset
|
131 (defvar compile-auto-highlight) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
132 (defvar ispell-check-comments) |
65223
554ac3736464
(compile-auto-highlight, skeleton-further-elements): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64717
diff
changeset
|
133 (defvar skeleton-further-elements) |
554ac3736464
(compile-auto-highlight, skeleton-further-elements): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64717
diff
changeset
|
134 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
135 (defun ada-mode-version () |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
136 "Return Ada mode version." |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
137 (interactive) |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
138 (let ((version-string "3.7")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
139 (if (interactive-p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
140 (message version-string) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
141 version-string))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
142 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
143 (defvar ada-mode-hook nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
144 "*List of functions to call when Ada mode is invoked. |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
145 This hook is automatically executed after the `ada-mode' is |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
146 fully loaded. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
147 This is a good place to add Ada environment specific bindings.") |
18120 | 148 |
149 (defgroup ada nil | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
150 "Major mode for editing and compiling Ada source in Emacs." |
66963
a11fdee52c05
Add :link (custom-group-link font-lock-faces) to defgroup.
Juri Linkov <juri@jurta.org>
parents:
65584
diff
changeset
|
151 :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces) |
18120 | 152 :group 'languages) |
153 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
154 (defcustom ada-auto-case t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
155 "*Non-nil means automatically change case of preceding word while typing. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
156 Casing is done according to `ada-case-keyword', `ada-case-identifier' |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
157 and `ada-case-attribute'." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
158 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
159 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
160 (defcustom ada-broken-decl-indent 0 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
161 "*Number of columns to indent a broken declaration. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
162 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
163 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
164 declare |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
165 A, |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
166 >>>>>B : Integer;" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
167 :type 'integer :group 'ada) |
18120 | 168 |
169 (defcustom ada-broken-indent 2 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
170 "*Number of columns to indent the continuation of a broken line. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
171 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
172 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
173 My_Var : My_Type := (Field1 => |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
174 >>>>>>>>>Value);" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
175 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
176 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
177 (defcustom ada-continuation-indent ada-broken-indent |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
178 "*Number of columns to indent the continuation of broken lines in parenthesis. |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
179 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
180 An example is : |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
181 Func (Param1, |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
182 >>>>>Param2);" |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
183 :type 'integer :group 'ada) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
184 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
185 (defcustom ada-case-attribute 'ada-capitalize-word |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
186 "*Function to call to adjust the case of Ada attributes. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
187 It may be `downcase-word', `upcase-word', `ada-loose-case-word', |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
188 `ada-capitalize-word' or `ada-no-auto-case'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
189 :type '(choice (const downcase-word) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
190 (const upcase-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
191 (const ada-capitalize-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
192 (const ada-loose-case-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
193 (const ada-no-auto-case)) |
18120 | 194 :group 'ada) |
10705 | 195 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
196 (defcustom ada-case-exception-file |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
197 (list (convert-standard-filename' "~/.emacs_case_exceptions")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
198 "*List of special casing exceptions dictionaries for identifiers. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
199 The first file is the one where new exceptions will be saved by Emacs |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
200 when you call `ada-create-case-exception'. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
201 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
202 These files should contain one word per line, that gives the casing |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
203 to be used for that word in Ada files. If the line starts with the |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
204 character *, then the exception will be used for substrings that either |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
205 start at the beginning of a word or after a _ character, and end either |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
206 at the end of the word or at a _ character. Each line can be terminated |
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
207 by a comment." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
208 :type '(repeat (file)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
209 :group 'ada) |
18120 | 210 |
211 (defcustom ada-case-keyword 'downcase-word | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
212 "*Function to call to adjust the case of an Ada keywords. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
213 It may be `downcase-word', `upcase-word', `ada-loose-case-word' or |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
214 `ada-capitalize-word'." |
18120 | 215 :type '(choice (const downcase-word) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
216 (const upcase-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
217 (const ada-capitalize-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
218 (const ada-loose-case-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
219 (const ada-no-auto-case)) |
18120 | 220 :group 'ada) |
221 | |
222 (defcustom ada-case-identifier 'ada-loose-case-word | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
223 "*Function to call to adjust the case of an Ada identifier. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
224 It may be `downcase-word', `upcase-word', `ada-loose-case-word' or |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
225 `ada-capitalize-word'." |
18120 | 226 :type '(choice (const downcase-word) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
227 (const upcase-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
228 (const ada-capitalize-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
229 (const ada-loose-case-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
230 (const ada-no-auto-case)) |
18120 | 231 :group 'ada) |
232 | |
233 (defcustom ada-clean-buffer-before-saving t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
234 "*Non-nil means remove trailing spaces and untabify the buffer before saving." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
235 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
236 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
237 (defcustom ada-indent 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
238 "*Size of Ada indentation. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
239 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
240 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
241 procedure Foo is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
242 begin |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
243 >>>>>>>>>>null;" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
244 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
245 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
246 (defcustom ada-indent-after-return t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
247 "*Non-nil means automatically indent after RET or LFD." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
248 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
249 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
250 (defcustom ada-indent-align-comments t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
251 "*Non-nil means align comments on previous line comments, if any. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
252 If nil, indentation is calculated as usual. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
253 Note that indentation is calculated only if `ada-indent-comment-as-code' is t. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
254 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
255 For instance: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
256 A := 1; -- A multi-line comment |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
257 -- aligned if ada-indent-align-comments is t" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
258 :type 'boolean :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
259 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
260 (defcustom ada-indent-comment-as-code t |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
261 "*Non-nil means indent comment lines as code. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
262 A nil value means do not auto-indent comments." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
263 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
264 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
265 (defcustom ada-indent-handle-comment-special nil |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
266 "*Non-nil if comment lines should be handled specially inside parenthesis. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
267 By default, if the line that contains the open parenthesis has some |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
268 text following it, then the following lines will be indented in the |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
269 same column as this text. This will not be true if the first line is |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
270 a comment and `ada-indent-handle-comment-special' is t. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
271 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
272 type A is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
273 ( Value_1, -- common behavior, when not a comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
274 Value_2); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
275 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
276 type A is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
277 ( -- `ada-indent-handle-comment-special' is nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
278 Value_1, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
279 Value_2); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
280 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
281 type A is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
282 ( -- `ada-indent-handle-comment-special' is non-nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
283 Value_1, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
284 Value_2);" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
285 :type 'boolean :group 'ada) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
286 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
287 (defcustom ada-indent-is-separate t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
288 "*Non-nil means indent 'is separate' or 'is abstract' if on a single line." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
289 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
290 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
291 (defcustom ada-indent-record-rel-type 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
292 "*Indentation for 'record' relative to 'type' or 'use'. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
293 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
294 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
295 type A is |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
296 >>>>>>>>>>>record" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
297 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
298 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
299 (defcustom ada-indent-renames ada-broken-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
300 "*Indentation for renames relative to the matching function statement. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
301 If `ada-indent-return' is null or negative, the indentation is done relative to |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
302 the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used). |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
303 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
304 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
305 function A (B : Integer) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
306 return C; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
307 >>>renames Foo;" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
308 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
309 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
310 (defcustom ada-indent-return 0 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
311 "*Indentation for 'return' relative to the matching 'function' statement. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
312 If `ada-indent-return' is null or negative, the indentation is done relative to |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
313 the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used). |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
314 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
315 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
316 function A (B : Integer) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
317 >>>>>return C;" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
318 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
319 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
320 (defcustom ada-indent-to-open-paren t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
321 "*Non-nil means indent according to the innermost open parenthesis." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
322 :type 'boolean :group 'ada) |
18120 | 323 |
41012
39ee7e7e2200
(ada-fill-comment-prefix): GNAT wants 2 spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38446
diff
changeset
|
324 (defcustom ada-fill-comment-prefix "-- " |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
325 "*Text inserted in the first columns when filling a comment paragraph. |
41036
aaa6f44a1b96
(ada-fill-comment-prefix): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
41012
diff
changeset
|
326 Note: if you modify this variable, you will have to invoke `ada-mode' |
aaa6f44a1b96
(ada-fill-comment-prefix): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
41012
diff
changeset
|
327 again to take account of the new value." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
328 :type 'string :group 'ada) |
18120 | 329 |
330 (defcustom ada-fill-comment-postfix " --" | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
331 "*Text inserted at the end of each line when filling a comment paragraph. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
332 Used by `ada-fill-comment-paragraph-postfix'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
333 :type 'string :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
334 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
335 (defcustom ada-label-indent -4 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
336 "*Number of columns to indent a label. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
337 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
338 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
339 procedure Foo is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
340 begin |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
341 >>>>Label: |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
342 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
343 This is also used for <<..>> labels" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
344 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
345 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
346 (defcustom ada-language-version 'ada95 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
347 "*Ada language version; one of `ada83', `ada95', `ada2005'." |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
348 :type '(choice (const ada83) (const ada95) (const ada2005)) :group 'ada) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
349 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
350 (defcustom ada-move-to-declaration nil |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
351 "*Non-nil means `ada-move-to-start' moves to the subprogram declaration, not to 'begin'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
352 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
353 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
354 (defcustom ada-popup-key '[down-mouse-3] |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
355 "*Key used for binding the contextual menu. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
356 If nil, no contextual menu is available." |
35959 | 357 :type '(restricted-sexp :match-alternatives (stringp vectorp)) |
35263 | 358 :group 'ada) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
359 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
360 (defcustom ada-search-directories |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
361 (append '(".") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
362 (split-string (or (getenv "ADA_INCLUDE_PATH") "") ":") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
363 '("/usr/adainclude" "/usr/local/adainclude" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
364 "/opt/gnu/adainclude")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
365 "*Default list of directories to search for Ada files. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
366 See the description for the `ff-search-directories' variable. This variable |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
367 is the initial value of `ada-search-directories-internal'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
368 :type '(repeat (choice :tag "Directory" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
369 (const :tag "default" nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
370 (directory :format "%v"))) |
18120 | 371 :group 'ada) |
372 | |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
373 (defvar ada-search-directories-internal ada-search-directories |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
374 "Internal version of `ada-search-directories'. |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
375 Its value is the concatenation of the search path as read in the project file |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
376 and the standard runtime location, and the value of the user-defined |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
377 `ada-search-directories'.") |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
378 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
379 (defcustom ada-stmt-end-indent 0 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
380 "*Number of columns to indent the end of a statement on a separate line. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
381 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
382 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
383 if A = B |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
384 >>>>then" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
385 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
386 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
387 (defcustom ada-tab-policy 'indent-auto |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
388 "*Control the behavior of the TAB key. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
389 Must be one of : |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
390 `indent-rigidly' : always adds `ada-indent' blanks at the beginning of the line. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
391 `indent-auto' : use indentation functions in this file. |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
392 `always-tab' : do `indent-relative'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
393 :type '(choice (const indent-auto) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
394 (const indent-rigidly) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
395 (const always-tab)) |
18120 | 396 :group 'ada) |
10705 | 397 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
398 (defcustom ada-use-indent ada-broken-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
399 "*Indentation for the lines in a 'use' statement. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
400 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
401 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
402 use Ada.Text_IO, |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
403 >>>>Ada.Numerics;" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
404 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
405 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
406 (defcustom ada-when-indent 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
407 "*Indentation for 'when' relative to 'exception' or 'case'. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
408 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
409 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
410 case A is |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
411 >>>>when B =>" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
412 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
413 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
414 (defcustom ada-with-indent ada-broken-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
415 "*Indentation for the lines in a 'with' statement. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
416 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
417 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
418 with Ada.Text_IO, |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
419 >>>>Ada.Numerics;" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
420 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
421 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
422 (defcustom ada-which-compiler 'gnat |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
423 "*Name of the compiler to use. |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
424 This will determine what features are made available through the Ada mode. |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
425 The possible choices are: |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
426 `gnat': Use Ada Core Technologies' GNAT compiler. Add some cross-referencing |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
427 features. |
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
428 `generic': Use a generic compiler." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
429 :type '(choice (const gnat) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
430 (const generic)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
431 :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
432 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
433 |
10705 | 434 ;;; ---- end of user configurable variables |
435 | |
436 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
437 (defvar ada-body-suffixes '(".adb") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
438 "List of possible suffixes for Ada body files. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
439 The extensions should include a `.' if needed.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
440 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
441 (defvar ada-spec-suffixes '(".ads") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
442 "List of possible suffixes for Ada spec files. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
443 The extensions should include a `.' if needed.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
444 |
32300
5acb191f2a15
(ada-mode-menu): Add name to menu map.
Dave Love <fx@gnu.org>
parents:
30411
diff
changeset
|
445 (defvar ada-mode-menu (make-sparse-keymap "Ada") |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
446 "Menu for Ada mode.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
447 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
448 (defvar ada-mode-map (make-sparse-keymap) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
449 "Local keymap used for Ada mode.") |
10705 | 450 |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
451 (defvar ada-mode-extra-map (make-sparse-keymap) |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
452 "Keymap used for non-standard keybindings.") |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
453 |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
454 ;; default is C-c C-q because it's free in ada-mode-map |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
455 (defvar ada-mode-extra-prefix "\C-c\C-q" |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
456 "Prefix key to access `ada-mode-extra-map' functions.") |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
457 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
458 (defvar ada-mode-abbrev-table nil |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
459 "Local abbrev table for Ada mode.") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
460 |
10705 | 461 (defvar ada-mode-syntax-table nil |
462 "Syntax table to be used for editing Ada source code.") | |
463 | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
464 (defvar ada-mode-symbol-syntax-table nil |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
465 "Syntax table for Ada, where `_' is a word constituent.") |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
466 |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
467 (eval-when-compile |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
468 ;; These values are used in eval-when-compile expressions. |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
469 (defconst ada-83-string-keywords |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
470 '("abort" "abs" "accept" "access" "all" "and" "array" "at" "begin" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
471 "body" "case" "constant" "declare" "delay" "delta" "digits" "do" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
472 "else" "elsif" "end" "entry" "exception" "exit" "for" "function" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
473 "generic" "goto" "if" "in" "is" "limited" "loop" "mod" "new" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
474 "not" "null" "of" "or" "others" "out" "package" "pragma" "private" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
475 "procedure" "raise" "range" "record" "rem" "renames" "return" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
476 "reverse" "select" "separate" "subtype" "task" "terminate" "then" |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
477 "type" "use" "when" "while" "with" "xor") |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
478 "List of Ada 83 keywords. |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
479 Used to define `ada-*-keywords'.") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
480 |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
481 (defconst ada-95-string-keywords |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
482 '("abstract" "aliased" "protected" "requeue" "tagged" "until") |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
483 "List of keywords new in Ada 95. |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
484 Used to define `ada-*-keywords'.") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
485 |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
486 (defconst ada-2005-string-keywords |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
487 '("interface" "overriding" "synchronized") |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
488 "List of keywords new in Ada 2005. |
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
489 Used to define `ada-*-keywords.'")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
490 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
491 (defvar ada-ret-binding nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
492 "Variable to save key binding of RET when casing is activated.") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
493 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
494 (defvar ada-case-exception '() |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
495 "Alist of words (entities) that have special casing.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
496 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
497 (defvar ada-case-exception-substring '() |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
498 "Alist of substrings (entities) that have special casing. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
499 The substrings are detected for word constituant when the word |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
500 is not itself in `ada-case-exception', and only for substrings that |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
501 either are at the beginning or end of the word, or start after '_'.") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
502 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
503 (defvar ada-lfd-binding nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
504 "Variable to save key binding of LFD when casing is activated.") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
505 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
506 (defvar ada-other-file-alist nil |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
507 "Variable used by `find-file' to find the name of the other package. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
508 See `ff-other-file-alist'.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
509 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
510 (defvar ada-align-list |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
511 '(("[^:]\\(\\s-*\\):[^:]" 1 t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
512 ("[^=]\\(\\s-+\\)=[^=]" 1 t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
513 ("\\(\\s-*\\)use\\s-" 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
514 ("\\(\\s-*\\)--" 1)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
515 "Ada support for align.el <= 2.2. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
516 This variable provides regular expressions on which to align different lines. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
517 See `align-mode-alist' for more information.") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
518 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
519 (defvar ada-align-modes |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
520 '((ada-declaration |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
521 (regexp . "[^:]\\(\\s-*\\):[^:]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
522 (valid . (lambda() (not (ada-in-comment-p)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
523 (modes . '(ada-mode))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
524 (ada-assignment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
525 (regexp . "[^=]\\(\\s-+\\)=[^=]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
526 (valid . (lambda() (not (ada-in-comment-p)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
527 (modes . '(ada-mode))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
528 (ada-comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
529 (regexp . "\\(\\s-*\\)--") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
530 (modes . '(ada-mode))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
531 (ada-use |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
532 (regexp . "\\(\\s-*\\)use\\s-") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
533 (valid . (lambda() (not (ada-in-comment-p)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
534 (modes . '(ada-mode))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
535 ) |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
536 "Ada support for align.el >= 2.8. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
537 This variable defines several rules to use to align different lines.") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
538 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
539 (defconst ada-align-region-separate |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
540 (eval-when-compile |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
541 (concat |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
542 "^\\s-*\\($\\|\\(" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
543 "begin\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
544 "declare\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
545 "else\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
546 "end\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
547 "exception\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
548 "for\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
549 "function\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
550 "generic\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
551 "if\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
552 "is\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
553 "procedure\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
554 "record\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
555 "return\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
556 "type\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
557 "when" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
558 "\\)\\>\\)")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
559 "See the variable `align-region-separate' for more information.") |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
560 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
561 ;;; ---- Below are the regexp used in this package for parsing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
562 |
10705 | 563 (defconst ada-83-keywords |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
564 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
565 (concat "\\<" (regexp-opt ada-83-string-keywords t) "\\>")) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
566 "Regular expression matching Ada83 keywords.") |
10705 | 567 |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
568 (defconst ada-95-keywords |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
569 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
570 (concat "\\<" (regexp-opt |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
571 (append |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
572 ada-95-string-keywords |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
573 ada-83-string-keywords) t) "\\>")) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
574 "Regular expression matching Ada95 keywords.") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
575 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
576 (defconst ada-2005-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
577 (eval-when-compile |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
578 (concat "\\<" (regexp-opt |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
579 (append |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
580 ada-2005-string-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
581 ada-83-string-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
582 ada-95-string-keywords) t) "\\>")) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
583 "Regular expression matching Ada2005 keywords.") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
584 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
585 (defvar ada-keywords ada-2005-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
586 "Regular expression matching Ada keywords.") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
587 ;; FIXME: make this customizable |
10705 | 588 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
589 (defconst ada-ident-re |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
590 "\\(\\sw\\|[_.]\\)+" |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
591 "Regexp matching Ada (qualified) identifiers.") |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
592 |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
593 ;; "with" needs to be included in the regexp, to match generic subprogram parameters |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
594 ;; Similarly, we put '[not] overriding' on the same line with 'procedure' etc. |
10705 | 595 (defvar ada-procedure-start-regexp |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
596 (concat |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
597 "^[ \t]*\\(with[ \t]+\\)?\\(\\(not[ \t]+\\)?overriding[ \t]+\\)?\\(procedure\\|function\\|task\\)[ \t\n]+" |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
598 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
599 ;; subprogram name: operator ("[+/=*]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
600 "\\(" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
601 "\\(\"[^\"]+\"\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
602 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
603 ;; subprogram name: name |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
604 "\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
605 "\\(\\(\\sw\\|[_.]\\)+\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
606 "\\)") |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
607 "Regexp matching Ada subprogram start. |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
608 The actual start is at (match-beginning 4). The name is in (match-string 5).") |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
609 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
610 (defconst ada-name-regexp |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
611 "\\([a-zA-Z][a-zA-Z0-9_.']*[a-zA-Z0-9]\\)" |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
612 "Regexp matching a fully qualified name (including attribute).") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
613 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
614 (defconst ada-package-start-regexp |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
615 (concat "^[ \t]*\\(private[ \t]+\\)?\\(package\\)[ \t\n]+\\(body[ \t]*\\)?" ada-name-regexp) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
616 "Regexp matching start of package. |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
617 The package name is in (match-string 4).") |
10705 | 618 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
619 (defconst ada-compile-goto-error-file-linenr-re |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
620 "\\([-_.a-zA-Z0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
621 "Regexp matching filename:linenr[:column].") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
622 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
623 |
10705 | 624 ;;; ---- regexps for indentation functions |
625 | |
626 (defvar ada-block-start-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
627 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
628 (concat "\\<\\(" (regexp-opt '("begin" "declare" "else" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
629 "exception" "generic" "loop" "or" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
630 "private" "select" )) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
631 "\\|\\(\\(limited\\|abstract\\|tagged\\)[ \t\n]+\\)*record\\)\\>")) |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
632 "Regexp for keywords starting Ada blocks.") |
10705 | 633 |
634 (defvar ada-end-stmt-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
635 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
636 (concat "\\(" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
637 ";" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
638 "=>[ \t]*$" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
639 "^[ \t]*separate[ \t]*(\\(\\sw\\|[_.]\\)+)" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
640 "\\<" (regexp-opt '("begin" "declare" "is" "do" "else" "generic" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
641 "loop" "private" "record" "select" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
642 "then abort" "then") t) "\\>" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
643 "^[ \t]*" (regexp-opt '("function" "package" "procedure") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
644 t) "\\>\\(\\sw\\|[ \t_.]\\)+\\<is\\>" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
645 "^[ \t]*exception\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
646 "\\)") ) |
10705 | 647 "Regexp of possible ends for a non-broken statement. |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
648 A new statement starts after these.") |
10705 | 649 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
650 (defvar ada-matching-start-re |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
651 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
652 (concat "\\<" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
653 (regexp-opt |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
654 '("end" "loop" "select" "begin" "case" "do" "declare" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
655 "if" "task" "package" "procedure" "function" "record" "protected") t) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
656 "\\>")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
657 "Regexp used in `ada-goto-matching-start'.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
658 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
659 (defvar ada-matching-decl-start-re |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
660 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
661 (concat "\\<" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
662 (regexp-opt |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
663 '("is" "separate" "end" "declare" "if" "new" "begin" "generic" "when") t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
664 "\\>")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
665 "Regexp used in `ada-goto-matching-decl-start'.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
666 |
10705 | 667 (defvar ada-loop-start-re |
668 "\\<\\(for\\|while\\|loop\\)\\>" | |
669 "Regexp for the start of a loop.") | |
670 | |
671 (defvar ada-subprog-start-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
672 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
673 (concat "\\<" (regexp-opt '("accept" "entry" "function" "package" "procedure" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
674 "protected" "task") t) "\\>")) |
10705 | 675 "Regexp for the start of a subprogram.") |
676 | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
677 (defvar ada-named-block-re |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
678 "[ \t]*\\(\\sw\\|_\\)+[ \t]*:[^=]" |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
679 "Regexp of the name of a block or loop.") |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
680 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
681 (defvar ada-contextual-menu-on-identifier nil |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
682 "Set to true when the right mouse button was clicked on an identifier.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
683 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
684 (defvar ada-contextual-menu-last-point nil |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
685 "Position of point just before displaying the menu. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
686 This is a list (point buffer). |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
687 Since `ada-popup-menu' moves the point where the user clicked, the region |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
688 is modified. Therefore no command from the menu knows what the user selected |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
689 before displaying the contextual menu. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
690 To get the original region, restore the point to this position before |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
691 calling `region-end' and `region-beginning'. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
692 Modify this variable if you want to restore the point to another position.") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
693 |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
694 (easy-menu-define ada-contextual-menu nil |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
695 "Menu to use when the user presses the right mouse button. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
696 The variable `ada-contextual-menu-on-identifier' will be set to t before |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
697 displaying the menu if point was on an identifier." |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
698 '("Ada" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
699 ["Goto Declaration/Body" ada-point-and-xref |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
700 :included ada-contextual-menu-on-identifier] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
701 ["Goto Body" ada-point-and-xref-body |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
702 :included ada-contextual-menu-on-identifier] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
703 ["Goto Previous Reference" ada-xref-goto-previous-reference] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
704 ["List References" ada-find-references |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
705 :included ada-contextual-menu-on-identifier] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
706 ["List Local References" ada-find-local-references |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
707 :included ada-contextual-menu-on-identifier] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
708 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
709 ["Other File" ff-find-other-file] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
710 ["Goto Parent Unit" ada-goto-parent])) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
711 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
712 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
713 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
714 ;; Support for imenu (see imenu.el) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
715 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
716 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
717 (defconst ada-imenu-comment-re "\\([ \t]*--.*\\)?") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
718 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
719 (defconst ada-imenu-subprogram-menu-re |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
720 (concat "^[ \t]*\\(procedure\\|function\\)[ \t\n]+" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
721 "\\(\\(\\sw\\|_\\)+\\)[ \t\n]*\\([ \t\n]\\|([^)]+)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
722 ada-imenu-comment-re |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
723 "\\)[ \t\n]*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
724 "\\(return[ \t\n]+\\(\\sw\\|[_.]\\)+[ \t\n]*\\)?is[ \t\n]")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
725 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
726 (defvar ada-imenu-generic-expression |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
727 (list |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
728 (list nil ada-imenu-subprogram-menu-re 2) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
729 (list "*Specs*" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
730 (concat |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
731 "^[ \t]*\\(procedure\\|function\\)[ \t\n]+\\(\\(\\sw\\|_\\)+\\)" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
732 "\\(" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
733 "\\(" ada-imenu-comment-re "[ \t\n]+\\|[ \t\n]*([^)]+)" |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
734 ada-imenu-comment-re "\\)";; parameter list or simple space |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
735 "\\([ \t\n]*return[ \t\n]+\\(\\sw\\|[_.]\\)+[ \t\n]*\\)?" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
736 "\\)?;") 2) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
737 '("*Tasks*" "^[ \t]*task[ \t]+\\(type[ \t]+\\)?\\(\\(body[ \t]+\\)?\\(\\sw\\|_\\)+\\)" 2) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
738 '("*Type Defs*" "^[ \t]*\\(sub\\)?type[ \t]+\\(\\(\\sw\\|_\\)+\\)" 2) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
739 '("*Protected*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
740 "^[ \t]*protected[ \t]+\\(type[ \t]+\\)?\\(\\(body[ \t]+\\)?\\(\\sw\\|_\\)+\\)" 2) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
741 '("*Packages*" "^[ \t]*package[ \t]+\\(\\(body[ \t]+\\)?\\(\\sw\\|[_.]\\)+\\)" 1)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
742 "Imenu generic expression for Ada mode. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
743 See `imenu-generic-expression'. This variable will create several submenus for |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
744 each type of entity that can be found in an Ada file.") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
745 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
746 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
747 ;;------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
748 ;; Support for compile.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
749 ;;------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
750 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
751 (defun ada-compile-mouse-goto-error () |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
752 "Mouse interface for `ada-compile-goto-error'." |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
753 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
754 (mouse-set-point last-input-event) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
755 (ada-compile-goto-error (point)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
756 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
757 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
758 (defun ada-compile-goto-error (pos) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
759 "Replace `compile-goto-error' from compile.el. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
760 If POS is on a file and line location, go to this position. It adds |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
761 to compile.el the capacity to go to a reference in an error message. |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
762 For instance, on these lines: |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
763 foo.adb:61:11: [...] in call to size declared at foo.ads:11 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
764 foo.adb:61:11: [...] in call to local declared at line 20 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
765 the 4 file locations can be clicked on and jumped to." |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
766 (interactive "d") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
767 (goto-char pos) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
768 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
769 (skip-chars-backward "-a-zA-Z0-9_:./\\") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
770 (cond |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
771 ;; special case: looking at a filename:line not at the beginning of a line |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
772 ;; or a simple line reference "at line ..." |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
773 ((and (not (bolp)) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
774 (or (looking-at ada-compile-goto-error-file-linenr-re) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
775 (and |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
776 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
777 (beginning-of-line) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
778 (looking-at ada-compile-goto-error-file-linenr-re)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
779 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
780 (if (looking-at "\\([0-9]+\\)") (backward-word 1)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
781 (looking-at "line \\([0-9]+\\)")))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
782 ) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
783 (let ((line (if (match-beginning 2) (match-string 2) (match-string 1))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
784 (file (if (match-beginning 2) (match-string 1) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
785 (save-excursion (beginning-of-line) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
786 (looking-at ada-compile-goto-error-file-linenr-re) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
787 (match-string 1)))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
788 (error-pos (point-marker)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
789 source) |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
790 |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
791 ;; set source marker |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
792 (save-excursion |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
793 (compilation-find-file (point-marker) (match-string 1) "./") |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
794 (set-buffer file) |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
795 |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
796 (if (stringp line) |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
797 (goto-line (string-to-number line))) |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
798 |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
799 (setq source (point-marker))) |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
800 |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
801 (compilation-goto-locus error-pos source nil) |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
802 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
803 )) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
804 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
805 ;; otherwise, default behavior |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
806 (t |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
807 (compile-goto-error)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
808 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
809 (recenter)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
810 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
811 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
812 ;;------------------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
813 ;; Grammar related function |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
814 ;; The functions below work with the syntax class of the characters in an Ada |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
815 ;; buffer. Two syntax tables are created, depending on whether we want '_' |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
816 ;; to be considered as part of a word or not. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
817 ;; Some characters may have multiple meanings depending on the context: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
818 ;; - ' is either the beginning of a constant character or an attribute |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
819 ;; - # is either part of a based litteral or a gnatprep statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
820 ;; - " starts a string, but not if inside a constant character. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
821 ;; - ( and ) should be ignored if inside a constant character. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
822 ;; Thus their syntax property is changed automatically, and we can still use |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
823 ;; the standard Emacs functions for sexp (see `ada-in-string-p') |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
824 ;; |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
825 ;; On Emacs, this is done through the `syntax-table' text property. The |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
826 ;; corresponding action is applied automatically each time the buffer |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
827 ;; changes. If `font-lock-mode' is enabled (the default) the action is |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
828 ;; set up by `font-lock-syntactic-keywords'. Otherwise, we do it |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
829 ;; manually in `ada-after-change-function'. The proper method is |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
830 ;; installed by `ada-handle-syntax-table-properties'. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
831 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
832 ;; on XEmacs, the `syntax-table' property does not exist and we have to use a |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
833 ;; slow advice to `parse-partial-sexp' to do the same thing. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
834 ;; When executing parse-partial-sexp, we simply modify the strings before and |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
835 ;; after, so that the special constants '"', '(' and ')' do not interact |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
836 ;; with parse-partial-sexp. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
837 ;; Note: this code is slow and needs to be rewritten as soon as something |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
838 ;; better is available on XEmacs. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
839 ;;------------------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
840 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
841 (defun ada-create-syntax-table () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
842 "Create the two syntax tables use in the Ada mode. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
843 The standard table declares `_' as a symbol constituent, the second one |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
844 declares it as a word constituent." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
845 (interactive) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
846 (setq ada-mode-syntax-table (make-syntax-table)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
847 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
848 ;; define string brackets (`%' is alternative string bracket, but |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
849 ;; almost never used as such and throws font-lock and indentation |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
850 ;; off the track.) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
851 (modify-syntax-entry ?% "$" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
852 (modify-syntax-entry ?\" "\"" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
853 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
854 (modify-syntax-entry ?: "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
855 (modify-syntax-entry ?\; "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
856 (modify-syntax-entry ?& "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
857 (modify-syntax-entry ?\| "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
858 (modify-syntax-entry ?+ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
859 (modify-syntax-entry ?* "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
860 (modify-syntax-entry ?/ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
861 (modify-syntax-entry ?= "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
862 (modify-syntax-entry ?< "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
863 (modify-syntax-entry ?> "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
864 (modify-syntax-entry ?$ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
865 (modify-syntax-entry ?\[ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
866 (modify-syntax-entry ?\] "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
867 (modify-syntax-entry ?\{ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
868 (modify-syntax-entry ?\} "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
869 (modify-syntax-entry ?. "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
870 (modify-syntax-entry ?\\ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
871 (modify-syntax-entry ?\' "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
872 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
873 ;; a single hyphen is punctuation, but a double hyphen starts a comment |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
874 (modify-syntax-entry ?- ". 12" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
875 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
876 ;; See the comment above on grammar related function for the special |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
877 ;; setup for '#'. |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
878 (if (featurep 'xemacs) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
879 (modify-syntax-entry ?# "<" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
880 (modify-syntax-entry ?# "$" ada-mode-syntax-table)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
881 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
882 ;; and \f and \n end a comment |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
883 (modify-syntax-entry ?\f "> " ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
884 (modify-syntax-entry ?\n "> " ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
885 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
886 ;; define what belongs in Ada symbols |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
887 (modify-syntax-entry ?_ "_" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
888 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
889 ;; define parentheses to match |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
890 (modify-syntax-entry ?\( "()" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
891 (modify-syntax-entry ?\) ")(" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
892 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
893 (setq ada-mode-symbol-syntax-table (copy-syntax-table ada-mode-syntax-table)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
894 (modify-syntax-entry ?_ "w" ada-mode-symbol-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
895 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
896 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
897 ;; Support of special characters in XEmacs (see the comments at the beginning |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
898 ;; of the section on Grammar related functions). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
899 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
900 (if (featurep 'xemacs) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
901 (defadvice parse-partial-sexp (around parse-partial-sexp-protect-constants) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
902 "Handles special character constants and gnatprep statements." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
903 (let (change) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
904 (if (< to from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
905 (let ((tmp from)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
906 (setq from to to tmp))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
907 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
908 (goto-char from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
909 (while (re-search-forward "'\\([(\")#]\\)'" to t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
910 (setq change (cons (list (match-beginning 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
911 1 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
912 (match-string 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
913 change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
914 (replace-match "'A'")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
915 (goto-char from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
916 (while (re-search-forward "\\(#[0-9a-fA-F]*#\\)" to t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
917 (setq change (cons (list (match-beginning 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
918 (length (match-string 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
919 (match-string 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
920 change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
921 (replace-match (make-string (length (match-string 1)) ?@)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
922 ad-do-it |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
923 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
924 (while change |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
925 (goto-char (caar change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
926 (delete-char (cadar change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
927 (insert (caddar change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
928 (setq change (cdr change))))))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
929 |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
930 (defun ada-set-syntax-table-properties () |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
931 "Assign `syntax-table' properties in accessible part of buffer. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
932 In particular, character constants are said to be strings, #...# |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
933 are treated as numbers instead of gnatprep comments." |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
934 (let ((modified (buffer-modified-p)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
935 (buffer-undo-list t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
936 (inhibit-read-only t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
937 (inhibit-point-motion-hooks t) |
87703
9e1ef9a0680b
(ada-set-syntax-table-properties): Bind
Martin Rudalics <rudalics@gmx.at>
parents:
87566
diff
changeset
|
938 (inhibit-modification-hooks t) |
9e1ef9a0680b
(ada-set-syntax-table-properties): Bind
Martin Rudalics <rudalics@gmx.at>
parents:
87566
diff
changeset
|
939 buffer-file-name buffer-file-truename) |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
940 (remove-text-properties (point-min) (point-max) '(syntax-table nil)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
941 (goto-char (point-min)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
942 (while (re-search-forward |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
943 ;; The following regexp was adapted from |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
944 ;; `ada-font-lock-syntactic-keywords'. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
945 "^[ \t]*\\(#\\(?:if\\|else\\|elsif\\|end\\)\\)\\|[^a-zA-Z0-9)]\\('\\)[^'\n]\\('\\)" |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
946 nil t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
947 (if (match-beginning 1) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
948 (put-text-property |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
949 (match-beginning 1) (match-end 1) 'syntax-table '(11 . ?\n)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
950 (put-text-property |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
951 (match-beginning 2) (match-end 2) 'syntax-table '(7 . ?')) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
952 (put-text-property |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
953 (match-beginning 3) (match-end 3) 'syntax-table '(7 . ?')))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
954 (unless modified |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
955 (restore-buffer-modified-p nil)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
956 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
957 (defun ada-after-change-function (beg end old-len) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
958 "Called when the region between BEG and END was changed in the buffer. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
959 OLD-LEN indicates what the length of the replaced text was." |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
960 (save-excursion |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
961 (save-restriction |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
962 (let ((from (progn (goto-char beg) (line-beginning-position))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
963 (to (progn (goto-char end) (line-end-position)))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
964 (narrow-to-region from to) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
965 (save-match-data |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
966 (ada-set-syntax-table-properties)))))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
967 |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
968 (defun ada-initialize-syntax-table-properties () |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
969 "Assign `syntax-table' properties in current buffer." |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
970 (save-excursion |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
971 (save-restriction |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
972 (widen) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
973 (save-match-data |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
974 (ada-set-syntax-table-properties)))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
975 (add-hook 'after-change-functions 'ada-after-change-function nil t)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
976 |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
977 (defun ada-handle-syntax-table-properties () |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
978 "Handle `syntax-table' properties." |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
979 (if font-lock-mode |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
980 ;; `font-lock-mode' will take care of `syntax-table' properties. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
981 (remove-hook 'after-change-functions 'ada-after-change-function t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
982 ;; Take care of `syntax-table' properties manually. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
983 (ada-initialize-syntax-table-properties))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
984 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
985 ;;------------------------------------------------------------------ |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
986 ;; Testing the grammatical context |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
987 ;;------------------------------------------------------------------ |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
988 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
989 (defsubst ada-in-comment-p (&optional parse-result) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
990 "Return t if inside a comment. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
991 If PARSE-RESULT is non-nil, use it instead of calling `parse-partial-sexp'." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
992 (nth 4 (or parse-result |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
993 (parse-partial-sexp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
994 (line-beginning-position) (point))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
995 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
996 (defsubst ada-in-string-p (&optional parse-result) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
997 "Return t if point is inside a string. |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
998 If PARSE-RESULT is non-nil, use it instead of calling `parse-partial-sexp'." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
999 (nth 3 (or parse-result |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1000 (parse-partial-sexp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1001 (line-beginning-position) (point))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1002 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1003 (defsubst ada-in-string-or-comment-p (&optional parse-result) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1004 "Return t if inside a comment or string. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1005 If PARSE-RESULT is non-nil, use it instead of calling `parse-partial-sexp'." |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1006 (setq parse-result (or parse-result |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1007 (parse-partial-sexp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1008 (line-beginning-position) (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1009 (or (ada-in-string-p parse-result) (ada-in-comment-p parse-result))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1010 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1011 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1012 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1013 ;; Contextual menus |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
1014 ;; The Ada mode comes with contextual menus, bound by default to the right |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1015 ;; mouse button. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1016 ;; Add items to this menu by modifying `ada-contextual-menu'. Note that the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1017 ;; variable `ada-contextual-menu-on-identifier' is set automatically to t |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1018 ;; if the mouse button was pressed on an identifier. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1019 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1020 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1021 (defun ada-call-from-contextual-menu (function) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1022 "Execute FUNCTION when called from the contextual menu. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1023 It forces Emacs to change the cursor position." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1024 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1025 (funcall function) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1026 (setq ada-contextual-menu-last-point |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1027 (list (point) (current-buffer)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1028 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1029 (defun ada-popup-menu (position) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1030 "Pops up a contextual menu, depending on where the user clicked. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1031 POSITION is the location the mouse was clicked on. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1032 Sets `ada-contextual-menu-last-point' to the current position before |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1033 displaying the menu. When a function from the menu is called, the |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1034 point is where the mouse button was clicked." |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1035 (interactive "e") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1036 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1037 ;; declare this as a local variable, so that the function called |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1038 ;; in the contextual menu does not hide the region in |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1039 ;; transient-mark-mode. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1040 (let ((deactivate-mark nil)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1041 (setq ada-contextual-menu-last-point |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1042 (list (point) (current-buffer))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1043 (mouse-set-point last-input-event) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1044 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1045 (setq ada-contextual-menu-on-identifier |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1046 (and (char-after) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1047 (or (= (char-syntax (char-after)) ?w) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1048 (= (char-after) ?_)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1049 (not (ada-in-string-or-comment-p)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1050 (save-excursion (skip-syntax-forward "w") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1051 (not (ada-after-keyword-p))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1052 )) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1053 (if (fboundp 'popup-menu) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1054 (funcall (symbol-function 'popup-menu) ada-contextual-menu) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1055 (let (choice) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1056 (setq choice (x-popup-menu position ada-contextual-menu)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1057 (if choice |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1058 (funcall (lookup-key ada-contextual-menu (vector (car choice))))))) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1059 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1060 (set-buffer (cadr ada-contextual-menu-last-point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1061 (goto-char (car ada-contextual-menu-last-point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1062 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1063 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1064 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1065 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1066 ;; Misc functions |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1067 ;;------------------------------------------------------------------ |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1068 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1069 ;;;###autoload |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1070 (defun ada-add-extensions (spec body) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1071 "Define SPEC and BODY as being valid extensions for Ada files. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1072 Going from body to spec with `ff-find-other-file' used these |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1073 extensions. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1074 SPEC and BODY are two regular expressions that must match against |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1075 the file name." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1076 (let* ((reg (concat (regexp-quote body) "$")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1077 (tmp (assoc reg ada-other-file-alist))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1078 (if tmp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1079 (setcdr tmp (list (cons spec (cadr tmp)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1080 (add-to-list 'ada-other-file-alist (list reg (list spec))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1081 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1082 (let* ((reg (concat (regexp-quote spec) "$")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1083 (tmp (assoc reg ada-other-file-alist))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1084 (if tmp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1085 (setcdr tmp (list (cons body (cadr tmp)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1086 (add-to-list 'ada-other-file-alist (list reg (list body))))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1087 |
41082
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1088 (add-to-list 'auto-mode-alist |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1089 (cons (concat (regexp-quote spec) "\\'") 'ada-mode)) |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1090 (add-to-list 'auto-mode-alist |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1091 (cons (concat (regexp-quote body) "\\'") 'ada-mode)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1092 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1093 (add-to-list 'ada-spec-suffixes spec) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1094 (add-to-list 'ada-body-suffixes body) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1095 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1096 ;; Support for speedbar (Specifies that we want to see these files in |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1097 ;; speedbar) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1098 (if (fboundp 'speedbar-add-supported-extension) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1099 (progn |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1100 (funcall (symbol-function 'speedbar-add-supported-extension) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1101 spec) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1102 (funcall (symbol-function 'speedbar-add-supported-extension) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1103 body))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1104 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1105 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1106 |
10707 | 1107 ;;;###autoload |
10705 | 1108 (defun ada-mode () |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
1109 "Ada mode is the major mode for editing Ada code. |
10705 | 1110 |
1111 Bindings are as follows: (Note: 'LFD' is control-j.) | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1112 \\{ada-mode-map} |
10705 | 1113 |
1114 Indent line '\\[ada-tab]' | |
1115 Indent line, insert newline and indent the new line. '\\[newline-and-indent]' | |
1116 | |
1117 Re-format the parameter-list point is in '\\[ada-format-paramlist]' | |
1118 Indent all lines in region '\\[ada-indent-region]' | |
1119 | |
1120 Adjust case of identifiers and keywords in region '\\[ada-adjust-case-region]' | |
1121 Adjust case of identifiers and keywords in buffer '\\[ada-adjust-case-buffer]' | |
1122 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1123 Fill comment paragraph, justify and append postfix '\\[fill-paragraph]' |
10705 | 1124 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
1125 Next func/proc/task '\\[ada-next-procedure]' Previous func/proc/task '\\[ada-previous-procedure]' |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1126 Next package '\\[ada-next-package]' Previous package '\\[ada-previous-package]' |
10705 | 1127 |
1128 Goto matching start of current 'end ...;' '\\[ada-move-to-start]' | |
1129 Goto end of current block '\\[ada-move-to-end]' | |
1130 | |
1131 Comments are handled using standard GNU Emacs conventions, including: | |
1132 Start a comment '\\[indent-for-comment]' | |
1133 Comment region '\\[comment-region]' | |
1134 Uncomment region '\\[ada-uncomment-region]' | |
1135 Continue comment on next line '\\[indent-new-comment-line]' | |
1136 | |
1137 If you use imenu.el: | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1138 Display index-menu of functions and procedures '\\[imenu]' |
10705 | 1139 |
1140 If you use find-file.el: | |
1141 Switch to other file (Body <-> Spec) '\\[ff-find-other-file]' | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1142 or '\\[ff-mouse-find-other-file] |
10705 | 1143 Switch to other file in other window '\\[ada-ff-other-window]' |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1144 or '\\[ff-mouse-find-other-file-other-window] |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1145 If you use this function in a spec and no body is available, it gets created with body stubs. |
10705 | 1146 |
1147 If you use ada-xref.el: | |
1148 Goto declaration: '\\[ada-point-and-xref]' on the identifier | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1149 or '\\[ada-goto-declaration]' with point on the identifier |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1150 Complete identifier: '\\[ada-complete-identifier]'." |
10705 | 1151 |
1152 (interactive) | |
1153 (kill-all-local-variables) | |
84917
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1154 |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1155 (set-syntax-table ada-mode-syntax-table) |
10705 | 1156 |
59237
276072a4cd9d
(ada-mode): Use mode-require-final-newline.
Richard M. Stallman <rms@gnu.org>
parents:
55730
diff
changeset
|
1157 (set (make-local-variable 'require-final-newline) mode-require-final-newline) |
10705 | 1158 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1159 ;; Set the paragraph delimiters so that one can select a whole block |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1160 ;; simply with M-h |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1161 (set (make-local-variable 'paragraph-start) "[ \t\n\f]*$") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1162 (set (make-local-variable 'paragraph-separate) "[ \t\n\f]*$") |
10705 | 1163 |
1164 ;; comment end must be set because it may hold a wrong value if | |
1165 ;; this buffer had been in another mode before. RE | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1166 (set (make-local-variable 'comment-end) "") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1167 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1168 ;; used by autofill and indent-new-comment-line |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1169 (set (make-local-variable 'comment-start-skip) "---*[ \t]*") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1170 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1171 ;; used by autofill to break a comment line and continue it on another line. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1172 ;; The reason we need this one is that the default behavior does not work |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1173 ;; correctly with the definition of paragraph-start above when the comment |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1174 ;; is right after a multi-line subprogram declaration (the comments are |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1175 ;; aligned under the latest parameter, not under the declaration start). |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1176 (set (make-local-variable 'comment-line-break-function) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1177 (lambda (&optional soft) (let ((fill-prefix nil)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1178 (indent-new-comment-line soft)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1179 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1180 (set (make-local-variable 'indent-line-function) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1181 'ada-indent-current-function) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1182 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1183 (set (make-local-variable 'comment-column) 40) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1184 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1185 ;; Emacs 20.3 defines a comment-padding to insert spaces between |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1186 ;; the comment and the text. We do not want any, this is already |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1187 ;; included in comment-start |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1188 (unless (featurep 'xemacs) |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
1189 (set (make-local-variable 'parse-sexp-ignore-comments) t) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
1190 (set (make-local-variable 'comment-padding) 0) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
1191 (set (make-local-variable 'parse-sexp-lookup-properties) t)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1192 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1193 (set 'case-fold-search t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1194 (if (boundp 'imenu-case-fold-search) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1195 (set 'imenu-case-fold-search t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1196 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1197 (set (make-local-variable 'fill-paragraph-function) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1198 'ada-fill-comment-paragraph) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1199 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1200 (set (make-local-variable 'imenu-generic-expression) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1201 ada-imenu-generic-expression) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1202 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1203 ;; Support for compile.el |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1204 ;; We just substitute our own functions to go to the error. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1205 (add-hook 'compilation-mode-hook |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1206 (lambda() |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1207 (set (make-local-variable 'compile-auto-highlight) 40) |
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1208 ;; FIXME: This has global impact! -stef |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1209 (define-key compilation-minor-mode-map [mouse-2] |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1210 'ada-compile-mouse-goto-error) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1211 (define-key compilation-minor-mode-map "\C-c\C-c" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1212 'ada-compile-goto-error) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1213 (define-key compilation-minor-mode-map "\C-m" |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1214 'ada-compile-goto-error))) |
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1215 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1216 ;; font-lock support : |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1217 ;; We need to set some properties for XEmacs, and define some variables |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1218 ;; for Emacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1219 |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
1220 ;; FIXME: The Emacs code should work just fine under XEmacs AFAIK. --Stef |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1221 (if (featurep 'xemacs) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1222 ;; XEmacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1223 (put 'ada-mode 'font-lock-defaults |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1224 '(ada-font-lock-keywords |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1225 nil t ((?\_ . "w") (?# . ".")) beginning-of-line)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1226 ;; Emacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1227 (set (make-local-variable 'font-lock-defaults) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1228 '(ada-font-lock-keywords |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1229 nil t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1230 ((?\_ . "w") (?# . ".")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1231 beginning-of-line |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1232 (font-lock-syntactic-keywords . ada-font-lock-syntactic-keywords))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1233 ) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1234 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1235 ;; Set up support for find-file.el. |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1236 (set (make-local-variable 'ff-other-file-alist) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1237 'ada-other-file-alist) |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1238 (set (make-local-variable 'ff-search-directories) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1239 'ada-search-directories-internal) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1240 (setq ff-post-load-hook 'ada-set-point-accordingly |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1241 ff-file-created-hook 'ada-make-body) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1242 (add-hook 'ff-pre-load-hook 'ada-which-function-are-we-in) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1243 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1244 (make-local-variable 'ff-special-constructs) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1245 (mapc (lambda (pair) (add-to-list 'ff-special-constructs pair)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1246 (list |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1247 ;; Top level child package declaration; go to the parent package. |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1248 (cons (eval-when-compile |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1249 (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1250 "\\(body[ \t]+\\)?" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1251 "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is")) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1252 (lambda () |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1253 (ff-get-file |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1254 ada-search-directories-internal |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1255 (ada-make-filename-from-adaname (match-string 3)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1256 ada-spec-suffixes))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1257 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1258 ;; A "separate" clause. |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1259 (cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1260 (lambda () |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1261 (ff-get-file |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1262 ada-search-directories-internal |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1263 (ada-make-filename-from-adaname (match-string 1)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1264 ada-spec-suffixes))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1265 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1266 ;; A "with" clause. |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1267 (cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1268 (lambda () |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1269 (ff-get-file |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1270 ada-search-directories-internal |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1271 (ada-make-filename-from-adaname (match-string 1)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1272 ada-spec-suffixes))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1273 )) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1274 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1275 ;; Support for outline-minor-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1276 (set (make-local-variable 'outline-regexp) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1277 "\\([ \t]*\\(procedure\\|function\\|package\\|if\\|while\\|for\\|declare\\|case\\|end\\|begin\\|loop\\)\\|--\\)") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1278 (set (make-local-variable 'outline-level) 'ada-outline-level) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1279 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1280 ;; Support for imenu : We want a sorted index |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1281 (setq imenu-sort-function 'imenu--sort-by-name) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1282 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1283 ;; Support for ispell : Check only comments |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1284 (set (make-local-variable 'ispell-check-comments) 'exclusive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1285 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1286 ;; Support for align |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1287 (add-to-list 'align-dq-string-modes 'ada-mode) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1288 (add-to-list 'align-open-comment-modes 'ada-mode) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1289 (set (make-local-variable 'align-region-separate) ada-align-region-separate) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1290 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1291 ;; Exclude comments alone on line from alignment. |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1292 (add-to-list 'align-exclude-rules-list |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1293 '(ada-solo-comment |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1294 (regexp . "^\\(\\s-*\\)--") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1295 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1296 (add-to-list 'align-exclude-rules-list |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1297 '(ada-solo-use |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1298 (regexp . "^\\(\\s-*\\)\\<use\\>") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1299 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1300 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1301 (setq ada-align-modes nil) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1302 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1303 (add-to-list 'ada-align-modes |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1304 '(ada-declaration-assign |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1305 (regexp . "[^:]\\(\\s-*\\):[^:]") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1306 (valid . (lambda() (not (ada-in-comment-p)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1307 (repeat . t) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1308 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1309 (add-to-list 'ada-align-modes |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1310 '(ada-associate |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1311 (regexp . "[^=]\\(\\s-*\\)=>") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1312 (valid . (lambda() (not (ada-in-comment-p)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1313 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1314 (add-to-list 'ada-align-modes |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1315 '(ada-comment |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1316 (regexp . "\\(\\s-*\\)--") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1317 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1318 (add-to-list 'ada-align-modes |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1319 '(ada-use |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1320 (regexp . "\\(\\s-*\\)\\<use\\s-") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1321 (valid . (lambda() (not (ada-in-comment-p)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1322 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1323 (add-to-list 'ada-align-modes |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1324 '(ada-at |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1325 (regexp . "\\(\\s-+\\)at\\>") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1326 (modes . '(ada-mode)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1327 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1328 (setq align-mode-rules-list ada-align-modes) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1329 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1330 ;; Set up the contextual menu |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1331 (if ada-popup-key |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1332 (define-key ada-mode-map ada-popup-key 'ada-popup-menu)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1333 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1334 ;; Support for Abbreviations (the user still need to "M-x abbrev-mode" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1335 (define-abbrev-table 'ada-mode-abbrev-table ()) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1336 (setq local-abbrev-table ada-mode-abbrev-table) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1337 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1338 ;; Support for which-function mode |
52692
3ec76ef338f9
(ada-mode): Don't use advice. Instead, set which-func-functions.
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1339 (make-local-variable 'which-func-functions) |
3ec76ef338f9
(ada-mode): Don't use advice. Instead, set which-func-functions.
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1340 (setq which-func-functions '(ada-which-function)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1341 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1342 ;; Support for indent-new-comment-line (Especially for XEmacs) |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1343 (set (make-local-variable 'comment-multi-line) nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1344 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1345 (setq major-mode 'ada-mode |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1346 mode-name "Ada") |
10705 | 1347 |
1348 (use-local-map ada-mode-map) | |
1349 | |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1350 (easy-menu-add ada-mode-menu ada-mode-map) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1351 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1352 (set-syntax-table ada-mode-syntax-table) |
10705 | 1353 |
1354 (if ada-clean-buffer-before-saving | |
1355 (progn | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1356 ;; remove all spaces at the end of lines in the whole buffer. |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1357 (add-hook 'local-write-file-hooks 'delete-trailing-whitespace) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1358 ;; convert all tabs to the correct number of spaces. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1359 (add-hook 'local-write-file-hooks |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1360 (lambda () (untabify (point-min) (point-max)))))) |
10705 | 1361 |
62213
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1362 (set (make-local-variable 'skeleton-further-elements) |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1363 '((< '(backward-delete-char-untabify |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1364 (min ada-indent (current-column)))))) |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1365 (add-hook 'skeleton-end-hook 'ada-adjust-case-skeleton nil t) |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1366 |
62772
f2892faa87d4
* progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents:
62213
diff
changeset
|
1367 (run-mode-hooks 'ada-mode-hook) |
10705 | 1368 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1369 ;; To be run after the hook, in case the user modified |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1370 ;; ada-fill-comment-prefix |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1371 (make-local-variable 'comment-start) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1372 (if ada-fill-comment-prefix |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1373 (set 'comment-start ada-fill-comment-prefix) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1374 (set 'comment-start "-- ")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1375 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1376 ;; Run this after the hook to give the users a chance to activate |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1377 ;; font-lock-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1378 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1379 (unless (featurep 'xemacs) |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1380 (ada-initialize-syntax-table-properties) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1381 (add-hook 'font-lock-mode-hook 'ada-handle-syntax-table-properties nil t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1382 |
10705 | 1383 ;; the following has to be done after running the ada-mode-hook |
1384 ;; because users might want to set the values of these variable | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1385 ;; inside the hook |
10705 | 1386 |
1387 (cond ((eq ada-language-version 'ada83) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1388 (setq ada-keywords ada-83-keywords)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1389 ((eq ada-language-version 'ada95) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
1390 (setq ada-keywords ada-95-keywords)) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1391 ((eq ada-language-version 'ada2005) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
1392 (setq ada-keywords ada-2005-keywords))) |
10705 | 1393 |
1394 (if ada-auto-case | |
1395 (ada-activate-keys-for-case))) | |
1396 | |
62213
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1397 (defun ada-adjust-case-skeleton () |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1398 "Adjust the case of the text inserted by a skeleton." |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1399 (save-excursion |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1400 (let ((aa-end (point))) |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1401 (ada-adjust-case-region |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1402 (progn (goto-char (symbol-value 'beg)) (forward-word -1) (point)) |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1403 (goto-char aa-end))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1404 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1405 (defun ada-region-selected () |
87401
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1406 "Should we operate on an active region?" |
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1407 (if (fboundp 'use-region-p) |
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1408 (use-region-p) |
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1409 (region-active-p))) |
10705 | 1410 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1411 ;;----------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1412 ;; auto-casing |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
1413 ;; Since Ada is case-insensitive, the Ada mode provides an extensive set of |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1414 ;; functions to auto-case identifiers, keywords, ... |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1415 ;; The basic rules for autocasing are defined through the variables |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1416 ;; `ada-case-attribute', `ada-case-keyword' and `ada-case-identifier'. These |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1417 ;; are references to the functions that will do the actual casing. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1418 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1419 ;; However, in most cases, the user will want to define some exceptions to |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1420 ;; these casing rules. This is done through a list of files, that contain |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1421 ;; one word per line. These files are stored in `ada-case-exception-file'. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1422 ;; For backward compatibility, this variable can also be a string. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1423 ;;----------------------------------------------------------------- |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1424 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1425 (defun ada-save-exceptions-to-file (file-name) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1426 "Save the casing exception lists to the file FILE-NAME. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1427 Casing exception lists are `ada-case-exception' and `ada-case-exception-substring'." |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1428 (find-file (expand-file-name file-name)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1429 (erase-buffer) |
84917
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1430 (mapc (lambda (x) (insert (car x) "\n")) |
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1431 (sort (copy-sequence ada-case-exception) |
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1432 (lambda(a b) (string< (car a) (car b))))) |
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1433 (mapc (lambda (x) (insert "*" (car x) "\n")) |
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1434 (sort (copy-sequence ada-case-exception-substring) |
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1435 (lambda(a b) (string< (car a) (car b))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1436 (save-buffer) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1437 (kill-buffer nil) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1438 ) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1439 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1440 (defun ada-create-case-exception (&optional word) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1441 "Define WORD as an exception for the casing system. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1442 If WORD is not given, then the current word in the buffer is used instead. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1443 The new words is added to the first file in `ada-case-exception-file'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1444 The standard casing rules will no longer apply to this word." |
10705 | 1445 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1446 (let ((previous-syntax-table (syntax-table)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1447 file-name |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1448 ) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1449 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1450 (cond ((stringp ada-case-exception-file) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1451 (setq file-name ada-case-exception-file)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1452 ((listp ada-case-exception-file) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1453 (setq file-name (car ada-case-exception-file))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1454 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1455 (error (concat "No exception file specified. " |
63425
d6e1fdb10546
(ada-create-case-exception, ada-create-case-exception-substring,
Juanma Barranquero <lekktu@gmail.com>
parents:
62772
diff
changeset
|
1456 "See variable ada-case-exception-file")))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1457 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1458 (set-syntax-table ada-mode-symbol-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1459 (unless word |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1460 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1461 (skip-syntax-backward "w") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1462 (setq word (buffer-substring-no-properties |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1463 (point) (save-excursion (forward-word 1) (point)))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1464 (set-syntax-table previous-syntax-table) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1465 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1466 ;; Reread the exceptions file, in case it was modified by some other, |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1467 (ada-case-read-exceptions-from-file file-name) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1468 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1469 ;; If the word is already in the list, even with a different casing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1470 ;; we simply want to replace it. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1471 (if (and (not (equal ada-case-exception '())) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1472 (assoc-string word ada-case-exception t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1473 (setcar (assoc-string word ada-case-exception t) word) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1474 (add-to-list 'ada-case-exception (cons word t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1475 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1476 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1477 (ada-save-exceptions-to-file file-name) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1478 )) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1479 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1480 (defun ada-create-case-exception-substring (&optional word) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1481 "Define the substring WORD as an exception for the casing system. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1482 If WORD is not given, then the current word in the buffer is used instead, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1483 or the selected region if any is active. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1484 The new word is added to the first file in `ada-case-exception-file'. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1485 When auto-casing a word, this substring will be special-cased, unless the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1486 word itself has a special casing." |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1487 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1488 (let ((file-name |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1489 (cond ((stringp ada-case-exception-file) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1490 ada-case-exception-file) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1491 ((listp ada-case-exception-file) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1492 (car ada-case-exception-file)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1493 (t |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
1494 (error (concat "No exception file specified. " |
63425
d6e1fdb10546
(ada-create-case-exception, ada-create-case-exception-substring,
Juanma Barranquero <lekktu@gmail.com>
parents:
62772
diff
changeset
|
1495 "See variable ada-case-exception-file")))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1496 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1497 ;; Find the substring to define as an exception. Order is: the parameter, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1498 ;; if any, or the selected region, or the word under the cursor |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1499 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1500 (word nil) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1501 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1502 ((ada-region-selected) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1503 (setq word (buffer-substring-no-properties |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1504 (region-beginning) (region-end)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1505 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1506 (t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1507 (let ((underscore-syntax (char-syntax ?_))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1508 (unwind-protect |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1509 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1510 (modify-syntax-entry ?_ "." (syntax-table)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1511 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1512 (skip-syntax-backward "w") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1513 (set 'word (buffer-substring-no-properties |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1514 (point) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1515 (save-excursion (forward-word 1) (point)))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1516 (modify-syntax-entry ?_ (make-string 1 underscore-syntax) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1517 (syntax-table)))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1518 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1519 ;; Reread the exceptions file, in case it was modified by some other, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1520 (ada-case-read-exceptions-from-file file-name) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1521 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1522 ;; If the word is already in the list, even with a different casing |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1523 ;; we simply want to replace it. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1524 (if (and (not (equal ada-case-exception-substring '())) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1525 (assoc-string word ada-case-exception-substring t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1526 (setcar (assoc-string word ada-case-exception-substring t) word) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1527 (add-to-list 'ada-case-exception-substring (cons word t)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1528 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1529 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1530 (ada-save-exceptions-to-file file-name) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1531 |
65584
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
1532 (message "%s" (concat "Defining " word " as a casing exception")))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1533 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1534 (defun ada-case-read-exceptions-from-file (file-name) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1535 "Read the content of the casing exception file FILE-NAME." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1536 (if (file-readable-p (expand-file-name file-name)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1537 (let ((buffer (current-buffer))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1538 (find-file (expand-file-name file-name)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1539 (set-syntax-table ada-mode-symbol-syntax-table) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1540 (widen) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1541 (goto-char (point-min)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1542 (while (not (eobp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1543 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1544 ;; If the item is already in the list, even with an other casing, |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1545 ;; do not add it again. This way, the user can easily decide which |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1546 ;; priority should be applied to each casing exception |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1547 (let ((word (buffer-substring-no-properties |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1548 (point) (save-excursion (forward-word 1) (point))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1549 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1550 ;; Handling a substring ? |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1551 (if (char-equal (string-to-char word) ?*) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1552 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1553 (setq word (substring word 1)) |
55730
b4eeb441c089
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54889
diff
changeset
|
1554 (unless (assoc-string word ada-case-exception-substring t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1555 (add-to-list 'ada-case-exception-substring (cons word t)))) |
55730
b4eeb441c089
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54889
diff
changeset
|
1556 (unless (assoc-string word ada-case-exception t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1557 (add-to-list 'ada-case-exception (cons word t))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1558 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1559 (forward-line 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1560 (kill-buffer nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1561 (set-buffer buffer))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1562 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1563 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1564 (defun ada-case-read-exceptions () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1565 "Read all the casing exception files from `ada-case-exception-file'." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1566 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1567 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1568 ;; Reinitialize the casing exception list |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1569 (setq ada-case-exception '() |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1570 ada-case-exception-substring '()) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1571 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1572 (cond ((stringp ada-case-exception-file) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1573 (ada-case-read-exceptions-from-file ada-case-exception-file)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1574 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1575 ((listp ada-case-exception-file) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1576 (mapcar 'ada-case-read-exceptions-from-file |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1577 ada-case-exception-file)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1578 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1579 (defun ada-adjust-case-substring () |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1580 "Adjust case of substrings in the previous word." |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1581 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1582 (let ((substrings ada-case-exception-substring) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1583 (max (point)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1584 (case-fold-search t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1585 (underscore-syntax (char-syntax ?_)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1586 re) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1587 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1588 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1589 (forward-word -1) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1590 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1591 (unwind-protect |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1592 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1593 (modify-syntax-entry ?_ "." (syntax-table)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1594 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1595 (while substrings |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1596 (setq re (concat "\\b" (regexp-quote (caar substrings)) "\\b")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1597 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1598 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1599 (while (re-search-forward re max t) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1600 (replace-match (caar substrings) t))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1601 (setq substrings (cdr substrings)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1602 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1603 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1604 (modify-syntax-entry ?_ (make-string 1 underscore-syntax) (syntax-table))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1605 ))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1606 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1607 (defun ada-adjust-case-identifier () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1608 "Adjust case of the previous identifier. |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
1609 The auto-casing is done according to the value of `ada-case-identifier' |
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
1610 and the exceptions defined in `ada-case-exception-file'." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1611 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1612 (if (or (equal ada-case-exception '()) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1613 (equal (char-after) ?_)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1614 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1615 (funcall ada-case-identifier -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1616 (ada-adjust-case-substring)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1617 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1618 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1619 (let ((end (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1620 (start (save-excursion (skip-syntax-backward "w") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1621 (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1622 match) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1623 ;; If we have an exception, replace the word by the correct casing |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1624 (if (setq match (assoc-string (buffer-substring start end) |
55730
b4eeb441c089
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54889
diff
changeset
|
1625 ada-case-exception t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1626 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1627 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1628 (delete-region start end) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1629 (insert (car match))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1630 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1631 ;; Else simply re-case the word |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1632 (funcall ada-case-identifier -1) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1633 (ada-adjust-case-substring)))))) |
10705 | 1634 |
1635 (defun ada-after-keyword-p () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1636 "Return t if cursor is after a keyword that is not an attribute." |
10705 | 1637 (save-excursion |
1638 (forward-word -1) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1639 (and (not (and (char-before) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1640 (or (= (char-before) ?_) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1641 (= (char-before) ?'))));; unless we have a _ or ' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1642 (looking-at (concat ada-keywords "[^_]"))))) |
10705 | 1643 |
1644 (defun ada-adjust-case (&optional force-identifier) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1645 "Adjust the case of the word before the character just typed. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1646 If FORCE-IDENTIFIER is non-nil then also adjust keyword as identifier." |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1647 (if (not (bobp)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1648 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1649 (forward-char -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1650 (if (and (not (bobp)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1651 ;; or if at the end of a character constant |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1652 (not (and (eq (following-char) ?') |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1653 (eq (char-before (1- (point))) ?'))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1654 ;; or if the previous character was not part of a word |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1655 (eq (char-syntax (char-before)) ?w) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1656 ;; if in a string or a comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1657 (not (ada-in-string-or-comment-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1658 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1659 (if (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1660 (forward-word -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1661 (or (= (point) (point-min)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1662 (backward-char 1)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1663 (= (following-char) ?')) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1664 (funcall ada-case-attribute -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1665 (if (and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1666 (not force-identifier) ; (MH) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1667 (ada-after-keyword-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1668 (funcall ada-case-keyword -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1669 (ada-adjust-case-identifier)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1670 (forward-char 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1671 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1672 ) |
10705 | 1673 |
1674 (defun ada-adjust-case-interactive (arg) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1675 "Adjust the case of the previous word, and process the character just typed. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1676 ARG is the prefix the user entered with \\[universal-argument]." |
10705 | 1677 (interactive "P") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1678 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1679 (if ada-auto-case |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1680 (let ((lastk last-command-char) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1681 (previous-syntax-table (syntax-table))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1682 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1683 (unwind-protect |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1684 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1685 (set-syntax-table ada-mode-symbol-syntax-table) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1686 (cond ((or (eq lastk ?\n) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1687 (eq lastk ?\r)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1688 ;; horrible kludge |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1689 (insert " ") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1690 (ada-adjust-case) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1691 ;; horrible dekludge |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1692 (delete-backward-char 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1693 ;; some special keys and their bindings |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1694 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1695 ((eq lastk ?\n) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1696 (funcall ada-lfd-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1697 ((eq lastk ?\r) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1698 (funcall ada-ret-binding)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1699 ((eq lastk ?\C-i) (ada-tab)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1700 ;; Else just insert the character |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1701 ((self-insert-command (prefix-numeric-value arg)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1702 ;; if there is a keyword in front of the underscore |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1703 ;; then it should be part of an identifier (MH) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1704 (if (eq lastk ?_) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1705 (ada-adjust-case t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1706 (ada-adjust-case)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1707 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1708 ;; Restore the syntax table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1709 (set-syntax-table previous-syntax-table)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1710 ) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1711 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1712 ;; Else, no auto-casing |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1713 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1714 ((eq last-command-char ?\n) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1715 (funcall ada-lfd-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1716 ((eq last-command-char ?\r) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1717 (funcall ada-ret-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1718 (t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1719 (self-insert-command (prefix-numeric-value arg)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1720 )) |
10705 | 1721 |
1722 (defun ada-activate-keys-for-case () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1723 "Modify the key bindings for all the keys that should readjust the casing." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1724 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1725 ;; Save original key-bindings to allow swapping ret/lfd |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1726 ;; when casing is activated. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1727 ;; The 'or ...' is there to be sure that the value will not |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1728 ;; be changed again when Ada mode is called more than once |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1729 (or ada-ret-binding (setq ada-ret-binding (key-binding "\C-M"))) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1730 (or ada-lfd-binding (setq ada-lfd-binding (key-binding "\C-j"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1731 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1732 ;; Call case modifying function after certain keys. |
10705 | 1733 (mapcar (function (lambda(key) (define-key |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1734 ada-mode-map |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1735 (char-to-string key) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1736 'ada-adjust-case-interactive))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1737 '( ?` ?_ ?# ?% ?& ?* ?( ?) ?- ?= ?+ |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1738 ?| ?\; ?: ?' ?\" ?< ?, ?. ?> ?/ ?\n 32 ?\r ))) |
10705 | 1739 |
1740 (defun ada-loose-case-word (&optional arg) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1741 "Upcase first letter and letters following `_' in the following word. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1742 No other letter is modified. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1743 ARG is ignored, and is there for compatibility with `capitalize-word' only." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1744 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1745 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1746 (let ((end (save-excursion (skip-syntax-forward "w") (point))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1747 (first t)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1748 (skip-syntax-backward "w") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1749 (while (and (or first (search-forward "_" end t)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1750 (< (point) end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1751 (and first |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1752 (setq first nil)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1753 (insert-char (upcase (following-char)) 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1754 (delete-char 1))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1755 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1756 (defun ada-no-auto-case (&optional arg) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1757 "Do nothing. ARG is ignored. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1758 This function can be used for the auto-casing variables in Ada mode, to |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
1759 adapt to unusal auto-casing schemes. Since it does nothing, you can for |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1760 instance use it for `ada-case-identifier' if you don't want any special |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1761 auto-casing for identifiers, whereas keywords have to be lower-cased. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1762 See also `ada-auto-case' to disable auto casing altogether." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1763 ) |
10705 | 1764 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1765 (defun ada-capitalize-word (&optional arg) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1766 "Upcase first letter and letters following '_', lower case other letters. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1767 ARG is ignored, and is there for compatibility with `capitalize-word' only." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1768 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1769 (let ((end (save-excursion (skip-syntax-forward "w") (point))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1770 (begin (save-excursion (skip-syntax-backward "w") (point)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1771 (modify-syntax-entry ?_ "_") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1772 (capitalize-region begin end) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1773 (modify-syntax-entry ?_ "w"))) |
10705 | 1774 |
1775 (defun ada-adjust-case-region (from to) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1776 "Adjust the case of all words in the region between FROM and TO. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1777 Attention: This function might take very long for big regions!" |
10705 | 1778 (interactive "*r") |
1779 (let ((begin nil) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1780 (end nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1781 (keywordp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1782 (attribp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1783 (previous-syntax-table (syntax-table))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1784 (message "Adjusting case ...") |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1785 (unwind-protect |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1786 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1787 (set-syntax-table ada-mode-symbol-syntax-table) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1788 (goto-char to) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1789 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1790 ;; loop: look for all identifiers, keywords, and attributes |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1791 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1792 (while (re-search-backward "\\<\\(\\sw+\\)\\>" from t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1793 (setq end (match-end 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1794 (setq attribp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1795 (and (> (point) from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1796 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1797 (forward-char -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1798 (setq attribp (looking-at "'.[^']"))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1799 (or |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1800 ;; do nothing if it is a string or comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1801 (ada-in-string-or-comment-p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1802 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1803 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1804 ;; get the identifier or keyword or attribute |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1805 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1806 (setq begin (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1807 (setq keywordp (looking-at ada-keywords)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1808 (goto-char end) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1809 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1810 ;; casing according to user-option |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1811 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1812 (if attribp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1813 (funcall ada-case-attribute -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1814 (if keywordp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1815 (funcall ada-case-keyword -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1816 (ada-adjust-case-identifier))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1817 (goto-char begin)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1818 (message "Adjusting case ... Done")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1819 (set-syntax-table previous-syntax-table)))) |
10705 | 1820 |
1821 (defun ada-adjust-case-buffer () | |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
1822 "Adjust the case of all words in the whole buffer. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1823 ATTENTION: This function might take very long for big buffers!" |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1824 (interactive "*") |
10705 | 1825 (ada-adjust-case-region (point-min) (point-max))) |
1826 | |
1827 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1828 ;;-------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1829 ;; Format Parameter Lists |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1830 ;; Some special algorithms are provided to indent the parameter lists in |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1831 ;; subprogram declarations. This is done in two steps: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1832 ;; - First parses the parameter list. The returned list has the following |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1833 ;; format: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1834 ;; ( (<Param_Name> in? out? access? <Type_Name> <Default_Expression>) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1835 ;; ... ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1836 ;; This is done in `ada-scan-paramlist'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1837 ;; - Delete and recreate the parameter list in function |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1838 ;; `ada-insert-paramlist'. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1839 ;; Both steps are called from `ada-format-paramlist'. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1840 ;; Note: Comments inside the parameter list are lost. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1841 ;; The syntax has to be correct, or the reformating will fail. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1842 ;;-------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1843 |
10705 | 1844 (defun ada-format-paramlist () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1845 "Reformat the parameter list point is in." |
10705 | 1846 (interactive) |
1847 (let ((begin nil) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1848 (end nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1849 (delend nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1850 (paramlist nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1851 (previous-syntax-table (syntax-table))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1852 (unwind-protect |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1853 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1854 (set-syntax-table ada-mode-symbol-syntax-table) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1855 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1856 ;; check if really inside parameter list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1857 (or (ada-in-paramlist-p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1858 (error "Not in parameter list")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1859 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1860 ;; find start of current parameter-list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1861 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1862 (concat ada-subprog-start-re "\\|\\<body\\>" ) t nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1863 (down-list 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1864 (backward-char 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1865 (setq begin (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1866 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1867 ;; find end of parameter-list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1868 (forward-sexp 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1869 (setq delend (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1870 (delete-char -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1871 (insert "\n") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1872 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1873 ;; find end of last parameter-declaration |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1874 (forward-comment -1000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1875 (setq end (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1876 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1877 ;; build a list of all elements of the parameter-list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1878 (setq paramlist (ada-scan-paramlist (1+ begin) end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1879 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1880 ;; delete the original parameter-list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1881 (delete-region begin delend) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1882 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1883 ;; insert the new parameter-list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1884 (goto-char begin) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1885 (ada-insert-paramlist paramlist)) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1886 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1887 ;; restore syntax-table |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1888 (set-syntax-table previous-syntax-table) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1889 ))) |
10705 | 1890 |
1891 (defun ada-scan-paramlist (begin end) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1892 "Scan the parameter list found in between BEGIN and END. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1893 Return the equivalent internal parameter list." |
10705 | 1894 (let ((paramlist (list)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1895 (param (list)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1896 (notend t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1897 (apos nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1898 (epos nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1899 (semipos nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1900 (match-cons nil)) |
10705 | 1901 |
1902 (goto-char begin) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1903 |
10705 | 1904 ;; loop until end of last parameter |
1905 (while notend | |
1906 | |
1907 ;; find first character of parameter-declaration | |
1908 (ada-goto-next-non-ws) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1909 (setq apos (point)) |
10705 | 1910 |
1911 ;; find last character of parameter-declaration | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1912 (if (setq match-cons |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1913 (ada-search-ignore-string-comment "[ \t\n]*;" nil end t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1914 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1915 (setq epos (car match-cons)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1916 (setq semipos (cdr match-cons))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1917 (setq epos end)) |
10705 | 1918 |
1919 ;; read name(s) of parameter(s) | |
1920 (goto-char apos) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1921 (looking-at "\\(\\(\\sw\\|[_, \t\n]\\)*\\(\\sw\\|_\\)\\)[ \t\n]*:[^=]") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1922 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1923 (setq param (list (match-string 1))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1924 (ada-search-ignore-string-comment ":" nil epos t 'search-forward) |
10705 | 1925 |
1926 ;; look for 'in' | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1927 (setq apos (point)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1928 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1929 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1930 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1931 (consp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1932 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1933 "in" nil epos t 'word-search-forward))))) |
10705 | 1934 |
1935 ;; look for 'out' | |
1936 (goto-char apos) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1937 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1938 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1939 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1940 (consp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1941 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1942 "out" nil epos t 'word-search-forward))))) |
10705 | 1943 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1944 ;; look for 'access' |
10705 | 1945 (goto-char apos) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1946 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1947 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1948 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1949 (consp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1950 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1951 "access" nil epos t 'word-search-forward))))) |
10705 | 1952 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1953 ;; skip 'in'/'out'/'access' |
10705 | 1954 (goto-char apos) |
1955 (ada-goto-next-non-ws) | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1956 (while (looking-at "\\<\\(in\\|out\\|access\\)\\>") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1957 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1958 (ada-goto-next-non-ws)) |
10705 | 1959 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1960 ;; read type of parameter |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1961 ;; We accept spaces in the name, since some software like Rose |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1962 ;; generates something like: "A : B 'Class" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1963 (looking-at "\\<\\(\\sw\\|[_.' \t]\\)+\\>") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1964 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1965 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1966 (list (match-string 0)))) |
10705 | 1967 |
1968 ;; read default-expression, if there is one | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1969 (goto-char (setq apos (match-end 0))) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1970 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1971 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1972 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1973 (if (setq match-cons |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1974 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1975 ":=" nil epos t 'search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1976 (buffer-substring (car match-cons) epos) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1977 nil)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1978 |
10705 | 1979 ;; add this parameter-declaration to the list |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1980 (setq paramlist (append paramlist (list param))) |
10705 | 1981 |
1982 ;; check if it was the last parameter | |
1983 (if (eq epos end) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1984 (setq notend nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1985 (goto-char semipos)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1986 ) |
10705 | 1987 (reverse paramlist))) |
1988 | |
1989 (defun ada-insert-paramlist (paramlist) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1990 "Insert a formatted PARAMLIST in the buffer." |
10705 | 1991 (let ((i (length paramlist)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1992 (parlen 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1993 (typlen 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1994 (inp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1995 (outp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1996 (accessp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1997 (column nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1998 (firstcol nil)) |
10705 | 1999 |
2000 ;; loop until last parameter | |
2001 (while (not (zerop i)) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2002 (setq i (1- i)) |
10705 | 2003 |
2004 ;; get max length of parameter-name | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2005 (setq parlen (max parlen (length (nth 0 (nth i paramlist))))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2006 |
10705 | 2007 ;; get max length of type-name |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2008 (setq typlen (max typlen (length (nth 4 (nth i paramlist))))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2009 |
10705 | 2010 ;; is there any 'in' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2011 (setq inp (or inp (nth 1 (nth i paramlist)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2012 |
10705 | 2013 ;; is there any 'out' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2014 (setq outp (or outp (nth 2 (nth i paramlist)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2015 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2016 ;; is there any 'access' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2017 (setq accessp (or accessp (nth 3 (nth i paramlist)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2018 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2019 |
10705 | 2020 ;; does paramlist already start on a separate line ? |
2021 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2022 (re-search-backward "^.\\|[^ \t]" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2023 (looking-at "^.")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2024 ;; yes => re-indent it |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2025 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2026 (ada-indent-current) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2027 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2028 (if (looking-at "\\(is\\|return\\)") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2029 (replace-match " \\1")))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2030 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2031 ;; no => insert it where we are after removing any whitespace |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2032 (fixup-whitespace) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2033 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2034 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2035 ((looking-at "[ \t]*\\(\n\\|;\\)") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2036 (replace-match "\\1")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2037 ((looking-at "[ \t]*\\(is\\|return\\)") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2038 (replace-match " \\1")))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2039 (insert " ")) |
10705 | 2040 |
2041 (insert "(") | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2042 (ada-indent-current) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2043 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2044 (setq firstcol (current-column)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2045 (setq i (length paramlist)) |
10705 | 2046 |
2047 ;; loop until last parameter | |
2048 (while (not (zerop i)) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2049 (setq i (1- i)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2050 (setq column firstcol) |
10705 | 2051 |
2052 ;; insert parameter-name, space and colon | |
2053 (insert (nth 0 (nth i paramlist))) | |
2054 (indent-to (+ column parlen 1)) | |
2055 (insert ": ") | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2056 (setq column (current-column)) |
10705 | 2057 |
2058 ;; insert 'in' or space | |
2059 (if (nth 1 (nth i paramlist)) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2060 (insert "in ") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2061 (if (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2062 (or inp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2063 accessp) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2064 (not (nth 3 (nth i paramlist)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2065 (insert " "))) |
10705 | 2066 |
2067 ;; insert 'out' or space | |
2068 (if (nth 2 (nth i paramlist)) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2069 (insert "out ") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2070 (if (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2071 (or outp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2072 accessp) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2073 (not (nth 3 (nth i paramlist)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2074 (insert " "))) |
10705 | 2075 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2076 ;; insert 'access' |
10705 | 2077 (if (nth 3 (nth i paramlist)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2078 (insert "access ")) |
10705 | 2079 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2080 (setq column (current-column)) |
10705 | 2081 |
2082 ;; insert type-name and, if necessary, space and default-expression | |
2083 (insert (nth 4 (nth i paramlist))) | |
2084 (if (nth 5 (nth i paramlist)) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2085 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2086 (indent-to (+ column typlen 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2087 (insert (nth 5 (nth i paramlist))))) |
10705 | 2088 |
2089 ;; check if it was the last parameter | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2090 (if (zerop i) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2091 (insert ")") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2092 ;; no => insert ';' and newline and indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2093 (insert ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2094 (newline) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2095 (indent-to firstcol)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2096 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2097 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2098 ;; if anything follows, except semicolon, newline, is or return |
10705 | 2099 ;; put it in a new line and indent it |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2100 (unless (looking-at "[ \t]*\\(;\\|\n\\|is\\|return\\)") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2101 (ada-indent-newline-indent)) |
10705 | 2102 )) |
2103 | |
2104 | |
2105 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2106 ;;;---------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2107 ;; Indentation Engine |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2108 ;; All indentations are indicated as a two-element string: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2109 ;; - position of reference in the buffer |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2110 ;; - offset to indent from this position (can also be a symbol or a list |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2111 ;; that are evaluated) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2112 ;; Thus the total indentation for a line is the column number of the reference |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2113 ;; position plus whatever value the evaluation of the second element provides. |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
2114 ;; This mechanism is used so that the Ada mode can "explain" how the |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2115 ;; indentation was calculated, by showing which variables were used. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2116 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2117 ;; The indentation itself is done in only one pass: first we try to guess in |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2118 ;; what context we are by looking at the following keyword or punctuation |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2119 ;; sign. If nothing remarkable is found, just try to guess the indentation |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2120 ;; based on previous lines. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2121 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2122 ;; The relevant functions for indentation are: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2123 ;; - `ada-indent-region': Re-indent a region of text |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2124 ;; - `ada-justified-indent-current': Re-indent the current line and shows the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2125 ;; calculation that were done |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2126 ;; - `ada-indent-current': Re-indent the current line |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2127 ;; - `ada-get-current-indent': Calculate the indentation for the current line, |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2128 ;; based on the context (see above). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2129 ;; - `ada-get-indent-*': Calculate the indentation in a specific context. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2130 ;; For efficiency, these functions do not check they are in the correct |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2131 ;; context. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2132 ;;;---------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2133 |
10705 | 2134 (defun ada-indent-region (beg end) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2135 "Indent the region between BEG end END." |
10705 | 2136 (interactive "*r") |
2137 (goto-char beg) | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2138 (let ((block-done 0) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2139 (lines-remaining (count-lines beg end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2140 (msg (format "%%4d out of %4d lines remaining ..." |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2141 (count-lines beg end))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2142 (endmark (copy-marker end))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2143 ;; catch errors while indenting |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2144 (while (< (point) endmark) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2145 (if (> block-done 39) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2146 (progn |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2147 (setq lines-remaining (- lines-remaining block-done) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2148 block-done 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2149 (message msg lines-remaining))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2150 (if (= (char-after) ?\n) nil |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2151 (ada-indent-current)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2152 (forward-line 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2153 (setq block-done (1+ block-done))) |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
2154 (message "Indenting ... done"))) |
10705 | 2155 |
2156 (defun ada-indent-newline-indent () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2157 "Indent the current line, insert a newline and then indent the new line." |
10705 | 2158 (interactive "*") |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2159 (ada-indent-current) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2160 (newline) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2161 (ada-indent-current)) |
10705 | 2162 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2163 (defun ada-indent-newline-indent-conditional () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2164 "Insert a newline and indent it. |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2165 The original line is indented first if `ada-indent-after-return' is non-nil." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2166 (interactive "*") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2167 (if ada-indent-after-return (ada-indent-current)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2168 (newline) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2169 (ada-indent-current)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2170 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2171 (defun ada-justified-indent-current () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2172 "Indent the current line and explain how the calculation was done." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2173 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2174 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2175 (let ((cur-indent (ada-indent-current))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2176 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2177 (let ((line (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2178 (goto-char (car cur-indent)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2179 (count-lines 1 (point))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2180 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2181 (if (equal (cdr cur-indent) '(0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2182 (message (concat "same indentation as line " (number-to-string line))) |
65584
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2183 (message "%s" (mapconcat (lambda(x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2184 (cond |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2185 ((symbolp x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2186 (symbol-name x)) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2187 ((numberp x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2188 (number-to-string x)) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2189 ((listp x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2190 (concat "- " (symbol-name (cadr x)))) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2191 )) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2192 (cdr cur-indent) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2193 " + ")))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2194 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2195 (goto-char (car cur-indent)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2196 (sit-for 1)))) |
10705 | 2197 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2198 (defun ada-batch-reformat () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2199 "Re-indent and re-case all the files found on the command line. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2200 This function should be used from the Unix/Windows command line, with a |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2201 command like: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2202 emacs -batch -l ada-mode -f ada-batch-reformat file1 file2 ..." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2203 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2204 (while command-line-args-left |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2205 (let ((source (car command-line-args-left))) |
65584
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2206 (message "Formating %s" source) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2207 (find-file source) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2208 (ada-indent-region (point-min) (point-max)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2209 (ada-adjust-case-buffer) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2210 (write-file source)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2211 (setq command-line-args-left (cdr command-line-args-left))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2212 (message "Done") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2213 (kill-emacs 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2214 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2215 (defsubst ada-goto-previous-word () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2216 "Move point to the beginning of the previous word of Ada code. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2217 Return the new position of point or nil if not found." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2218 (ada-goto-next-word t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2219 |
10705 | 2220 (defun ada-indent-current () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2221 "Indent current line as Ada code. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2222 Return the calculation that was done, including the reference point and the |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2223 offset." |
10705 | 2224 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2225 (let ((previous-syntax-table (syntax-table)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2226 (orgpoint (point-marker)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2227 cur-indent tmp-indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2228 prev-indent) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2229 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2230 (unwind-protect |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2231 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2232 (set-syntax-table ada-mode-symbol-syntax-table) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2233 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2234 ;; This need to be done here so that the advice is not always |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2235 ;; activated (this might interact badly with other modes) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2236 (if (featurep 'xemacs) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2237 (ad-activate 'parse-partial-sexp t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2238 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2239 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2240 (setq cur-indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2241 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2242 ;; Not First line in the buffer ? |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2243 (if (save-excursion (zerop (forward-line -1))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2244 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2245 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2246 (ada-get-current-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2247 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2248 ;; first line in the buffer |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2249 (list (point-min) 0)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2250 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2251 ;; Evaluate the list to get the column to indent to |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2252 ;; prev-indent contains the column to indent to |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2253 (if cur-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2254 (setq prev-indent (save-excursion (goto-char (car cur-indent)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2255 (current-column)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2256 tmp-indent (cdr cur-indent)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2257 (setq prev-indent 0 tmp-indent '())) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2258 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2259 (while (not (null tmp-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2260 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2261 ((numberp (car tmp-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2262 (setq prev-indent (+ prev-indent (car tmp-indent)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2263 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2264 (setq prev-indent (+ prev-indent (eval (car tmp-indent))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2265 ) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2266 (setq tmp-indent (cdr tmp-indent))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2267 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2268 ;; only re-indent if indentation is different then the current |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2269 (if (= (save-excursion (back-to-indentation) (current-column)) prev-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2270 nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2271 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2272 (delete-horizontal-space) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2273 (indent-to prev-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2274 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2275 ;; restore position of point |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2276 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2277 (goto-char orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2278 (if (< (current-column) (current-indentation)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2279 (back-to-indentation))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2280 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2281 ;; restore syntax-table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2282 (set-syntax-table previous-syntax-table) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
2283 (if (featurep 'xemacs) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2284 (ad-deactivate 'parse-partial-sexp)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2285 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2286 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2287 cur-indent |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2288 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2289 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2290 (defun ada-get-current-indent () |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2291 "Return the indentation to use for the current line." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2292 (let (column |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2293 pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2294 match-cons |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2295 result |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2296 (orgpoint (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2297 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2298 (forward-comment -10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2299 (forward-line 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2300 (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2301 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2302 (setq result |
10705 | 2303 (cond |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2304 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2305 ;;----------------------------- |
10705 | 2306 ;; in open parenthesis, but not in parameter-list |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2307 ;;----------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2308 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2309 ((and ada-indent-to-open-paren |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2310 (not (ada-in-paramlist-p)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2311 (setq column (ada-in-open-paren-p))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2312 |
10705 | 2313 ;; check if we have something like this (Table_Component_Type => |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2314 ;; Source_File_Record) |
10705 | 2315 (save-excursion |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2316 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2317 ;; Align the closing parenthesis on the opening one |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2318 (if (= (following-char) ?\)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2319 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2320 (goto-char column) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2321 (skip-chars-backward " \t") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2322 (list (1- (point)) 0)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2323 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2324 (if (and (skip-chars-backward " \t") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2325 (= (char-before) ?\n) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2326 (not (forward-comment -10000)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2327 (= (char-before) ?>)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2328 ;; ??? Could use a different variable |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2329 (list column 'ada-broken-indent) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2330 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2331 ;; We want all continuation lines to be indented the same |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2332 ;; (ada-broken-line from the opening parenthesis. However, in |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2333 ;; parameter list, each new parameter should be indented at the |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2334 ;; column as the opening parenthesis. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2335 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2336 ;; A special case to handle nested boolean expressions, as in |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2337 ;; ((B |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2338 ;; and then C) -- indented by ada-broken-indent |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2339 ;; or else D) -- indenting this line. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2340 ;; ??? This is really a hack, we should have a proper way to go to |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2341 ;; ??? the beginning of the statement |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2342 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2343 (if (= (char-before) ?\)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2344 (backward-sexp)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2345 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2346 (if (memq (char-before) '(?, ?\; ?\( ?\))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2347 (list column 0) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2348 (list column 'ada-continuation-indent) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2349 ))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2350 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2351 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2352 ;; at end of buffer |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2353 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2354 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2355 ((not (char-after)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2356 (ada-indent-on-previous-lines nil orgpoint orgpoint)) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2357 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2358 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2359 ;; starting with e |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2360 ;;--------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2361 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2362 ((= (downcase (char-after)) ?e) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2363 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2364 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2365 ;; ------- end ------ |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2366 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2367 ((looking-at "end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2368 (let ((label 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2369 limit) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2370 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2371 (ada-goto-matching-start 1) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2372 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2373 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2374 ;; found 'loop' => skip back to 'while' or 'for' |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2375 ;; if 'loop' is not on a separate line |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2376 ;; Stop the search for 'while' and 'for' when a ';' is encountered. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2377 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2378 (if (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2379 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2380 (looking-at ".+\\<loop\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2381 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2382 (save-excursion |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2383 (setq limit (car (ada-search-ignore-string-comment ";" t)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2384 (if (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2385 (and |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2386 (setq match-cons |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2387 (ada-search-ignore-string-comment ada-loop-start-re t limit)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2388 (not (looking-at "\\<loop\\>")))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2389 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2390 (goto-char (car match-cons)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2391 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2392 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2393 (if (looking-at ada-named-block-re) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2394 (setq label (- ada-label-indent)))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2395 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2396 ;; found 'record' => |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2397 ;; if the keyword is found at the beginning of a line (or just |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2398 ;; after limited, we indent on it, otherwise we indent on the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2399 ;; beginning of the type declaration) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2400 ;; type A is (B : Integer; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2401 ;; C : Integer) is record |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2402 ;; end record; -- This is badly indented otherwise |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2403 (if (looking-at "record") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2404 (if (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2405 (beginning-of-line) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2406 (looking-at "^[ \t]*\\(record\\|limited record\\)")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2407 (list (save-excursion (back-to-indentation) (point)) 0) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2408 (list (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2409 (car (ada-search-ignore-string-comment "\\<type\\>" t))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2410 0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2411 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2412 ;; Else keep the same indentation as the beginning statement |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2413 (list (+ (save-excursion (back-to-indentation) (point)) label) 0))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2414 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2415 ;; ------ exception ---- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2416 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2417 ((looking-at "exception\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2418 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2419 (ada-goto-matching-start 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2420 (list (save-excursion (back-to-indentation) (point)) 0))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2421 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2422 ;; else |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2423 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2424 ((looking-at "else\\>") |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
2425 (if (save-excursion (ada-goto-previous-word) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2426 (looking-at "\\<or\\>")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2427 (ada-indent-on-previous-lines nil orgpoint orgpoint) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2428 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2429 (ada-goto-matching-start 1 nil t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2430 (list (progn (back-to-indentation) (point)) 0)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2431 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2432 ;; elsif |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2433 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2434 ((looking-at "elsif\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2435 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2436 (ada-goto-matching-start 1 nil t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2437 (list (progn (back-to-indentation) (point)) 0))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2438 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2439 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2440 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2441 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2442 ;; starting with w (when) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2443 ;;--------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2444 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2445 ((and (= (downcase (char-after)) ?w) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2446 (looking-at "when\\>")) |
10705 | 2447 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2448 (ada-goto-matching-start 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2449 (list (save-excursion (back-to-indentation) (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2450 'ada-when-indent))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2451 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2452 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2453 ;; starting with t (then) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2454 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2455 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2456 ((and (= (downcase (char-after)) ?t) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2457 (looking-at "then\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2458 (if (save-excursion (ada-goto-previous-word) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2459 (looking-at "and\\>")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2460 (ada-indent-on-previous-lines nil orgpoint orgpoint) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2461 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2462 ;; Select has been added for the statement: "select ... then abort" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2463 (ada-search-ignore-string-comment |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2464 "\\<\\(elsif\\|if\\|select\\)\\>" t nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2465 (list (progn (back-to-indentation) (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2466 'ada-stmt-end-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2467 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2468 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2469 ;; starting with l (loop) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2470 ;;--------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2471 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2472 ((and (= (downcase (char-after)) ?l) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2473 (looking-at "loop\\>")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2474 (setq pos (point)) |
10705 | 2475 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2476 (goto-char (match-end 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2477 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2478 (if (looking-at "\\<\\(loop\\|if\\)\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2479 (ada-indent-on-previous-lines nil orgpoint orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2480 (unless (looking-at ada-loop-start-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2481 (ada-search-ignore-string-comment ada-loop-start-re |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2482 nil pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2483 (if (looking-at "\\<loop\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2484 (ada-indent-on-previous-lines nil orgpoint orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2485 (list (progn (back-to-indentation) (point)) 'ada-stmt-end-indent))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2486 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2487 ;;---------------------------- |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2488 ;; starting with l (limited) or r (record) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2489 ;;---------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2490 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2491 ((or (and (= (downcase (char-after)) ?l) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2492 (looking-at "limited\\>")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2493 (and (= (downcase (char-after)) ?r) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2494 (looking-at "record\\>"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2495 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2496 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2497 (ada-search-ignore-string-comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2498 "\\<\\(type\\|use\\)\\>" t nil) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2499 (if (looking-at "\\<use\\>") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2500 (ada-search-ignore-string-comment "for" t nil nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2501 'word-search-backward)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2502 (list (progn (back-to-indentation) (point)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2503 'ada-indent-record-rel-type))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2504 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2505 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2506 ;; starting with b (begin) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2507 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2508 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2509 ((and (= (downcase (char-after)) ?b) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2510 (looking-at "begin\\>")) |
10705 | 2511 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2512 (if (ada-goto-matching-decl-start t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2513 (list (progn (back-to-indentation) (point)) 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2514 (ada-indent-on-previous-lines nil orgpoint orgpoint)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2515 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2516 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2517 ;; starting with i (is) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2518 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2519 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2520 ((and (= (downcase (char-after)) ?i) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2521 (looking-at "is\\>")) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2522 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2523 (if (and ada-indent-is-separate |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2524 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2525 (goto-char (match-end 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2526 (ada-goto-next-non-ws (save-excursion (end-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2527 (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2528 (looking-at "\\<abstract\\>\\|\\<separate\\>"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2529 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2530 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2531 (list (progn (back-to-indentation) (point)) 'ada-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2532 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2533 (ada-goto-stmt-start) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2534 (if (looking-at "\\<package\\|procedure\\|function\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2535 (list (progn (back-to-indentation) (point)) 0) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2536 (list (progn (back-to-indentation) (point)) 'ada-indent))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2537 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2538 ;;--------------------------- |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2539 ;; starting with r (return, renames) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2540 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2541 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2542 ((and (= (downcase (char-after)) ?r) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2543 (looking-at "re\\(turn\\|names\\)\\>")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2544 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2545 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2546 (let ((var 'ada-indent-return)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2547 ;; If looking at a renames, skip the 'return' statement too |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2548 (if (looking-at "renames") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2549 (let (pos) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2550 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2551 (set 'pos (ada-search-ignore-string-comment ";\\|return\\>" t))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2552 (if (and pos |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2553 (= (downcase (char-after (car pos))) ?r)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2554 (goto-char (car pos))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2555 (set 'var 'ada-indent-renames))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2556 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2557 (forward-comment -1000) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2558 (if (= (char-before) ?\)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2559 (forward-sexp -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2560 (forward-word -1)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2561 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2562 ;; If there is a parameter list, and we have a function declaration |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2563 ;; or a access to subprogram declaration |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2564 (let ((num-back 1)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2565 (if (and (= (following-char) ?\() |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2566 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2567 (or (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2568 (backward-word 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2569 (looking-at "\\(function\\|procedure\\)\\>")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2570 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2571 (backward-word 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2572 (set 'num-back 2) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2573 (looking-at "\\(function\\|procedure\\)\\>"))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2574 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2575 ;; The indentation depends of the value of ada-indent-return |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2576 (if (<= (eval var) 0) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2577 (list (point) (list '- var)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2578 (list (progn (backward-word num-back) (point)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2579 var)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2580 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2581 ;; Else there is no parameter list, but we have a function |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2582 ;; Only do something special if the user want to indent |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2583 ;; relative to the "function" keyword |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2584 (if (and (> (eval var) 0) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2585 (save-excursion (forward-word -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2586 (looking-at "function\\>"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2587 (list (progn (forward-word -1) (point)) var) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2588 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2589 ;; Else... |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2590 (ada-indent-on-previous-lines nil orgpoint orgpoint))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2591 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2592 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2593 ;; starting with 'o' or 'p' |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2594 ;; 'or' as statement-start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2595 ;; 'private' as statement-start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2596 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2597 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2598 ((and (or (= (downcase (char-after)) ?o) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2599 (= (downcase (char-after)) ?p)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2600 (or (ada-looking-at-semi-or) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2601 (ada-looking-at-semi-private))) |
10705 | 2602 (save-excursion |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2603 ;; ??? Wasn't this done already in ada-looking-at-semi-or ? |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2604 (ada-goto-matching-start 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2605 (list (progn (back-to-indentation) (point)) 0))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2606 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2607 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2608 ;; starting with 'd' (do) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2609 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2610 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2611 ((and (= (downcase (char-after)) ?d) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2612 (looking-at "do\\>")) |
10705 | 2613 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2614 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2615 (list (progn (back-to-indentation) (point)) 'ada-stmt-end-indent))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2616 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2617 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2618 ;; starting with '-' (comment) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2619 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2620 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2621 ((= (char-after) ?-) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2622 (if ada-indent-comment-as-code |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2623 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2624 ;; Indent comments on previous line comments if required |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2625 ;; We must use a search-forward (even if the code is more complex), |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2626 ;; since we want to find the beginning of the comment. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2627 (let (pos) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2628 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2629 (if (and ada-indent-align-comments |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2630 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2631 (forward-line -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2632 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2633 (while (and (not pos) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2634 (search-forward "--" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2635 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2636 (end-of-line) (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2637 t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2638 (unless (ada-in-string-p) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2639 (setq pos (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2640 pos)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2641 (list (- pos 2) 0) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2642 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2643 ;; Else always on previous line |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2644 (ada-indent-on-previous-lines nil orgpoint orgpoint))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2645 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2646 ;; Else same indentation as the previous line |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2647 (list (save-excursion (back-to-indentation) (point)) 0))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2648 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2649 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2650 ;; starting with '#' (preprocessor line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2651 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2652 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2653 ((and (= (char-after) ?#) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2654 (equal ada-which-compiler 'gnat) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2655 (looking-at "#[ \t]*\\(if\\|els\\(e\\|if\\)\\|end[ \t]*if\\)")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2656 (list (save-excursion (beginning-of-line) (point)) 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2657 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2658 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2659 ;; starting with ')' (end of a parameter list) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2660 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2661 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2662 ((and (not (eobp)) (= (char-after) ?\))) |
10705 | 2663 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2664 (forward-char 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2665 (backward-sexp 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2666 (list (point) 0))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2667 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2668 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2669 ;; new/abstract/separate |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2670 ;;--------------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2671 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2672 ((looking-at "\\(new\\|abstract\\|separate\\)\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2673 (ada-indent-on-previous-lines nil orgpoint orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2674 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2675 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2676 ;; package/function/procedure |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2677 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2678 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2679 ((and (or (= (downcase (char-after)) ?p) (= (downcase (char-after)) ?f)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2680 (looking-at "\\<\\(package\\|function\\|procedure\\)\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2681 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2682 ;; Go up until we find either a generic section, or the end of the |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2683 ;; previous subprogram/package |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2684 (let (found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2685 (while (and (not found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2686 (ada-search-ignore-string-comment |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2687 "\\<\\(generic\\|end\\|begin\\|package\\|procedure\\|function\\)\\>" t)) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2688 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2689 ;; avoid "with procedure"... in generic parts |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2690 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2691 (forward-word -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2692 (setq found (not (looking-at "with")))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2693 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2694 (if (looking-at "generic") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2695 (list (progn (back-to-indentation) (point)) 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2696 (ada-indent-on-previous-lines nil orgpoint orgpoint)))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2697 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2698 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2699 ;; label |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2700 ;;--------------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2701 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2702 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2703 (if (ada-in-decl-p) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2704 (ada-indent-on-previous-lines nil orgpoint orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2705 (append (ada-indent-on-previous-lines nil orgpoint orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2706 '(ada-label-indent)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2707 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2708 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2709 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2710 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2711 ;; Other syntaxes |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2712 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2713 (or result (ada-indent-on-previous-lines nil orgpoint orgpoint)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2714 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2715 (defun ada-indent-on-previous-lines (&optional nomove orgpoint initial-pos) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2716 "Calculate the indentation for the new line after ORGPOINT. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2717 The result list is based on the previous lines in the buffer. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2718 If NOMOVE is nil, moves point to the beginning of the current statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2719 if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2720 (if initial-pos |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2721 (goto-char initial-pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2722 (let ((oldpoint (point))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2723 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2724 ;; Is inside a parameter-list ? |
10705 | 2725 (if (ada-in-paramlist-p) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2726 (ada-get-indent-paramlist) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2727 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2728 ;; move to beginning of current statement |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2729 (unless nomove |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2730 (ada-goto-stmt-start)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2731 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2732 ;; no beginning found => don't change indentation |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2733 (if (and (eq oldpoint (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2734 (not nomove)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2735 (ada-get-indent-nochange) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2736 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2737 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2738 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2739 ((and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2740 ada-indent-to-open-paren |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2741 (ada-in-open-paren-p)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2742 (ada-get-indent-open-paren)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2743 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2744 ((looking-at "end\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2745 (ada-get-indent-end orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2746 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2747 ((looking-at ada-loop-start-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2748 (ada-get-indent-loop orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2749 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2750 ((looking-at ada-subprog-start-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2751 (ada-get-indent-subprog orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2752 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2753 ((looking-at ada-block-start-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2754 (ada-get-indent-block-start orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2755 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2756 ((looking-at "\\(sub\\)?type\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2757 (ada-get-indent-type orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2758 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2759 ;; "then" has to be included in the case of "select...then abort" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2760 ;; statements, since (goto-stmt-start) at the beginning of |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2761 ;; the current function would leave the cursor on that position |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2762 ((looking-at "\\(\\(els\\)?if\\>\\)\\|then abort\\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2763 (ada-get-indent-if orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2764 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2765 ((looking-at "case\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2766 (ada-get-indent-case orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2767 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2768 ((looking-at "when\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2769 (ada-get-indent-when orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2770 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2771 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2772 (ada-get-indent-label orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2773 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2774 ((looking-at "separate\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2775 (ada-get-indent-nochange)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2776 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2777 ;; A label |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2778 ((looking-at "<<") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2779 (list (+ (save-excursion (back-to-indentation) (point)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2780 (- ada-label-indent)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2781 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2782 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2783 ((looking-at "with\\>\\|use\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2784 ;; Are we still in that statement, or are we in fact looking at |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2785 ;; the previous one ? |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2786 (if (save-excursion (search-forward ";" oldpoint t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2787 (list (progn (back-to-indentation) (point)) 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2788 (list (point) (if (looking-at "with") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2789 'ada-with-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2790 'ada-use-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2791 ;; |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2792 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2793 (ada-get-indent-noindent orgpoint))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2794 )) |
10705 | 2795 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2796 (defun ada-get-indent-open-paren () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2797 "Calculate the indentation when point is behind an unclosed parenthesis." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2798 (list (ada-in-open-paren-p) 0)) |
10705 | 2799 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2800 (defun ada-get-indent-nochange () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2801 "Return the current indentation of the previous line." |
10705 | 2802 (save-excursion |
2803 (forward-line -1) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2804 (back-to-indentation) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2805 (list (point) 0))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2806 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2807 (defun ada-get-indent-paramlist () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2808 "Calculate the indentation when point is inside a parameter list." |
10705 | 2809 (save-excursion |
2810 (ada-search-ignore-string-comment "[^ \t\n]" t nil t) | |
2811 (cond | |
2812 ;; in front of the first parameter | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2813 ((= (char-after) ?\() |
10705 | 2814 (goto-char (match-end 0)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2815 (list (point) 0)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2816 |
10705 | 2817 ;; in front of another parameter |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2818 ((= (char-after) ?\;) |
10705 | 2819 (goto-char (cdr (ada-search-ignore-string-comment "(\\|;" t nil t))) |
2820 (ada-goto-next-non-ws) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2821 (list (point) 0)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2822 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2823 ;; After an affectation (default parameter value in subprogram |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2824 ;; declaration) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2825 ((and (= (following-char) ?=) (= (preceding-char) ?:)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2826 (back-to-indentation) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2827 (list (point) 'ada-broken-indent)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2828 |
10705 | 2829 ;; inside a parameter declaration |
2830 (t | |
2831 (goto-char (cdr (ada-search-ignore-string-comment "(\\|;" t nil t))) | |
2832 (ada-goto-next-non-ws) | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2833 (list (point) 0))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2834 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2835 (defun ada-get-indent-end (orgpoint) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2836 "Calculate the indentation when point is just before an end statement. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2837 ORGPOINT is the limit position used in the calculation." |
10705 | 2838 (let ((defun-name nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2839 (indent nil)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2840 |
10705 | 2841 ;; is the line already terminated by ';' ? |
2842 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2843 (ada-search-ignore-string-comment ";" nil orgpoint nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2844 'search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2845 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2846 ;; yes, look what's following 'end' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2847 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2848 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2849 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2850 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2851 ((looking-at "\\<\\(loop\\|select\\|if\\|case\\)\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2852 (save-excursion (ada-check-matching-start (match-string 0))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2853 (list (save-excursion (back-to-indentation) (point)) 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2854 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2855 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2856 ;; loop/select/if/case/record/select |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2857 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2858 ((looking-at "\\<record\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2859 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2860 (ada-check-matching-start (match-string 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2861 ;; we are now looking at the matching "record" statement |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2862 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2863 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2864 ;; now on the matching type declaration, or use clause |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2865 (unless (looking-at "\\(for\\|type\\)\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2866 (ada-search-ignore-string-comment "\\<type\\>" t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2867 (list (progn (back-to-indentation) (point)) 0))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2868 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2869 ;; a named block end |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2870 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2871 ((looking-at ada-ident-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2872 (setq defun-name (match-string 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2873 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2874 (ada-goto-matching-start 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2875 (ada-check-defun-name defun-name)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2876 (list (progn (back-to-indentation) (point)) 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2877 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2878 ;; a block-end without name |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2879 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2880 ((= (char-after) ?\;) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2881 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2882 (ada-goto-matching-start 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2883 (if (looking-at "\\<begin\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2884 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2885 (setq indent (list (point) 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2886 (if (ada-goto-matching-decl-start t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2887 (list (progn (back-to-indentation) (point)) 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2888 indent)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2889 (list (progn (back-to-indentation) (point)) 0) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2890 ))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2891 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2892 ;; anything else - should maybe signal an error ? |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2893 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2894 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2895 (list (save-excursion (back-to-indentation) (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2896 'ada-broken-indent)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2897 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2898 (list (save-excursion (back-to-indentation) (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2899 'ada-broken-indent)))) |
10705 | 2900 |
2901 (defun ada-get-indent-case (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2902 "Calculate the indentation when point is just before a case statement. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2903 ORGPOINT is the limit position used in the calculation." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2904 (let ((match-cons nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2905 (opos (point))) |
10705 | 2906 (cond |
2907 ;; | |
2908 ;; case..is..when..=> | |
2909 ;; | |
2910 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2911 (setq match-cons (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2912 ;; the `=>' must be after the keyword `is'. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2913 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2914 "is" nil orgpoint nil 'word-search-forward) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2915 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2916 "[ \t\n]+=>" nil orgpoint)))) |
10705 | 2917 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2918 (goto-char (car match-cons)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2919 (unless (ada-search-ignore-string-comment "when" t opos) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2920 (error "Missing 'when' between 'case' and '=>'")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2921 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))) |
10705 | 2922 ;; |
2923 ;; case..is..when | |
2924 ;; | |
2925 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2926 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2927 "when" nil orgpoint nil 'word-search-forward))) |
10705 | 2928 (goto-char (cdr match-cons)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2929 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
10705 | 2930 ;; |
2931 ;; case..is | |
2932 ;; | |
2933 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2934 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2935 "is" nil orgpoint nil 'word-search-forward))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2936 (list (save-excursion (back-to-indentation) (point)) 'ada-when-indent)) |
10705 | 2937 ;; |
2938 ;; incomplete case | |
2939 ;; | |
2940 (t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2941 (list (save-excursion (back-to-indentation) (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2942 'ada-broken-indent))))) |
10705 | 2943 |
2944 (defun ada-get-indent-when (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2945 "Calculate the indentation when point is just before a when statement. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2946 ORGPOINT is the limit position used in the calculation." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2947 (let ((cur-indent (save-excursion (back-to-indentation) (point)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2948 (if (ada-search-ignore-string-comment "[ \t\n]*=>" nil orgpoint) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2949 (list cur-indent 'ada-indent) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2950 (list cur-indent 'ada-broken-indent)))) |
10705 | 2951 |
2952 (defun ada-get-indent-if (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2953 "Calculate the indentation when point is just before an if statement. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2954 ORGPOINT is the limit position used in the calculation." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2955 (let ((cur-indent (save-excursion (back-to-indentation) (point))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2956 (match-cons nil)) |
10705 | 2957 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2958 ;; Move to the correct then (ignore all "and then") |
10705 | 2959 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2960 (while (and (setq match-cons (ada-search-ignore-string-comment |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2961 "\\<\\(then\\|and[ \t]*then\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2962 nil orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2963 (= (downcase (char-after (car match-cons))) ?a))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2964 ;; If "then" was found (we are looking at it) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2965 (if match-cons |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2966 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2967 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2968 ;; 'then' first in separate line ? |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2969 ;; => indent according to 'then', |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2970 ;; => else indent according to 'if' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2971 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2972 (if (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2973 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2974 (looking-at "\\<then\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2975 (setq cur-indent (save-excursion (back-to-indentation) (point)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2976 ;; skip 'then' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2977 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2978 (list cur-indent 'ada-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2979 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2980 (list cur-indent 'ada-broken-indent)))) |
10705 | 2981 |
2982 (defun ada-get-indent-block-start (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2983 "Calculate the indentation when point is at the start of a block. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2984 ORGPOINT is the limit position used in the calculation." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2985 (let ((pos nil)) |
10705 | 2986 (cond |
2987 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2988 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2989 (setq pos (ada-goto-next-non-ws orgpoint))) |
10705 | 2990 (goto-char pos) |
2991 (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2992 (ada-indent-on-previous-lines t orgpoint))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2993 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2994 ;; Special case for record types, for instance for: |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2995 ;; type A is (B : Integer; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2996 ;; C : Integer) is record |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2997 ;; null; -- This is badly indented otherwise |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2998 ((looking-at "record") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2999 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3000 ;; If record is at the beginning of the line, indent from there |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3001 (if (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3002 (beginning-of-line) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3003 (looking-at "^[ \t]*\\(record\\|limited record\\)")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3004 (list (save-excursion (back-to-indentation) (point)) 'ada-indent) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3005 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3006 ;; else indent relative to the type command |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3007 (list (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3008 (car (ada-search-ignore-string-comment "\\<type\\>" t))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3009 'ada-indent))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3010 |
10705 | 3011 ;; nothing follows the block-start |
3012 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3013 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))))) |
10705 | 3014 |
3015 (defun ada-get-indent-subprog (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3016 "Calculate the indentation when point is just before a subprogram. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3017 ORGPOINT is the limit position used in the calculation." |
10705 | 3018 (let ((match-cons nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3019 (cur-indent (save-excursion (back-to-indentation) (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3020 (foundis nil)) |
10705 | 3021 ;; |
3022 ;; is there an 'is' in front of point ? | |
3023 ;; | |
3024 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3025 (setq match-cons |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3026 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3027 "\\<\\(is\\|do\\)\\>" nil orgpoint))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3028 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3029 ;; yes, then skip to its end |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3030 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3031 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3032 (setq foundis t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3033 (goto-char (cdr match-cons))) |
10705 | 3034 ;; |
3035 ;; no, then goto next non-ws, if there is one in front of point | |
3036 ;; | |
3037 (progn | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3038 (unless (ada-goto-next-non-ws orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3039 (goto-char orgpoint)))) |
10705 | 3040 |
3041 (cond | |
3042 ;; | |
3043 ;; nothing follows 'is' | |
3044 ;; | |
3045 ((and | |
3046 foundis | |
3047 (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3048 (not (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3049 "[^ \t\n]" nil orgpoint t)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3050 (list cur-indent 'ada-indent)) |
10705 | 3051 ;; |
3052 ;; is abstract/separate/new ... | |
3053 ;; | |
3054 ((and | |
3055 foundis | |
3056 (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3057 (setq match-cons |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3058 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3059 "\\<\\(separate\\|new\\|abstract\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3060 nil orgpoint)))) |
10705 | 3061 (goto-char (car match-cons)) |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
3062 (ada-search-ignore-string-comment ada-subprog-start-re t) |
10705 | 3063 (ada-get-indent-noindent orgpoint)) |
3064 ;; | |
3065 ;; something follows 'is' | |
3066 ;; | |
3067 ((and | |
3068 foundis | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3069 (save-excursion (setq match-cons (ada-goto-next-non-ws orgpoint))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3070 (goto-char match-cons) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3071 (ada-indent-on-previous-lines t orgpoint))) |
10705 | 3072 ;; |
3073 ;; no 'is' but ';' | |
3074 ;; | |
3075 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3076 (ada-search-ignore-string-comment ";" nil orgpoint nil 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3077 (list cur-indent 0)) |
10705 | 3078 ;; |
3079 ;; no 'is' or ';' | |
3080 ;; | |
3081 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3082 (list cur-indent 'ada-broken-indent))))) |
10705 | 3083 |
3084 (defun ada-get-indent-noindent (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3085 "Calculate the indentation when point is just before a 'noindent stmt'. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3086 ORGPOINT is the limit position used in the calculation." |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3087 (let ((label 0)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3088 (save-excursion |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3089 (beginning-of-line) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3090 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3091 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3092 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3093 ;; This one is called when indenting a line preceded by a multi-line |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3094 ;; subprogram declaration (in that case, we are at this point inside |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3095 ;; the parameter declaration list) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3096 ((ada-in-paramlist-p) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3097 (ada-previous-procedure) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3098 (list (save-excursion (back-to-indentation) (point)) 0)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3099 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3100 ;; This one is called when indenting the second line of a multi-line |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3101 ;; declaration section, in a declare block or a record declaration |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3102 ((looking-at "[ \t]*\\(\\sw\\|_\\)*[ \t]*,[ \t]*$") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3103 (list (save-excursion (back-to-indentation) (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3104 'ada-broken-decl-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3105 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3106 ;; This one is called in every over case when indenting a line at the |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3107 ;; top level |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3108 (t |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3109 (if (looking-at ada-named-block-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3110 (setq label (- ada-label-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3111 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3112 (let (p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3113 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3114 ;; "with private" or "null record" cases |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3115 (if (or (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3116 (and (ada-search-ignore-string-comment "\\<private\\>" nil orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3117 (setq p (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3118 (save-excursion (forward-char -7);; skip back "private" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3119 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3120 (looking-at "with")))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3121 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3122 (and (ada-search-ignore-string-comment "\\<record\\>" nil orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3123 (setq p (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3124 (save-excursion (forward-char -6);; skip back "record" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3125 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3126 (looking-at "null"))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3127 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3128 (goto-char p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3129 (re-search-backward "\\<\\(type\\|subtype\\)\\>" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3130 (list (save-excursion (back-to-indentation) (point)) 0))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3131 (if (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3132 (ada-search-ignore-string-comment ";" nil orgpoint nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3133 'search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3134 (list (+ (save-excursion (back-to-indentation) (point)) label) 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3135 (list (+ (save-excursion (back-to-indentation) (point)) label) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3136 'ada-broken-indent))))))) |
10705 | 3137 |
3138 (defun ada-get-indent-label (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3139 "Calculate the indentation when before a label or variable declaration. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3140 ORGPOINT is the limit position used in the calculation." |
10705 | 3141 (let ((match-cons nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3142 (cur-indent (save-excursion (back-to-indentation) (point)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3143 (ada-search-ignore-string-comment ":" nil) |
10705 | 3144 (cond |
3145 ;; loop label | |
3146 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3147 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3148 ada-loop-start-re nil orgpoint))) |
10705 | 3149 (goto-char (car match-cons)) |
3150 (ada-get-indent-loop orgpoint)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3151 |
10705 | 3152 ;; declare label |
3153 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3154 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3155 "\\<declare\\|begin\\>" nil orgpoint))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3156 (goto-char (car match-cons)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3157 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3158 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3159 ;; variable declaration |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3160 ((ada-in-decl-p) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3161 (if (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3162 (ada-search-ignore-string-comment ";" nil orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3163 (list cur-indent 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3164 (list cur-indent 'ada-broken-indent))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3165 |
10705 | 3166 ;; nothing follows colon |
3167 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3168 (list cur-indent '(- ada-label-indent)))))) |
10705 | 3169 |
3170 (defun ada-get-indent-loop (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3171 "Calculate the indentation when just before a loop or a for ... use. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3172 ORGPOINT is the limit position used in the calculation." |
10705 | 3173 (let ((match-cons nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3174 (pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3175 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3176 ;; If looking at a named block, skip the label |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3177 (label (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3178 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3179 (if (looking-at ada-named-block-re) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3180 (- ada-label-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3181 0)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3182 |
10705 | 3183 (cond |
3184 | |
3185 ;; | |
3186 ;; statement complete | |
3187 ;; | |
3188 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3189 (ada-search-ignore-string-comment ";" nil orgpoint nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3190 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3191 (list (+ (save-excursion (back-to-indentation) (point)) label) 0)) |
10705 | 3192 ;; |
3193 ;; simple loop | |
3194 ;; | |
3195 ((looking-at "loop\\>") | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3196 (setq pos (ada-get-indent-block-start orgpoint)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3197 (if (equal label 0) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3198 pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3199 (list (+ (car pos) label) (cdr pos)))) |
10705 | 3200 |
3201 ;; | |
3202 ;; 'for'- loop (or also a for ... use statement) | |
3203 ;; | |
3204 ((looking-at "for\\>") | |
3205 (cond | |
3206 ;; | |
3207 ;; for ... use | |
3208 ;; | |
3209 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3210 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3211 (goto-char (match-end 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3212 (ada-goto-next-non-ws orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3213 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3214 (if (= (char-after) ?') (forward-word 1) t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3215 (ada-goto-next-non-ws orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3216 (looking-at "\\<use\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3217 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3218 ;; check if there is a 'record' before point |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3219 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3220 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3221 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3222 "record" nil orgpoint nil 'word-search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3223 t))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3224 (if match-cons |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3225 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3226 (goto-char (car match-cons)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3227 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3228 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3229 ) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3230 |
10705 | 3231 ;; |
3232 ;; for..loop | |
3233 ;; | |
3234 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3235 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3236 "loop" nil orgpoint nil 'word-search-forward))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3237 (goto-char (car match-cons)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3238 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3239 ;; indent according to 'loop', if it's first in the line; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3240 ;; otherwise to 'for' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3241 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3242 (unless (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3243 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3244 (looking-at "\\<loop\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3245 (goto-char pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3246 (list (+ (save-excursion (back-to-indentation) (point)) label) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3247 'ada-indent)) |
10705 | 3248 ;; |
3249 ;; for-statement is broken | |
3250 ;; | |
3251 (t | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3252 (list (+ (save-excursion (back-to-indentation) (point)) label) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3253 'ada-broken-indent)))) |
10705 | 3254 |
3255 ;; | |
3256 ;; 'while'-loop | |
3257 ;; | |
3258 ((looking-at "while\\>") | |
3259 ;; | |
3260 ;; while..loop ? | |
3261 ;; | |
3262 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3263 (setq match-cons (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3264 "loop" nil orgpoint nil 'word-search-forward))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3265 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3266 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3267 (goto-char (car match-cons)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3268 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3269 ;; indent according to 'loop', if it's first in the line; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3270 ;; otherwise to 'while'. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3271 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3272 (unless (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3273 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3274 (looking-at "\\<loop\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3275 (goto-char pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3276 (list (+ (save-excursion (back-to-indentation) (point)) label) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3277 'ada-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3278 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3279 (list (+ (save-excursion (back-to-indentation) (point)) label) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3280 'ada-broken-indent)))))) |
10705 | 3281 |
3282 (defun ada-get-indent-type (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3283 "Calculate the indentation when before a type statement. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3284 ORGPOINT is the limit position used in the calculation." |
10705 | 3285 (let ((match-dat nil)) |
3286 (cond | |
3287 ;; | |
3288 ;; complete record declaration | |
3289 ;; | |
3290 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3291 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3292 (setq match-dat (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3293 "end" nil orgpoint nil 'word-search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3294 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3295 (looking-at "\\<record\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3296 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3297 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3298 (= (char-after) ?\;))) |
10705 | 3299 (goto-char (car match-dat)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3300 (list (save-excursion (back-to-indentation) (point)) 0)) |
10705 | 3301 ;; |
3302 ;; record type | |
3303 ;; | |
3304 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3305 (setq match-dat (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3306 "record" nil orgpoint nil 'word-search-forward))) |
10705 | 3307 (goto-char (car match-dat)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3308 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)) |
10705 | 3309 ;; |
3310 ;; complete type declaration | |
3311 ;; | |
3312 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3313 (ada-search-ignore-string-comment ";" nil orgpoint nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3314 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3315 (list (save-excursion (back-to-indentation) (point)) 0)) |
10705 | 3316 ;; |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
3317 ;; "type ... is", but not "type ... is ...", which is broken |
10705 | 3318 ;; |
3319 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3320 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3321 (ada-search-ignore-string-comment "is" nil orgpoint nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3322 'word-search-forward) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3323 (not (ada-goto-next-non-ws orgpoint)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3324 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
10705 | 3325 ;; |
3326 ;; broken statement | |
3327 ;; | |
3328 (t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3329 (list (save-excursion (back-to-indentation) (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3330 'ada-broken-indent))))) |
10705 | 3331 |
3332 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3333 ;; ----------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3334 ;; -- searching and matching |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3335 ;; ----------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3336 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3337 (defun ada-goto-stmt-start () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3338 "Move point to the beginning of the statement that point is in or after. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3339 Return the new position of point. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3340 As a special case, if we are looking at a closing parenthesis, skip to the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3341 open parenthesis." |
10705 | 3342 (let ((match-dat nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3343 (orgpoint (point))) |
10705 | 3344 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3345 (setq match-dat (ada-search-prev-end-stmt)) |
10705 | 3346 (if match-dat |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3347 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3348 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3349 ;; found a previous end-statement => check if anything follows |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3350 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3351 (unless (looking-at "declare") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3352 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3353 (unless (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3354 (goto-char (cdr match-dat)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3355 (ada-goto-next-non-ws orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3356 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3357 ;; nothing follows => it's the end-statement directly in |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3358 ;; front of point => search again |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3359 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3360 (setq match-dat (ada-search-prev-end-stmt))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3361 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3362 ;; if found the correct end-statement => goto next non-ws |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3363 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3364 (if match-dat |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3365 (goto-char (cdr match-dat))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3366 (ada-goto-next-non-ws) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3367 )) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3368 |
10705 | 3369 ;; |
3370 ;; no previous end-statement => we are at the beginning of the | |
3371 ;; accessible part of the buffer | |
3372 ;; | |
3373 (progn | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3374 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3375 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3376 ;; skip to the very first statement, if there is one |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3377 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3378 (unless (ada-goto-next-non-ws orgpoint) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3379 (goto-char orgpoint)))) |
10705 | 3380 (point))) |
3381 | |
3382 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3383 (defun ada-search-prev-end-stmt () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3384 "Move point to previous end statement. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3385 Return a cons cell whose car is the beginning and whose cdr |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3386 is the end of the match." |
10705 | 3387 (let ((match-dat nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3388 (found nil)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3389 |
10705 | 3390 ;; search until found or beginning-of-buffer |
3391 (while | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3392 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3393 (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3394 (setq match-dat (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3395 ada-end-stmt-re t))) |
10705 | 3396 |
3397 (goto-char (car match-dat)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3398 (unless (ada-in-open-paren-p) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3399 (cond |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3400 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3401 ((and (looking-at |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3402 "\\<\\(record\\|loop\\|select\\|else\\|then\\)\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3403 (save-excursion |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3404 (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3405 (looking-at "\\<\\(end\\|or\\|and\\)\\>[ \t]*[^;]"))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3406 (forward-word -1)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3407 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3408 ((looking-at "is") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3409 (setq found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3410 (and (save-excursion (ada-goto-previous-word) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3411 (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3412 (not (looking-at "subtype"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3413 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3414 (save-excursion (goto-char (cdr match-dat)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3415 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3416 ;; words that can go after an 'is' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3417 (not (looking-at |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3418 (eval-when-compile |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3419 (concat "\\<" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3420 (regexp-opt |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3421 '("separate" "access" "array" |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3422 "private" "abstract" "new") t) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3423 "\\>\\|(")))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3424 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3425 ((looking-at "private") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3426 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3427 (backward-word 1) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3428 (setq found (not (looking-at "is"))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3429 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3430 (t |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3431 (setq found t)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3432 ))) |
10705 | 3433 |
3434 (if found | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3435 match-dat |
10705 | 3436 nil))) |
3437 | |
3438 | |
3439 (defun ada-goto-next-non-ws (&optional limit) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3440 "Skip white spaces, newlines and comments to next non-ws character. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3441 Stop the search at LIMIT. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3442 Do not call this function from within a string." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3443 (unless limit |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3444 (setq limit (point-max))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3445 (while (and (<= (point) limit) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3446 (progn (forward-comment 10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3447 (if (and (not (eobp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3448 (save-excursion (forward-char 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3449 (ada-in-string-p))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3450 (progn (forward-sexp 1) t))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3451 (if (< (point) limit) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3452 (point) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3453 nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3454 ) |
10705 | 3455 |
3456 | |
3457 (defun ada-goto-stmt-end (&optional limit) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3458 "Move point to the end of the statement that point is in or before. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3459 Return the new position of point or nil if not found. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3460 Stop the search at LIMIT." |
10705 | 3461 (if (ada-search-ignore-string-comment ada-end-stmt-re nil limit) |
3462 (point) | |
3463 nil)) | |
3464 | |
3465 | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3466 (defun ada-goto-next-word (&optional backward) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3467 "Move point to the beginning of the next word of Ada code. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3468 If BACKWARD is non-nil, jump to the beginning of the previous word. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3469 Return the new position of point or nil if not found." |
10705 | 3470 (let ((match-cons nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3471 (orgpoint (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3472 (old-syntax (char-to-string (char-syntax ?_)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3473 (modify-syntax-entry ?_ "w") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3474 (unless backward |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3475 (skip-syntax-forward "w")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3476 (if (setq match-cons |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3477 (if backward |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3478 (ada-search-ignore-string-comment "\\w" t nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3479 (ada-search-ignore-string-comment "\\w" nil nil t))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3480 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3481 ;; move to the beginning of the word found |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3482 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3483 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3484 (goto-char (car match-cons)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3485 (skip-syntax-backward "w") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3486 (point)) |
10705 | 3487 ;; |
3488 ;; if not found, restore old position of point | |
3489 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3490 (goto-char orgpoint) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3491 'nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3492 (modify-syntax-entry ?_ old-syntax)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3493 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3494 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3495 |
10705 | 3496 (defun ada-check-matching-start (keyword) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3497 "Signal an error if matching block start is not KEYWORD. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3498 Moves point to the matching block start." |
10705 | 3499 (ada-goto-matching-start 0) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3500 (unless (looking-at (concat "\\<" keyword "\\>")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3501 (error "Matching start is not '%s'" keyword))) |
10705 | 3502 |
3503 | |
3504 (defun ada-check-defun-name (defun-name) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3505 "Check if the name of the matching defun really is DEFUN-NAME. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3506 Assumes point to be already positioned by `ada-goto-matching-start'. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3507 Moves point to the beginning of the declaration." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3508 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3509 ;; named block without a `declare' |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3510 (if (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3511 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3512 (looking-at (concat "\\<" defun-name "\\> *:"))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3513 t ; do nothing |
10705 | 3514 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3515 ;; 'accept' or 'package' ? |
10705 | 3516 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3517 (unless (looking-at ada-subprog-start-re) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3518 (ada-goto-matching-decl-start)) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3519 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3520 ;; 'begin' of 'procedure'/'function'/'task' or 'declare' |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3521 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3522 (save-excursion |
10705 | 3523 ;; |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3524 ;; a named 'declare'-block ? => jump to the label |
10705 | 3525 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3526 (if (looking-at "\\<declare\\>") |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3527 (backward-word 1) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3528 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3529 ;; no, => 'procedure'/'function'/'task'/'protected' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3530 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3531 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3532 (forward-word 2) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3533 (backward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3534 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3535 ;; skip 'body' 'type' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3536 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3537 (if (looking-at "\\<\\(body\\|type\\)\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3538 (forward-word 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3539 (forward-sexp 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3540 (backward-sexp 1))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3541 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3542 ;; should be looking-at the correct name |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3543 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3544 (unless (looking-at (concat "\\<" defun-name "\\>")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3545 (error "Matching defun has different name: %s" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3546 (buffer-substring (point) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3547 (progn (forward-sexp 1) (point)))))))) |
10705 | 3548 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3549 (defun ada-goto-matching-decl-start (&optional noerror recursive) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3550 "Move point to the matching declaration start of the current 'begin'. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3551 If NOERROR is non-nil, it only returns nil if no match was found." |
10705 | 3552 (let ((nest-count 1) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3553 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3554 ;; first should be set to t if we should stop at the first |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3555 ;; "begin" we encounter. |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3556 (first (not recursive)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3557 (count-generic nil) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
3558 (stop-at-when nil) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3559 ) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3560 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3561 ;; Ignore "when" most of the time, except if we are looking at the |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3562 ;; beginning of a block (structure: case .. is |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3563 ;; when ... => |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3564 ;; begin ... |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3565 ;; exception ... ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3566 (if (looking-at "begin") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3567 (setq stop-at-when t)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3568 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3569 (if (or |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3570 (looking-at "\\<\\(package\\|procedure\\|function\\)\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3571 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3572 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3573 "\\<\\(package\\|procedure\\|function\\|generic\\)\\>" t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3574 (looking-at "generic"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3575 (setq count-generic t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3576 |
10705 | 3577 ;; search backward for interesting keywords |
3578 (while (and | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3579 (not (zerop nest-count)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3580 (ada-search-ignore-string-comment ada-matching-decl-start-re t)) |
10705 | 3581 ;; |
3582 ;; calculate nest-depth | |
3583 ;; | |
3584 (cond | |
3585 ;; | |
3586 ((looking-at "end") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3587 (ada-goto-matching-start 1 noerror) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3588 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3589 ;; In some case, two begin..end block can follow each other closely, |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3590 ;; which we have to detect, as in |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3591 ;; procedure P is |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3592 ;; procedure Q is |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3593 ;; begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3594 ;; end; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3595 ;; begin -- here we should go to procedure, not begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3596 ;; end |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3597 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3598 (if (looking-at "begin") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3599 (let ((loop-again t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3600 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3601 (while loop-again |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3602 ;; If begin was just there as the beginning of a block |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3603 ;; (with no declare) then do nothing, otherwise just |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3604 ;; register that we have to find the statement that |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3605 ;; required the begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3606 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3607 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3608 "\\<\\(declare\\|begin\\|end\\|procedure\\|function\\|task\\|package\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3609 t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3610 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3611 (if (looking-at "end") |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3612 (ada-goto-matching-start 1 noerror t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3613 ;; (ada-goto-matching-decl-start noerror t) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3614 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3615 (setq loop-again nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3616 (unless (looking-at "begin") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3617 (setq nest-count (1+ nest-count)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3618 )) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3619 ))) |
10705 | 3620 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3621 ((looking-at "generic") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3622 (if count-generic |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3623 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3624 (setq first nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3625 (setq nest-count (1- nest-count))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3626 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3627 ((looking-at "if") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3628 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3629 (forward-word -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3630 (unless (looking-at "\\<end[ \t\n]*if\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3631 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3632 (setq nest-count (1- nest-count)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3633 (setq first nil))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3634 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3635 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3636 ((looking-at "declare\\|generic") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3637 (setq nest-count (1- nest-count)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3638 (setq first t)) |
10705 | 3639 ;; |
3640 ((looking-at "is") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3641 ;; check if it is only a type definition, but not a protected |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3642 ;; type definition, which should be handled like a procedure. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3643 (if (or (looking-at "is[ \t]+<>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3644 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3645 (forward-comment -10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3646 (forward-char -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3647 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3648 ;; Detect if we have a closing parenthesis (Could be |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3649 ;; either the end of subprogram parameters or (<>) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3650 ;; in a type definition |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3651 (if (= (char-after) ?\)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3652 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3653 (forward-char 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3654 (backward-sexp 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3655 (forward-comment -10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3656 )) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3657 (skip-chars-backward "a-zA-Z0-9_.'") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3658 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3659 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3660 (looking-at "\\<\\(sub\\)?type\\|case\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3661 (save-match-data |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3662 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3663 (not (looking-at "\\<protected\\>")))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3664 )) ; end of `or' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3665 (goto-char (match-beginning 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3666 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3667 (setq nest-count (1- nest-count)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3668 (setq first nil)))) |
10705 | 3669 |
3670 ;; | |
3671 ((looking-at "new") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3672 (if (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3673 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3674 (looking-at "is")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3675 (goto-char (match-beginning 0)))) |
10705 | 3676 ;; |
3677 ((and first | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3678 (looking-at "begin")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3679 (setq nest-count 0)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3680 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3681 ((looking-at "when") |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3682 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3683 (forward-word -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3684 (unless (looking-at "\\<exit[ \t\n]*when\\>") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3685 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3686 (if stop-at-when |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3687 (setq nest-count (1- nest-count))) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3688 )))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3689 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3690 ((looking-at "begin") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3691 (setq first nil)) |
10705 | 3692 ;; |
3693 (t | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3694 (setq nest-count (1+ nest-count)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3695 (setq first nil))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3696 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3697 );; end of loop |
10705 | 3698 |
3699 ;; check if declaration-start is really found | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3700 (if (and |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3701 (zerop nest-count) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3702 (if (looking-at "is") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3703 (ada-search-ignore-string-comment ada-subprog-start-re t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3704 (looking-at "declare\\|generic"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3705 t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3706 (if noerror nil |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3707 (error "No matching proc/func/task/declare/package/protected"))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3708 )) |
10705 | 3709 |
3710 (defun ada-goto-matching-start (&optional nest-level noerror gotothen) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3711 "Move point to the beginning of a block-start. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3712 Which block depends on the value of NEST-LEVEL, which defaults to zero. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3713 If NOERROR is non-nil, it only returns nil if no matching start was found. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3714 If GOTOTHEN is non-nil, point moves to the 'then' following 'if'." |
10705 | 3715 (let ((nest-count (if nest-level nest-level 0)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3716 (found nil) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3717 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3718 (last-was-begin '()) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3719 ;; List all keywords encountered while traversing |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3720 ;; something like '("end" "end" "begin") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3721 ;; This is removed from the list when "package", "procedure",... |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3722 ;; are seen. The goal is to find whether a package has an elaboration |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3723 ;; part |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3724 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3725 (pos nil)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3726 |
10705 | 3727 ;; search backward for interesting keywords |
3728 (while (and | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3729 (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3730 (ada-search-ignore-string-comment ada-matching-start-re t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3731 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3732 (unless (and (looking-at "\\<record\\>") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3733 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3734 (forward-word -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3735 (looking-at "\\<null\\>"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3736 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3737 ;; calculate nest-depth |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3738 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3739 ;; found block end => increase nest depth |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3740 ((looking-at "end") |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3741 (push nil last-was-begin) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3742 (setq nest-count (1+ nest-count))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3743 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3744 ;; found loop/select/record/case/if => check if it starts or |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3745 ;; ends a block |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3746 ((looking-at "loop\\|select\\|record\\|case\\|if") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3747 (setq pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3748 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3749 ;; check if keyword follows 'end' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3750 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3751 (if (looking-at "\\<end\\>[ \t]*[^;]") |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3752 (progn |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3753 ;; it ends a block => increase nest depth |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3754 (setq nest-count (1+ nest-count) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3755 pos (point)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3756 (push nil last-was-begin)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3757 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3758 ;; it starts a block => decrease nest depth |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3759 (setq nest-count (1- nest-count)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3760 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3761 ;; Some nested "begin .. end" blocks with no "declare"? |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3762 ;; => remove those entries |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3763 (while (car last-was-begin) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3764 (setq last-was-begin (cdr (cdr last-was-begin)))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3765 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3766 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3767 )) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3768 (goto-char pos) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3769 ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3770 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3771 ;; found package start => check if it really is a block |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3772 ((looking-at "package") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3773 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3774 ;; ignore if this is just a renames statement |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3775 (let ((current (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3776 (pos (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3777 "\\<\\(is\\|renames\\|;\\)\\>" nil))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3778 (if pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3779 (goto-char (car pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3780 (error (concat |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3781 "No matching 'is' or 'renames' for 'package' at" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3782 " line " |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3783 (number-to-string (count-lines 1 (1+ current))))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3784 (unless (looking-at "renames") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3785 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3786 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3787 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3788 ;; ignore it if it is only a declaration with 'new' |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3789 ;; We could have package Foo is new .... |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3790 ;; or package Foo is separate; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3791 ;; or package Foo is begin null; end Foo |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3792 ;; for elaboration code (elaboration) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3793 (if (and (not (looking-at "\\<\\(new\\|separate\\|begin\\)\\>")) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3794 (not (car last-was-begin))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3795 (setq nest-count (1- nest-count)))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3796 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3797 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3798 ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3799 ;; found task start => check if it has a body |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3800 ((looking-at "task") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3801 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3802 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3803 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3804 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3805 ((looking-at "\\<body\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3806 ((looking-at "\\<type\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3807 ;; In that case, do nothing if there is a "is" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3808 (forward-word 2);; skip "type" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3809 (ada-goto-next-non-ws);; skip type name |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3810 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3811 ;; Do nothing if we are simply looking at a simple |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3812 ;; "task type name;" statement with no block |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3813 (unless (looking-at ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3814 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3815 ;; Skip the parameters |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3816 (if (looking-at "(") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3817 (ada-search-ignore-string-comment ")" nil)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3818 (let ((tmp (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3819 "\\<\\(is\\|;\\)\\>" nil))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3820 (if tmp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3821 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3822 (goto-char (car tmp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3823 (if (looking-at "is") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3824 (setq nest-count (1- nest-count))))))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3825 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3826 ;; Check if that task declaration had a block attached to |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3827 ;; it (i.e do nothing if we have just "task name;") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3828 (unless (progn (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3829 (looking-at "[ \t]*;")) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3830 (setq nest-count (1- nest-count)))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3831 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3832 ) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3833 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3834 ((looking-at "declare") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3835 ;; remove entry for begin and end (include nested begin..end |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3836 ;; groups) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3837 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3838 (let ((count 1)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3839 (while (and (> count 0)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3840 (if (equal (car last-was-begin) t) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3841 (setq count (1+ count)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3842 (setq count (1- count))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3843 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3844 ))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3845 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3846 ((looking-at "protected") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3847 ;; Ignore if this is just a declaration |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3848 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3849 (let ((pos (ada-search-ignore-string-comment |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3850 "\\(\\<is\\>\\|\\<renames\\>\\|;\\)" nil))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3851 (if pos |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3852 (goto-char (car pos))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3853 (if (looking-at "is") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3854 ;; remove entry for end |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3855 (setq last-was-begin (cdr last-was-begin))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3856 (setq nest-count (1- nest-count))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3857 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3858 ((or (looking-at "procedure") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3859 (looking-at "function")) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3860 ;; Ignore if this is just a declaration |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3861 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3862 (let ((pos (ada-search-ignore-string-comment |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3863 "\\(\\<is\\>\\|\\<renames\\>\\|)[ \t]*;\\)" nil))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3864 (if pos |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3865 (goto-char (car pos))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3866 (if (looking-at "is") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3867 ;; remove entry for begin and end |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3868 (setq last-was-begin (cdr (cdr last-was-begin)))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3869 ) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3870 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3871 ;; all the other block starts |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3872 (t |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3873 (push (looking-at "begin") last-was-begin) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3874 (setq nest-count (1- nest-count))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3875 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3876 ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3877 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3878 ;; match is found, if nest-depth is zero |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3879 (setq found (zerop nest-count))))) ; end of loop |
10705 | 3880 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3881 (if (bobp) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3882 (point) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3883 (if found |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3884 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3885 ;; match found => is there anything else to do ? |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3886 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3887 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3888 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3889 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3890 ;; found 'if' => skip to 'then', if it's on a separate line |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3891 ;; and GOTOTHEN is non-nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3892 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3893 ((and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3894 gotothen |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3895 (looking-at "if") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3896 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3897 (ada-search-ignore-string-comment "then" nil nil nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3898 'word-search-forward) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3899 (back-to-indentation) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3900 (looking-at "\\<then\\>"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3901 (goto-char (match-beginning 0))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3902 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3903 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3904 ;; found 'do' => skip back to 'accept' |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3905 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3906 ((looking-at "do") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3907 (unless (ada-search-ignore-string-comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3908 "accept" t nil nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3909 'word-search-backward) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3910 (error "Missing 'accept' in front of 'do'")))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3911 (point)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3912 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3913 (if noerror |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3914 nil |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3915 (error "No matching start")))))) |
10705 | 3916 |
3917 | |
3918 (defun ada-goto-matching-end (&optional nest-level noerror) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3919 "Move point to the end of a block. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3920 Which block depends on the value of NEST-LEVEL, which defaults to zero. |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
3921 If NOERROR is non-nil, it only returns nil if no matching start found." |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3922 (let ((nest-count (or nest-level 0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3923 (regex (eval-when-compile |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3924 (concat "\\<" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3925 (regexp-opt '("end" "loop" "select" "begin" "case" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3926 "if" "task" "package" "record" "do" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3927 "procedure" "function") t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3928 "\\>"))) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3929 found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3930 pos |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3931 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3932 ;; First is used for subprograms: they are generally handled |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3933 ;; recursively, but of course we do not want to do that the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3934 ;; first time (see comment below about subprograms) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3935 (first (not (looking-at "declare")))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3936 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3937 ;; If we are already looking at one of the keywords, this shouldn't count |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3938 ;; in the nesting loop below, so we just make sure we don't count it. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3939 ;; "declare" is a special case because we need to look after the "begin" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3940 ;; keyword |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3941 (if (looking-at "\\<if\\|loop\\|case\\|begin\\>") |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3942 (forward-char 1)) |
10705 | 3943 |
3944 ;; | |
3945 ;; search forward for interesting keywords | |
3946 ;; | |
3947 (while (and | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3948 (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3949 (ada-search-ignore-string-comment regex nil)) |
10705 | 3950 |
3951 ;; | |
3952 ;; calculate nest-depth | |
3953 ;; | |
3954 (backward-word 1) | |
3955 (cond | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3956 ;; procedures and functions need to be processed recursively, in |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3957 ;; case they are defined in a declare/begin block, as in: |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3958 ;; declare -- NL 0 (nested level) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3959 ;; A : Boolean; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3960 ;; procedure B (C : D) is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3961 ;; begin -- NL 1 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3962 ;; null; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3963 ;; end B; -- NL 0, and we would exit |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3964 ;; begin |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3965 ;; end; -- we should exit here |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3966 ;; processing them recursively avoids the need for any special |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3967 ;; handling. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3968 ;; Nothing should be done if we have only the specs or a |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3969 ;; generic instantion. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3970 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3971 ((and (looking-at "\\<procedure\\|function\\>")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3972 (if first |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3973 (forward-word 1) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3974 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3975 (setq pos (point)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3976 (ada-search-ignore-string-comment "is\\|;") |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3977 (if (= (char-before) ?s) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3978 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3979 (ada-goto-next-non-ws) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3980 (unless (looking-at "\\<new\\>") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3981 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3982 (goto-char pos) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3983 (ada-goto-matching-end 0 t))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3984 |
10705 | 3985 ;; found block end => decrease nest depth |
3986 ((looking-at "\\<end\\>") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3987 (setq nest-count (1- nest-count) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3988 found (<= nest-count 0)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3989 ;; skip the following keyword |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3990 (if (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3991 (skip-chars-forward "end") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3992 (ada-goto-next-non-ws) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3993 (looking-at "\\<\\(loop\\|select\\|record\\|case\\|if\\)\\>")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3994 (forward-word 1))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3995 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3996 ;; found package start => check if it really starts a block, and is not |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3997 ;; in fact a generic instantiation for instance |
10705 | 3998 ((looking-at "\\<package\\>") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3999 (ada-search-ignore-string-comment "is" nil nil nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4000 'word-search-forward) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4001 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4002 ;; ignore and skip it if it is only a 'new' package |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4003 (if (looking-at "\\<new\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4004 (goto-char (match-end 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4005 (setq nest-count (1+ nest-count) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4006 found (<= nest-count 0)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4007 |
10705 | 4008 ;; all the other block starts |
4009 (t | |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4010 (if (not first) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4011 (setq nest-count (1+ nest-count))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4012 (setq found (<= nest-count 0)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4013 (forward-word 1))) ; end of 'cond' |
10705 | 4014 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4015 (setq first nil)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4016 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4017 (if found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4018 t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4019 (if noerror |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4020 nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4021 (error "No matching end"))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4022 )) |
10705 | 4023 |
4024 | |
4025 (defun ada-search-ignore-string-comment | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4026 (search-re &optional backward limit paramlists search-func) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4027 "Regexp-search for SEARCH-RE, ignoring comments, strings. |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4028 Returns a cons cell of begin and end of match data or nil, if not found. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4029 If BACKWARD is non-nil, search backward; search forward otherwise. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4030 The search stops at pos LIMIT. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4031 If PARAMLISTS is nil, ignore parameter lists. |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4032 The search is done using SEARCH-FUNC. SEARCH-FUNC can be optimized |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4033 in case we are searching for a constant string. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4034 Point is moved at the beginning of the SEARCH-RE." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4035 (let (found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4036 begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4037 end |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4038 parse-result |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4039 (previous-syntax-table (syntax-table))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4040 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4041 ;; FIXME: need to pass BACKWARD to search-func! |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4042 (unless search-func |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4043 (setq search-func (if backward 're-search-backward 're-search-forward))) |
10705 | 4044 |
4045 ;; | |
4046 ;; search until found or end-of-buffer | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4047 ;; We have to test that we do not look further than limit |
10705 | 4048 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4049 (set-syntax-table ada-mode-symbol-syntax-table) |
10705 | 4050 (while (and (not found) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4051 (or (not limit) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4052 (or (and backward (<= limit (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4053 (>= limit (point)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4054 (funcall search-func search-re limit 1)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4055 (setq begin (match-beginning 0)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4056 (setq end (match-end 0)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4057 |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4058 (setq parse-result (parse-partial-sexp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4059 (save-excursion (beginning-of-line) (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4060 (point))) |
10705 | 4061 |
4062 (cond | |
4063 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4064 ;; If inside a string, skip it (and the following comments) |
10705 | 4065 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4066 ((ada-in-string-p parse-result) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4067 (if (featurep 'xemacs) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4068 (search-backward "\"" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4069 (goto-char (nth 8 parse-result))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4070 (unless backward (forward-sexp 1))) |
10705 | 4071 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4072 ;; If inside a comment, skip it (and the following comments) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4073 ;; There is a special code for comments at the end of the file |
10705 | 4074 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4075 ((ada-in-comment-p parse-result) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4076 (if (featurep 'xemacs) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4077 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4078 (forward-line 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4079 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4080 (forward-comment -1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4081 (goto-char (nth 8 parse-result))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4082 (unless backward |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4083 ;; at the end of the file, it is not possible to skip a comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4084 ;; so we just go at the end of the line |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4085 (if (forward-comment 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4086 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4087 (forward-comment 1000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4088 (beginning-of-line)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4089 (end-of-line)))) |
10705 | 4090 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4091 ;; directly in front of a comment => skip it, if searching forward |
10705 | 4092 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4093 ((and (= (char-after begin) ?-) (= (char-after (1+ begin)) ?-)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4094 (unless backward (progn (forward-char -1) (forward-comment 1000)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4095 |
10705 | 4096 ;; |
4097 ;; found a parameter-list but should ignore it => skip it | |
4098 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4099 ((and (not paramlists) (ada-in-paramlist-p)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4100 (if backward |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4101 (search-backward "(" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4102 (search-forward ")" nil t))) |
10705 | 4103 ;; |
4104 ;; found what we were looking for | |
4105 ;; | |
4106 (t | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4107 (setq found t)))) ; end of loop |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4108 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4109 (set-syntax-table previous-syntax-table) |
10705 | 4110 |
4111 (if found | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4112 (cons begin end) |
10705 | 4113 nil))) |
4114 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4115 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4116 ;; -- Testing the position of the cursor |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4117 ;; ------------------------------------------------------- |
10705 | 4118 |
4119 (defun ada-in-decl-p () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4120 "Return t if point is inside a declarative part. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4121 Assumes point to be at the end of a statement." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4122 (or (ada-in-paramlist-p) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4123 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4124 (ada-goto-matching-decl-start t)))) |
10705 | 4125 |
4126 | |
4127 (defun ada-looking-at-semi-or () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4128 "Return t if looking at an 'or' following a semicolon." |
10705 | 4129 (save-excursion |
4130 (and (looking-at "\\<or\\>") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4131 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4132 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4133 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4134 (looking-at "\\<or\\>"))))) |
10705 | 4135 |
4136 | |
4137 (defun ada-looking-at-semi-private () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4138 "Return t if looking at the start of a private section in a package. |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
4139 Return nil if the private is part of the package name, as in |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4140 'private package A is...' (this can only happen at top level)." |
10705 | 4141 (save-excursion |
4142 (and (looking-at "\\<private\\>") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4143 (not (looking-at "\\<private[ \t]*\\(package\\|generic\\)")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4144 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4145 ;; Make sure this is the start of a private section (ie after |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4146 ;; a semicolon or just after the package declaration, but not |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4147 ;; after a 'type ... is private' or 'is new ... with private' |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4148 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4149 ;; Note that a 'private' statement at the beginning of the buffer |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4150 ;; does not indicate a private section, since this is instead a |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4151 ;; 'private procedure ...' |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4152 (progn (forward-comment -1000) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4153 (and (not (bobp)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4154 (or (= (char-before) ?\;) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4155 (and (forward-word -3) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4156 (looking-at "\\<package\\>")))))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4157 |
10705 | 4158 |
4159 (defun ada-in-paramlist-p () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4160 "Return t if point is inside a parameter-list." |
10705 | 4161 (save-excursion |
4162 (and | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4163 (ada-search-ignore-string-comment "(\\|)" t nil t) |
10705 | 4164 ;; inside parentheses ? |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4165 (= (char-after) ?\() |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4166 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4167 ;; We could be looking at two things here: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4168 ;; operator definition: function "." ( |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4169 ;; subprogram definition: procedure .... ( |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4170 ;; Let's skip back over the first one |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4171 (progn |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4172 (skip-chars-backward " \t\n") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4173 (if (= (char-before) ?\") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4174 (backward-char 3) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4175 (backward-word 1)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4176 t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4177 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4178 ;; and now over the second one |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4179 (backward-word 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4180 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4181 ;; We should ignore the case when the reserved keyword is in a |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4182 ;; comment (for instance, when we have: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4183 ;; -- .... package |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4184 ;; Test (A) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4185 ;; we should return nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4186 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4187 (not (ada-in-string-or-comment-p)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4188 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4189 ;; right keyword two words before parenthesis ? |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4190 ;; Type is in this list because of discriminants |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4191 (looking-at (eval-when-compile |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4192 (concat "\\<\\(" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4193 "procedure\\|function\\|body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4194 "task\\|entry\\|accept\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4195 "access[ \t]+procedure\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4196 "access[ \t]+function\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4197 "pragma\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4198 "type\\)\\>")))))) |
10705 | 4199 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4200 (defun ada-search-ignore-complex-boolean (regexp backwardp) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4201 "Search for REGEXP, ignoring comments, strings, 'and then', 'or else'. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4202 If BACKWARDP is non-nil, search backward; search forward otherwise." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4203 (let (result) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4204 (while (and (setq result (ada-search-ignore-string-comment regexp backwardp)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4205 (save-excursion (forward-word -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4206 (looking-at "and then\\|or else")))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4207 result)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4208 |
10705 | 4209 (defun ada-in-open-paren-p () |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4210 "Non-nil if in an open parenthesis. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4211 Return value is the position of the first non-ws behind the last unclosed |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4212 parenthesis, or nil." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4213 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4214 (let ((parse (parse-partial-sexp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4215 (point) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4216 (or (car (ada-search-ignore-complex-boolean |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4217 "\\<\\(;\\|is\\|then\\|loop\\|begin\\|else\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4218 t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4219 (point-min))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4220 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4221 (if (nth 1 parse) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4222 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4223 (goto-char (1+ (nth 1 parse))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4224 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4225 ;; Skip blanks, if they are not followed by a comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4226 ;; See: |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4227 ;; type A is ( Value_0, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4228 ;; Value_1); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4229 ;; type B is ( -- comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4230 ;; Value_2); |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4231 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4232 (if (or (not ada-indent-handle-comment-special) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4233 (not (looking-at "[ \t]+--"))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4234 (skip-chars-forward " \t")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4235 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4236 (point)))))) |
10705 | 4237 |
4238 | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4239 ;; ----------------------------------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4240 ;; -- Behavior Of TAB Key |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4241 ;; ----------------------------------------------------------- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4242 |
10705 | 4243 (defun ada-tab () |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4244 "Do indenting or tabbing according to `ada-tab-policy'. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4245 In Transient Mark mode, if the mark is active, operate on the contents |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4246 of the region. Otherwise, operate only on the current line." |
10705 | 4247 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4248 (cond ((eq ada-tab-policy 'indent-rigidly) (ada-tab-hard)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4249 ((eq ada-tab-policy 'indent-auto) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4250 (if (ada-region-selected) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4251 (ada-indent-region (region-beginning) (region-end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4252 (ada-indent-current))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4253 ((eq ada-tab-policy 'always-tab) (error "Not implemented")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4254 )) |
10705 | 4255 |
4256 (defun ada-untab (arg) | |
4257 "Delete leading indenting according to `ada-tab-policy'." | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4258 ;; FIXME: ARG is ignored |
10705 | 4259 (interactive "P") |
4260 (cond ((eq ada-tab-policy 'indent-rigidly) (ada-untab-hard)) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4261 ((eq ada-tab-policy 'indent-auto) (error "Not implemented")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4262 ((eq ada-tab-policy 'always-tab) (error "Not implemented")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4263 )) |
10705 | 4264 |
4265 (defun ada-indent-current-function () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4266 "Ada mode version of the `indent-line-function'." |
10705 | 4267 (interactive "*") |
4268 (let ((starting-point (point-marker))) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4269 (beginning-of-line) |
10705 | 4270 (ada-tab) |
4271 (if (< (point) starting-point) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4272 (goto-char starting-point)) |
10705 | 4273 (set-marker starting-point nil) |
4274 )) | |
4275 | |
4276 (defun ada-tab-hard () | |
4277 "Indent current line to next tab stop." | |
4278 (interactive) | |
4279 (save-excursion | |
4280 (beginning-of-line) | |
4281 (insert-char ? ada-indent)) | |
4282 (if (save-excursion (= (point) (progn (beginning-of-line) (point)))) | |
4283 (forward-char ada-indent))) | |
4284 | |
4285 (defun ada-untab-hard () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4286 "Indent current line to previous tab stop." |
10705 | 4287 (interactive) |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4288 (let ((bol (save-excursion (progn (beginning-of-line) (point)))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4289 (eol (save-excursion (progn (end-of-line) (point))))) |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4290 (indent-rigidly bol eol (- 0 ada-indent)))) |
10705 | 4291 |
4292 | |
4293 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4294 ;; ------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4295 ;; -- Miscellaneous |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4296 ;; ------------------------------------------------------------ |
10705 | 4297 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4298 ;; Not needed any more for Emacs 21.2, but still needed for backward |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4299 ;; compatibility |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4300 (defun ada-remove-trailing-spaces () |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4301 "Remove trailing spaces in the whole buffer." |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4302 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4303 (save-match-data |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4304 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4305 (save-restriction |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4306 (widen) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4307 (goto-char (point-min)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4308 (while (re-search-forward "[ \t]+$" (point-max) t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4309 (replace-match "" nil nil)))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4310 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4311 (defun ada-gnat-style () |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4312 "Clean up comments, `(' and `,' for GNAT style checking switch." |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4313 (interactive) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4314 (save-excursion |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4315 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4316 ;; The \n is required, or the line after an empty comment line is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4317 ;; simply ignored. |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4318 (goto-char (point-min)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4319 (while (re-search-forward "--[ \t]*\\([^-\n]\\)" nil t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4320 (replace-match "-- \\1") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4321 (forward-line 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4322 (beginning-of-line)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4323 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4324 (goto-char (point-min)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4325 (while (re-search-forward "\\>(" nil t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4326 (if (not (ada-in-string-or-comment-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4327 (replace-match " ("))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4328 (goto-char (point-min)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4329 (while (re-search-forward ";--" nil t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4330 (forward-char -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4331 (if (not (ada-in-string-or-comment-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4332 (replace-match "; --"))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4333 (goto-char (point-min)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4334 (while (re-search-forward "([ \t]+" nil t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4335 (if (not (ada-in-string-or-comment-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4336 (replace-match "("))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4337 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4338 (while (re-search-forward ")[ \t]+)" nil t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4339 (if (not (ada-in-string-or-comment-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4340 (replace-match "))"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4341 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4342 (while (re-search-forward "\\>:" nil t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4343 (if (not (ada-in-string-or-comment-p)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4344 (replace-match " :"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4345 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4346 ;; Make sure there is a space after a ','. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4347 ;; Always go back to the beginning of the match, since otherwise |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4348 ;; a statement like ('F','D','E') is incorrectly modified. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4349 (goto-char (point-min)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4350 (while (re-search-forward ",[ \t]*\\(.\\)" nil t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4351 (if (not (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4352 (goto-char (match-beginning 0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4353 (ada-in-string-or-comment-p))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4354 (replace-match ", \\1"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4355 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4356 ;; Operators should be surrounded by spaces. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4357 (goto-char (point-min)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4358 (while (re-search-forward |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4359 "[ \t]*\\(/=\\|\\*\\*\\|:=\\|\\.\\.\\|[-:+*/]\\)[ \t]*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4360 nil t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4361 (goto-char (match-beginning 1)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4362 (if (or (looking-at "--") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4363 (ada-in-string-or-comment-p)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4364 (progn |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4365 (forward-line 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4366 (beginning-of-line)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4367 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4368 ((string= (match-string 1) "/=") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4369 (replace-match " /= ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4370 ((string= (match-string 1) "..") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4371 (replace-match " .. ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4372 ((string= (match-string 1) "**") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4373 (replace-match " ** ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4374 ((string= (match-string 1) ":=") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4375 (replace-match " := ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4376 (t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4377 (replace-match " \\1 "))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4378 (forward-char 1))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4379 )) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4380 |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4381 |
10705 | 4382 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4383 ;; ------------------------------------------------------------- |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4384 ;; -- Moving To Procedures/Packages/Statements |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4385 ;; ------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4386 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4387 (defun ada-move-to-start () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4388 "Move point to the matching start of the current Ada structure." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4389 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4390 (let ((pos (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4391 (previous-syntax-table (syntax-table))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4392 (unwind-protect |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4393 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4394 (set-syntax-table ada-mode-symbol-syntax-table) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4395 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4396 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4397 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4398 ;; do nothing if in string or comment or not on 'end ...;' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4399 ;; or if an error occurs during processing |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4400 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4401 (or |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4402 (ada-in-string-or-comment-p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4403 (and (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4404 (or (looking-at "[ \t]*\\<end\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4405 (backward-word 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4406 (or (looking-at "[ \t]*\\<end\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4407 (backward-word 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4408 (or (looking-at "[ \t]*\\<end\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4409 (error "Not on end ...;"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4410 (ada-goto-matching-start 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4411 (setq pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4412 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4413 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4414 ;; on 'begin' => go on, according to user option |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4415 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4416 ada-move-to-declaration |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4417 (looking-at "\\<begin\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4418 (ada-goto-matching-decl-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4419 (setq pos (point)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4420 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4421 ) ; end of save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4422 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4423 ;; now really move to the found position |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4424 (goto-char pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4425 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4426 ;; restore syntax-table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4427 (set-syntax-table previous-syntax-table)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4428 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4429 (defun ada-move-to-end () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4430 "Move point to the matching end of the block around point. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4431 Moves to 'begin' if in a declarative part." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4432 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4433 (let ((pos (point)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4434 decl-start |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4435 (previous-syntax-table (syntax-table))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4436 (unwind-protect |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4437 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4438 (set-syntax-table ada-mode-symbol-syntax-table) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4439 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4440 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4441 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4442 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4443 ;; Go to the beginning of the current word, and check if we are |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4444 ;; directly on 'begin' |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4445 ((save-excursion |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4446 (skip-syntax-backward "w") |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4447 (looking-at "\\<begin\\>")) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4448 (ada-goto-matching-end 1) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4449 ) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4450 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4451 ;; on first line of subprogram body |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4452 ;; Do nothing for specs or generic instantion, since these are |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4453 ;; handled as the general case (find the enclosing block) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4454 ;; We also need to make sure that we ignore nested subprograms |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4455 ((save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4456 (and (skip-syntax-backward "w") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4457 (looking-at "\\<function\\>\\|\\<procedure\\>" ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4458 (ada-search-ignore-string-comment "is\\|;") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4459 (not (= (char-before) ?\;)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4460 )) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4461 (skip-syntax-backward "w") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4462 (ada-goto-matching-end 0 t)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4463 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4464 ;; on first line of task declaration |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4465 ((save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4466 (and (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4467 (looking-at "\\<task\\>" ) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4468 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4469 (ada-goto-next-non-ws) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4470 (looking-at "\\<body\\>"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4471 (ada-search-ignore-string-comment "begin" nil nil nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4472 'word-search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4473 ;; accept block start |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4474 ((save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4475 (and (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4476 (looking-at "\\<accept\\>" ))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4477 (ada-goto-matching-end 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4478 ;; package start |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4479 ((save-excursion |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4480 (setq decl-start (and (ada-goto-matching-decl-start t) (point))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4481 (and decl-start (looking-at "\\<package\\>"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4482 (ada-goto-matching-end 1)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4483 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4484 ;; On a "declare" keyword |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4485 ((save-excursion |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4486 (skip-syntax-backward "w") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4487 (looking-at "\\<declare\\>")) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4488 (ada-goto-matching-end 0 t)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4489 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4490 ;; inside a 'begin' ... 'end' block |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4491 (decl-start |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4492 (goto-char decl-start) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4493 (ada-goto-matching-end 0 t)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4494 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4495 ;; (hopefully ;-) everything else |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4496 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4497 (ada-goto-matching-end 1))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4498 (setq pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4499 ) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4500 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4501 ;; now really move to the position found |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4502 (goto-char pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4503 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4504 ;; restore syntax-table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4505 (set-syntax-table previous-syntax-table)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4506 |
10705 | 4507 (defun ada-next-procedure () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4508 "Move point to next procedure." |
10705 | 4509 (interactive) |
4510 (end-of-line) | |
4511 (if (re-search-forward ada-procedure-start-regexp nil t) | |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
4512 (goto-char (match-beginning 4)) |
10705 | 4513 (error "No more functions/procedures/tasks"))) |
4514 | |
4515 (defun ada-previous-procedure () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4516 "Move point to previous procedure." |
10705 | 4517 (interactive) |
4518 (beginning-of-line) | |
4519 (if (re-search-backward ada-procedure-start-regexp nil t) | |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
4520 (goto-char (match-beginning 4)) |
10705 | 4521 (error "No more functions/procedures/tasks"))) |
4522 | |
4523 (defun ada-next-package () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4524 "Move point to next package." |
10705 | 4525 (interactive) |
4526 (end-of-line) | |
4527 (if (re-search-forward ada-package-start-regexp nil t) | |
4528 (goto-char (match-beginning 1)) | |
4529 (error "No more packages"))) | |
4530 | |
4531 (defun ada-previous-package () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4532 "Move point to previous package." |
10705 | 4533 (interactive) |
4534 (beginning-of-line) | |
4535 (if (re-search-backward ada-package-start-regexp nil t) | |
4536 (goto-char (match-beginning 1)) | |
4537 (error "No more packages"))) | |
4538 | |
4539 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4540 ;; ------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4541 ;; -- Define keymap and menus for Ada |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4542 ;; ------------------------------------------------------------- |
10705 | 4543 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4544 (defun ada-create-keymap () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4545 "Create the keymap associated with the Ada mode." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4546 |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4547 ;; All non-standard keys go into ada-mode-extra-map |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4548 (define-key ada-mode-map ada-mode-extra-prefix ada-mode-extra-map) |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4549 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4550 ;; Indentation and Formatting |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4551 (define-key ada-mode-map "\C-j" 'ada-indent-newline-indent-conditional) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4552 (define-key ada-mode-map "\C-m" 'ada-indent-newline-indent-conditional) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4553 (define-key ada-mode-map "\t" 'ada-tab) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4554 (define-key ada-mode-map "\C-c\t" 'ada-justified-indent-current) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4555 (define-key ada-mode-map "\C-c\C-l" 'ada-indent-region) |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4556 (define-key ada-mode-map [(shift tab)] 'ada-untab) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4557 (define-key ada-mode-map "\C-c\C-f" 'ada-format-paramlist) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4558 ;; We don't want to make meta-characters case-specific. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4559 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4560 ;; Movement |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4561 (define-key ada-mode-map "\M-\C-e" 'ada-next-procedure) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4562 (define-key ada-mode-map "\M-\C-a" 'ada-previous-procedure) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4563 (define-key ada-mode-map "\C-c\C-a" 'ada-move-to-start) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4564 (define-key ada-mode-map "\C-c\C-e" 'ada-move-to-end) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4565 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4566 ;; Compilation |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4567 (unless (lookup-key ada-mode-map "\C-c\C-c") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4568 (define-key ada-mode-map "\C-c\C-c" 'compile)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4569 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4570 ;; Casing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4571 (define-key ada-mode-map "\C-c\C-b" 'ada-adjust-case-buffer) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4572 (define-key ada-mode-map "\C-c\C-t" 'ada-case-read-exceptions) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4573 (define-key ada-mode-map "\C-c\C-y" 'ada-create-case-exception) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4574 (define-key ada-mode-map "\C-c\C-\M-y" 'ada-create-case-exception-substring) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4575 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4576 ;; On XEmacs, you can easily specify whether DEL should deletes |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4577 ;; one character forward or one character backward. Take this into |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4578 ;; account |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4579 (define-key ada-mode-map |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4580 (if (boundp 'delete-key-deletes-forward) [backspace] "\177") |
78601
047d1fc93812
(ada-create-keymap): Paren typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78600
diff
changeset
|
4581 'backward-delete-char-untabify) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4582 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4583 ;; Make body |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4584 (define-key ada-mode-map "\C-c\C-n" 'ada-make-subprogram-body) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4585 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4586 ;; Use predefined function of Emacs19 for comments (RE) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4587 (define-key ada-mode-map "\C-c;" 'comment-region) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4588 (define-key ada-mode-map "\C-c:" 'ada-uncomment-region) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4589 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4590 ;; The following keys are bound to functions defined in ada-xref.el or |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4591 ;; ada-prj,el., However, RMS rightly thinks that the code should be shared, |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4592 ;; and activated only if the right compiler is used |
84917
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
4593 |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4594 (define-key ada-mode-map (if (featurep 'xemacs) '(shift button3) [S-mouse-3]) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4595 'ada-point-and-xref) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4596 (define-key ada-mode-map [(control tab)] 'ada-complete-identifier) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4597 |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4598 (define-key ada-mode-extra-map "o" 'ff-find-other-file) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4599 (define-key ada-mode-map "\C-c5\C-d" 'ada-goto-declaration-other-frame) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4600 (define-key ada-mode-map "\C-c\C-d" 'ada-goto-declaration) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4601 (define-key ada-mode-map "\C-c\C-s" 'ada-xref-goto-previous-reference) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4602 (define-key ada-mode-map "\C-c\C-c" 'ada-compile-application) |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4603 (define-key ada-mode-extra-map "c" 'ada-change-prj) |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4604 (define-key ada-mode-extra-map "d" 'ada-set-default-project-file) |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4605 (define-key ada-mode-extra-map "g" 'ada-gdb-application) |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
4606 (define-key ada-mode-map "\C-c\C-m" 'ada-set-main-compile-application) |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4607 (define-key ada-mode-extra-map "r" 'ada-run-application) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4608 (define-key ada-mode-map "\C-c\C-o" 'ada-goto-parent) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4609 (define-key ada-mode-map "\C-c\C-r" 'ada-find-references) |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4610 (define-key ada-mode-extra-map "l" 'ada-find-local-references) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4611 (define-key ada-mode-map "\C-c\C-v" 'ada-check-current) |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4612 (define-key ada-mode-extra-map "f" 'ada-find-file) |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4613 |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4614 (define-key ada-mode-extra-map "u" 'ada-prj-edit) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4615 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4616 ;; The templates, defined in ada-stmt.el |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4617 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4618 (let ((map (make-sparse-keymap))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4619 (define-key map "h" 'ada-header) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4620 (define-key map "\C-a" 'ada-array) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4621 (define-key map "b" 'ada-exception-block) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4622 (define-key map "d" 'ada-declare-block) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4623 (define-key map "c" 'ada-case) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4624 (define-key map "\C-e" 'ada-elsif) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4625 (define-key map "e" 'ada-else) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4626 (define-key map "\C-k" 'ada-package-spec) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4627 (define-key map "k" 'ada-package-body) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4628 (define-key map "\C-p" 'ada-procedure-spec) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4629 (define-key map "p" 'ada-subprogram-body) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4630 (define-key map "\C-f" 'ada-function-spec) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4631 (define-key map "f" 'ada-for-loop) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4632 (define-key map "i" 'ada-if) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4633 (define-key map "l" 'ada-loop) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4634 (define-key map "\C-r" 'ada-record) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4635 (define-key map "\C-s" 'ada-subtype) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4636 (define-key map "S" 'ada-tabsize) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4637 (define-key map "\C-t" 'ada-task-spec) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4638 (define-key map "t" 'ada-task-body) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4639 (define-key map "\C-y" 'ada-type) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4640 (define-key map "\C-v" 'ada-private) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4641 (define-key map "u" 'ada-use) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4642 (define-key map "\C-u" 'ada-with) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4643 (define-key map "\C-w" 'ada-when) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4644 (define-key map "w" 'ada-while-loop) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4645 (define-key map "\C-x" 'ada-exception) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4646 (define-key map "x" 'ada-exit) |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4647 (define-key ada-mode-extra-map "t" map)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4648 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4649 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4650 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4651 (defun ada-create-menu () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4652 "Create the Ada menu as shown in the menu bar." |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4653 (let ((m '("Ada" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4654 ("Help" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4655 ["Ada Mode" (info "ada-mode") t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4656 ["GNAT User's Guide" (info "gnat_ugn") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4657 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4658 ["GNAT Reference Manual" (info "gnat_rm") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4659 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4660 ["Gcc Documentation" (info "gcc") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4661 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4662 ["Gdb Documentation" (info "gdb") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4663 (eq ada-which-compiler 'gnat)] |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
4664 ["Ada95 Reference Manual" (info "arm95") t]) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4665 ("Options" :included (eq major-mode 'ada-mode) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4666 ["Auto Casing" (setq ada-auto-case (not ada-auto-case)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4667 :style toggle :selected ada-auto-case] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4668 ["Auto Indent After Return" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4669 (setq ada-indent-after-return (not ada-indent-after-return)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4670 :style toggle :selected ada-indent-after-return] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4671 ["Automatically Recompile For Cross-references" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4672 (setq ada-xref-create-ali (not ada-xref-create-ali)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4673 :style toggle :selected ada-xref-create-ali |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4674 :included (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4675 ["Confirm Commands" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4676 (setq ada-xref-confirm-compile (not ada-xref-confirm-compile)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4677 :style toggle :selected ada-xref-confirm-compile |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4678 :included (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4679 ["Show Cross-references In Other Buffer" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4680 (setq ada-xref-other-buffer (not ada-xref-other-buffer)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4681 :style toggle :selected ada-xref-other-buffer |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4682 :included (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4683 ["Tight Integration With GNU Visual Debugger" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4684 (setq ada-tight-gvd-integration (not ada-tight-gvd-integration)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4685 :style toggle :selected ada-tight-gvd-integration |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4686 :included (string-match "gvd" ada-prj-default-debugger)]) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4687 ["Customize" (customize-group 'ada) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4688 :included (fboundp 'customize-group)] |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4689 ["Check file" ada-check-current t] |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4690 ["Compile file" ada-compile-current t] |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
4691 ["Set main and Build" ada-set-main-compile-application t] |
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
4692 ["Show main" ada-show-current-main t] |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4693 ["Build" ada-compile-application t] |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4694 ["Run" ada-run-application t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4695 ["Debug" ada-gdb-application (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4696 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4697 ("Project" |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
4698 ["Show project" ada-show-current-project t] |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4699 ["Load..." ada-set-default-project-file t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4700 ["New..." ada-prj-new t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4701 ["Edit..." ada-prj-edit t]) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4702 ("Goto" :included (eq major-mode 'ada-mode) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4703 ["Goto Declaration/Body" ada-goto-declaration |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4704 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4705 ["Goto Body" ada-goto-body |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4706 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4707 ["Goto Declaration Other Frame" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4708 ada-goto-declaration-other-frame |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4709 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4710 ["Goto Previous Reference" ada-xref-goto-previous-reference |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4711 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4712 ["List Local References" ada-find-local-references |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4713 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4714 ["List References" ada-find-references |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4715 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4716 ["Goto Reference To Any Entity" ada-find-any-references |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4717 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4718 ["Goto Parent Unit" ada-goto-parent |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4719 (eq ada-which-compiler 'gnat)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4720 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4721 ["Next compilation error" next-error t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4722 ["Previous Package" ada-previous-package t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4723 ["Next Package" ada-next-package t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4724 ["Previous Procedure" ada-previous-procedure t] |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4725 ["Next Procedure" ada-next-procedure t] |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4726 ["Goto Start Of Statement" ada-move-to-start t] |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4727 ["Goto End Of Statement" ada-move-to-end t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4728 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4729 ["Other File" ff-find-other-file t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4730 ["Other File Other Window" ada-ff-other-window t]) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4731 ("Edit" :included (eq major-mode 'ada-mode) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4732 ["Search File On Source Path" ada-find-file t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4733 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4734 ["Complete Identifier" ada-complete-identifier t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4735 ["-----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4736 ["Indent Line" ada-indent-current-function t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4737 ["Justify Current Indentation" ada-justified-indent-current t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4738 ["Indent Lines in Selection" ada-indent-region t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4739 ["Indent Lines in File" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4740 (ada-indent-region (point-min) (point-max)) t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4741 ["Format Parameter List" ada-format-paramlist t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4742 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4743 ["Comment Selection" comment-region t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4744 ["Uncomment Selection" ada-uncomment-region t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4745 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4746 ["Fill Comment Paragraph" fill-paragraph t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4747 ["Fill Comment Paragraph Justify" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4748 ada-fill-comment-paragraph-justify t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4749 ["Fill Comment Paragraph Postfix" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4750 ada-fill-comment-paragraph-postfix t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4751 ["---" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4752 ["Adjust Case Selection" ada-adjust-case-region t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4753 ["Adjust Case in File" ada-adjust-case-buffer t] |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4754 ["Create Case Exception" ada-create-case-exception t] |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4755 ["Create Case Exception Substring" |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4756 ada-create-case-exception-substring t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4757 ["Reload Case Exceptions" ada-case-read-exceptions t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4758 ["----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4759 ["Make body for subprogram" ada-make-subprogram-body t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4760 ["-----" nil nil] |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4761 ["Narrow to subprogram" ada-narrow-to-defun t]) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4762 ("Templates" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4763 :included (eq major-mode 'ada-mode) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4764 ["Header" ada-header t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4765 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4766 ["Package Body" ada-package-body t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4767 ["Package Spec" ada-package-spec t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4768 ["Function Spec" ada-function-spec t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4769 ["Procedure Spec" ada-procedure-spec t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4770 ["Proc/func Body" ada-subprogram-body t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4771 ["Task Body" ada-task-body t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4772 ["Task Spec" ada-task-spec t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4773 ["Declare Block" ada-declare-block t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4774 ["Exception Block" ada-exception-block t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4775 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4776 ["Entry" ada-entry t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4777 ["Entry family" ada-entry-family t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4778 ["Select" ada-select t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4779 ["Accept" ada-accept t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4780 ["Or accept" ada-or-accep t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4781 ["Or delay" ada-or-delay t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4782 ["Or terminate" ada-or-terminate t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4783 ["---" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4784 ["Type" ada-type t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4785 ["Private" ada-private t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4786 ["Subtype" ada-subtype t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4787 ["Record" ada-record t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4788 ["Array" ada-array t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4789 ["----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4790 ["If" ada-if t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4791 ["Else" ada-else t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4792 ["Elsif" ada-elsif t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4793 ["Case" ada-case t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4794 ["-----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4795 ["While Loop" ada-while-loop t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4796 ["For Loop" ada-for-loop t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4797 ["Loop" ada-loop t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4798 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4799 ["Exception" ada-exception t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4800 ["Exit" ada-exit t] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4801 ["When" ada-when t]) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4802 ))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4803 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4804 (easy-menu-define ada-mode-menu ada-mode-map "Menu keymap for Ada mode" m) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4805 (if (featurep 'xemacs) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4806 (progn |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4807 (define-key ada-mode-map [menu-bar] ada-mode-menu) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4808 (set 'mode-popup-menu (cons "Ada mode" ada-mode-menu)))))) |
10705 | 4809 |
4810 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4811 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4812 ;; Commenting/Uncommenting code |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4813 ;; The following two calls are provided to enhance the standard |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4814 ;; comment-region function, which only allows uncommenting if the |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4815 ;; comment is at the beginning of a line. If the line have been re-indented, |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4816 ;; we are unable to use comment-region, which makes no sense. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4817 ;; |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4818 ;; In addition, we provide an interface to the standard comment handling |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4819 ;; function for justifying the comments. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4820 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4821 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4822 (defadvice comment-region (before ada-uncomment-anywhere disable) |
87566
0c4a74c24677
* progmodes/ada-xref.el (ada-prj-find-prj-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
87401
diff
changeset
|
4823 (if (and (consp arg) ;; a prefix with \C-u is of the form '(4), whereas |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4824 ;; \C-u 2 sets arg to '2' (fixed by S.Leake) |
87566
0c4a74c24677
* progmodes/ada-xref.el (ada-prj-find-prj-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
87401
diff
changeset
|
4825 (derived-mode-p 'ada-mode)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4826 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4827 (let ((cs (concat "^[ \t]*" (regexp-quote comment-start)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4828 (goto-char beg) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4829 (while (re-search-forward cs end t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4830 (replace-match comment-start)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4831 )))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4832 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4833 (defun ada-uncomment-region (beg end &optional arg) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4834 "Uncomment region BEG .. END. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4835 ARG gives number of comment characters." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4836 (interactive "r\nP") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4837 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4838 ;; This advice is not needed anymore with Emacs21. However, for older |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4839 ;; versions, as well as for XEmacs, we still need to enable it. |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4840 (if (or (<= emacs-major-version 20) (featurep 'xemacs)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4841 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4842 (ad-activate 'comment-region) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4843 (comment-region beg end (- (or arg 2))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4844 (ad-deactivate 'comment-region)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4845 (comment-region beg end (list (- (or arg 2)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4846 (ada-indent-region beg end))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4847 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4848 (defun ada-fill-comment-paragraph-justify () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4849 "Fill current comment paragraph and justify each line as well." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4850 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4851 (ada-fill-comment-paragraph 'full)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4852 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4853 (defun ada-fill-comment-paragraph-postfix () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4854 "Fill current comment paragraph and justify each line as well. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4855 Adds `ada-fill-comment-postfix' at the end of each line." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4856 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4857 (ada-fill-comment-paragraph 'full t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4858 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4859 (defun ada-fill-comment-paragraph (&optional justify postfix) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4860 "Fill the current comment paragraph. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4861 If JUSTIFY is non-nil, each line is justified as well. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4862 If POSTFIX and JUSTIFY are non-nil, `ada-fill-comment-postfix' is appended |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4863 to each line filled and justified. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4864 The paragraph is indented on the first line." |
10705 | 4865 (interactive "P") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4866 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4867 ;; check if inside comment or just in front a comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4868 (if (and (not (ada-in-comment-p)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4869 (not (looking-at "[ \t]*--"))) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4870 (error "Not inside comment")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4871 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4872 (let* (indent from to |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4873 (opos (point-marker)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4874 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4875 ;; Sets this variable to nil, otherwise it prevents |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4876 ;; fill-region-as-paragraph to work on Emacs <= 20.2 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4877 (parse-sexp-lookup-properties nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4878 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4879 fill-prefix |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4880 (fill-column (current-fill-column))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4881 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4882 ;; Find end of paragraph |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4883 (back-to-indentation) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4884 (while (and (not (eobp)) (looking-at ".*--[ \t]*[^ \t\n]")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4885 (forward-line 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4886 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4887 ;; If we were at the last line in the buffer, create a dummy empty |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4888 ;; line at the end of the buffer. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4889 (if (eobp) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4890 (insert "\n") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4891 (back-to-indentation))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4892 (beginning-of-line) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4893 (setq to (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4894 (goto-char opos) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4895 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4896 ;; Find beginning of paragraph |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4897 (back-to-indentation) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4898 (while (and (not (bobp)) (looking-at ".*--[ \t]*[^ \t\n]")) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4899 (forward-line -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4900 (back-to-indentation)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4901 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4902 ;; We want one line above the first one, unless we are at the beginning |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4903 ;; of the buffer |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4904 (unless (bobp) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4905 (forward-line 1)) |
41036
aaa6f44a1b96
(ada-fill-comment-prefix): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
41012
diff
changeset
|
4906 (beginning-of-line) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4907 (setq from (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4908 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4909 ;; Calculate the indentation we will need for the paragraph |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4910 (back-to-indentation) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4911 (setq indent (current-column)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4912 ;; unindent the first line of the paragraph |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4913 (delete-region from (point)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4914 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4915 ;; Remove the old postfixes |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4916 (goto-char from) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4917 (while (re-search-forward "--\n" to t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4918 (replace-match "\n")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4919 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4920 (goto-char (1- to)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4921 (setq to (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4922 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4923 ;; Indent and justify the paragraph |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4924 (setq fill-prefix ada-fill-comment-prefix) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4925 (set-left-margin from to indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4926 (if postfix |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4927 (setq fill-column (- fill-column (length ada-fill-comment-postfix)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4928 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4929 (fill-region-as-paragraph from to justify) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4930 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4931 ;; Add the postfixes if required |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4932 (if postfix |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4933 (save-restriction |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4934 (goto-char from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4935 (narrow-to-region from to) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4936 (while (not (eobp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4937 (end-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4938 (insert-char ? (- fill-column (current-column))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4939 (insert ada-fill-comment-postfix) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4940 (forward-line)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4941 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4942 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4943 ;; In Emacs <= 20.2 and XEmacs <=20.4, there is a bug, and a newline is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4944 ;; inserted at the end. Delete it |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4945 (if (or (featurep 'xemacs) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4946 (<= emacs-major-version 19) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4947 (and (= emacs-major-version 20) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4948 (<= emacs-minor-version 2))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4949 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4950 (goto-char to) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4951 (end-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4952 (delete-char 1))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4953 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4954 (goto-char opos))) |
10705 | 4955 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4956 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4957 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4958 ;; support for find-file.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4959 ;; These functions are used by find-file to guess the file names from |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4960 ;; unit names, and to find the other file (spec or body) from the current |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4961 ;; file (body or spec). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4962 ;; It is also used to find in which function we are, so as to put the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4963 ;; cursor at the correct position. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4964 ;; Standard Ada does not force any relation between unit names and file names, |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4965 ;; so some of these functions can only be a good approximation. However, they |
79854
d979323205c7
Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents:
79717
diff
changeset
|
4966 ;; are also overridden in `ada-xref'.el when we know that the user is using |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4967 ;; GNAT. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4968 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4969 |
79854
d979323205c7
Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents:
79717
diff
changeset
|
4970 ;; Overridden when we work with GNAT, to use gnatkrunch |
10705 | 4971 (defun ada-make-filename-from-adaname (adaname) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4972 "Determine the filename in which ADANAME is found. |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4973 This matches the GNAT default naming convention, except for |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4974 pre-defined units." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4975 (while (string-match "\\." adaname) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4976 (setq adaname (replace-match "-" t t adaname))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4977 (downcase adaname) |
10705 | 4978 ) |
4979 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4980 (defun ada-other-file-name () |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4981 "Return the name of the other file. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4982 The name returned is the body if `current-buffer' is the spec, |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4983 or the spec otherwise." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4984 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4985 (let ((is-spec nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4986 (is-body nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4987 (suffixes ada-spec-suffixes) |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4988 (name (buffer-file-name))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4989 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4990 ;; Guess whether we have a spec or a body, and get the basename of the |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4991 ;; file. Since the extension may not start with '.', we can not use |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4992 ;; file-name-extension |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4993 (while (and (not is-spec) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4994 suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4995 (if (string-match (concat "\\(.*\\)" (car suffixes) "$") name) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4996 (setq is-spec t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4997 name (match-string 1 name))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4998 (setq suffixes (cdr suffixes))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4999 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5000 (if (not is-spec) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5001 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5002 (setq suffixes ada-body-suffixes) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5003 (while (and (not is-body) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5004 suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5005 (if (string-match (concat "\\(.*\\)" (car suffixes) "$") name) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5006 (setq is-body t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5007 name (match-string 1 name))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5008 (setq suffixes (cdr suffixes))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
5009 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5010 ;; If this wasn't in either list, return name itself |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5011 (if (not (or is-spec is-body)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5012 name |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
5013 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5014 ;; Else find the other possible names |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5015 (if is-spec |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5016 (setq suffixes ada-body-suffixes) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5017 (setq suffixes ada-spec-suffixes)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5018 (setq is-spec name) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5019 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5020 (while suffixes |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5021 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5022 ;; If we are using project file, search for the other file in all |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5023 ;; the possible src directories. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5024 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
5025 (if (fboundp 'ada-find-src-file-in-dir) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5026 (let ((other |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5027 (ada-find-src-file-in-dir |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5028 (file-name-nondirectory (concat name (car suffixes)))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5029 (if other |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5030 (set 'is-spec other))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5031 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5032 ;; Else search in the current directory |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5033 (if (file-exists-p (concat name (car suffixes))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5034 (setq is-spec (concat name (car suffixes))))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5035 (setq suffixes (cdr suffixes))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5036 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5037 is-spec))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5038 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5039 (defun ada-which-function-are-we-in () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5040 "Return the name of the function whose definition/declaration point is in. |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5041 Used in `ff-pre-load-hook'." |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5042 (setq ff-function-name nil) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5043 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5044 (end-of-line);; make sure we get the complete name |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5045 (or (if (re-search-backward ada-procedure-start-regexp nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5046 (setq ff-function-name (match-string 5))) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5047 (if (re-search-backward ada-package-start-regexp nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5048 (setq ff-function-name (match-string 4)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5049 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5050 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5051 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5052 (defvar ada-last-which-function-line -1 |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
5053 "Last line on which `ada-which-function' was called.") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5054 (defvar ada-last-which-function-subprog 0 |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5055 "Last subprogram name returned by `ada-which-function'.") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5056 (make-variable-buffer-local 'ada-last-which-function-subprog) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5057 (make-variable-buffer-local 'ada-last-which-function-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5058 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5059 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5060 (defun ada-which-function () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5061 "Return the name of the function whose body the point is in. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5062 This function works even in the case of nested subprograms, whereas the |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5063 standard Emacs function `which-function' does not. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5064 Since the search can be long, the results are cached." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5065 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5066 (let ((line (count-lines 1 (point))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5067 (pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5068 end-pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5069 func-name indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5070 found) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5071 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5072 ;; If this is the same line as before, simply return the same result |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5073 (if (= line ada-last-which-function-line) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5074 ada-last-which-function-subprog |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5075 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5076 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5077 ;; In case the current line is also the beginning of the body |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5078 (end-of-line) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5079 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5080 ;; Are we looking at "function Foo\n (paramlist)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5081 (skip-chars-forward " \t\n(") |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5082 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5083 (condition-case nil |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5084 (up-list 1) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5085 (error nil)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5086 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5087 (skip-chars-forward " \t\n") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5088 (if (looking-at "return") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5089 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5090 (forward-word 1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5091 (skip-chars-forward " \t\n") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5092 (skip-chars-forward "a-zA-Z0-9_'"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5093 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5094 ;; Can't simply do forward-word, in case the "is" is not on the |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5095 ;; same line as the closing parenthesis |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5096 (skip-chars-forward "is \t\n") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5097 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5098 ;; No look for the closest subprogram body that has not ended yet. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5099 ;; Not that we expect all the bodies to be finished by "end <name>", |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5100 ;; or a simple "end;" indented in the same column as the start of |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5101 ;; the subprogram. The goal is to be as efficient as possible. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5102 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5103 (while (and (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5104 (re-search-backward ada-imenu-subprogram-menu-re nil t)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5105 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5106 ;; Get the function name, but not the properties, or this changes |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5107 ;; the face in the modeline on Emacs 21 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5108 (setq func-name (match-string-no-properties 2)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5109 (if (and (not (ada-in-comment-p)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5110 (not (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5111 (goto-char (match-end 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5112 (looking-at "[ \t\n]*new")))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5113 (save-excursion |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5114 (back-to-indentation) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5115 (setq indent (current-column)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5116 (if (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5117 (concat "end[ \t]+" func-name "[ \t]*;\\|^" |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5118 (make-string indent ? ) "end;")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5119 (setq end-pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5120 (setq end-pos (point-max))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5121 (if (>= end-pos pos) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5122 (setq found func-name)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5123 ) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5124 (setq ada-last-which-function-line line |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5125 ada-last-which-function-subprog found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5126 found)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5127 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5128 (defun ada-ff-other-window () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5129 "Find other file in other window using `ff-find-other-file'." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5130 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5131 (and (fboundp 'ff-find-other-file) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5132 (ff-find-other-file t))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5133 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5134 (defun ada-set-point-accordingly () |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5135 "Move to the function declaration that was set by `ff-which-function-are-we-in'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5136 (if ff-function-name |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5137 (progn |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5138 (goto-char (point-min)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5139 (unless (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5140 (concat ff-function-name "\\b") nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5141 (goto-char (point-min)))))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5142 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5143 (defun ada-get-body-name (&optional spec-name) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5144 "Return the file name for the body of SPEC-NAME. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5145 If SPEC-NAME is nil, return the body for the current package. |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
5146 Return nil if no body was found." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5147 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5148 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5149 (unless spec-name (setq spec-name (buffer-file-name))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5150 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5151 ;; Remove the spec extension. We can not simply remove the file extension, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5152 ;; but we need to take into account the specific non-GNAT extensions that the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5153 ;; user might have specified. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5154 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5155 (let ((suffixes ada-spec-suffixes) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5156 end) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5157 (while suffixes |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5158 (setq end (- (length spec-name) (length (car suffixes)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5159 (if (string-equal (car suffixes) (substring spec-name end)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5160 (setq spec-name (substring spec-name 0 end))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5161 (setq suffixes (cdr suffixes)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5162 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5163 ;; If find-file.el was available, use its functions |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
5164 (if (fboundp 'ff-get-file-name) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
5165 (ff-get-file-name ada-search-directories-internal |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5166 (ada-make-filename-from-adaname |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5167 (file-name-nondirectory |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5168 (file-name-sans-extension spec-name))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5169 ada-body-suffixes) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5170 ;; Else emulate it very simply |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5171 (concat (ada-make-filename-from-adaname |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5172 (file-name-nondirectory |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5173 (file-name-sans-extension spec-name))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5174 ".adb"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5175 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5176 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5177 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5178 ;; support for font-lock.el |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5179 ;; Strings are a real pain in Ada because a single quote character is |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5180 ;; overloaded as a string quote and type/instance delimiter. By default, a |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5181 ;; single quote is given punctuation syntax in `ada-mode-syntax-table'. |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5182 ;; So, for Font Lock mode purposes, we mark single quotes as having string |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5183 ;; syntax when the gods that created Ada determine them to be. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5184 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5185 ;; This only works in Emacs. See the comments before the grammar functions |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5186 ;; at the beginning of this file for how this is done with XEmacs. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5187 ;; ---------------------------------------------------- |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5188 |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5189 (defconst ada-font-lock-syntactic-keywords |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5190 ;; Mark single quotes as having string quote syntax in 'c' instances. |
80134
b0f27575dc50
(ada-font-lock-syntactic-keywords):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
79854
diff
changeset
|
5191 ;; We used to explicitly avoid ''' as a special case for fear the buffer |
b0f27575dc50
(ada-font-lock-syntactic-keywords):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
79854
diff
changeset
|
5192 ;; be highlighted as a string, but it seems this fear is unfounded. |
b0f27575dc50
(ada-font-lock-syntactic-keywords):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
79854
diff
changeset
|
5193 '(("[^a-zA-Z0-9)]\\('\\)[^\n]\\('\\)" (1 (7 . ?')) (2 (7 . ?'))) |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
5194 ("^[ \t]*\\(#\\(if\\|else\\|elsif\\|end\\)\\)" (1 (11 . ?\n))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5195 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5196 (defvar ada-font-lock-keywords |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5197 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5198 (list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5199 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5200 ;; handle "type T is access function return S;" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5201 (list "\\<\\(function[ \t]+return\\)\\>" '(1 font-lock-keyword-face) ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5202 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5203 ;; preprocessor line |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5204 (list "^[ \t]*\\(#.*\n\\)" '(1 font-lock-type-face t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5205 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5206 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5207 ;; accept, entry, function, package (body), protected (body|type), |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5208 ;; pragma, procedure, task (body) plus name. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5209 (list (concat |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5210 "\\<\\(" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5211 "accept\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5212 "entry\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5213 "function\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5214 "package[ \t]+body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5215 "package\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5216 "pragma\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5217 "procedure\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5218 "protected[ \t]+body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5219 "protected[ \t]+type\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5220 "protected\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5221 "task[ \t]+body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5222 "task[ \t]+type\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5223 "task" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5224 "\\)\\>[ \t]*" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5225 "\\(\\sw+\\(\\.\\sw*\\)*\\)?") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5226 '(1 font-lock-keyword-face) '(2 font-lock-function-name-face nil t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5227 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5228 ;; Optional keywords followed by a type name. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5229 (list (concat ; ":[ \t]*" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5230 "\\<\\(access[ \t]+all\\|access[ \t]+constant\\|access\\|constant\\|in[ \t]+reverse\\|\\|in[ \t]+out\\|in\\|out\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5231 "[ \t]*" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5232 "\\(\\sw+\\(\\.\\sw*\\)*\\)?") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5233 '(1 font-lock-keyword-face nil t) '(2 font-lock-type-face nil t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5234 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5235 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5236 ;; Main keywords, except those treated specially below. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5237 (concat "\\<" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5238 (regexp-opt |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5239 '("abort" "abs" "abstract" "accept" "access" "aliased" "all" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5240 "and" "array" "at" "begin" "case" "declare" "delay" "delta" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5241 "digits" "do" "else" "elsif" "entry" "exception" "exit" "for" |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5242 "generic" "if" "in" "interface" "is" "limited" "loop" "mod" "not" |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5243 "null" "or" "others" "overriding" "private" "protected" "raise" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5244 "range" "record" "rem" "renames" "requeue" "return" "reverse" |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5245 "select" "separate" "synchronized" "tagged" "task" "terminate" |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5246 "then" "until" "when" "while" "with" "xor") t) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5247 "\\>") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5248 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5249 ;; Anything following end and not already fontified is a body name. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5250 '("\\<\\(end\\)\\>\\([ \t]+\\)?\\(\\(\\sw\\|[_.]\\)+\\)?" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5251 (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5252 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5253 ;; Keywords followed by a type or function name. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5254 (list (concat "\\<\\(" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5255 "new\\|of\\|subtype\\|type" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5256 "\\)\\>[ \t]*\\(\\sw+\\(\\.\\sw*\\)*\\)?[ \t]*\\((\\)?") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5257 '(1 font-lock-keyword-face) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5258 '(2 (if (match-beginning 4) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5259 font-lock-function-name-face |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5260 font-lock-type-face) nil t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5261 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5262 ;; Keywords followed by a (comma separated list of) reference. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5263 ;; Note that font-lock only works on single lines, thus we can not |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5264 ;; correctly highlight a with_clause that spans multiple lines. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5265 (list (concat "\\<\\(goto\\|raise\\|use\\|with\\)" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5266 "[ \t]+\\([a-zA-Z0-9_., \t]+\\)\\W") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5267 '(1 font-lock-keyword-face) '(2 font-lock-reference-face nil t)) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5268 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5269 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5270 ;; Goto tags. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5271 '("<<\\(\\sw+\\)>>" 1 font-lock-reference-face) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5272 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5273 ;; Highlight based-numbers (R. Reagan <robin-reply@reagans.org>) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5274 (list "\\([0-9]+#[0-9a-fA-F_]+#\\)" '(1 font-lock-constant-face t)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5275 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5276 ;; Ada unnamed numerical constants |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5277 (list "\\W\\([-+]?[0-9._]+\\)\\>" '(1 font-lock-constant-face)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5278 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5279 )) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5280 "Default expressions to highlight in Ada mode.") |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5281 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5282 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5283 ;; --------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5284 ;; Support for outline.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5285 ;; --------------------------------------------------------- |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5286 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5287 (defun ada-outline-level () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5288 "This is so that `current-column' DTRT in otherwise-hidden text." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5289 ;; patch from Dave Love <fx@gnu.org> |
24446
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5290 (let (buffer-invisibility-spec) |
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5291 (save-excursion |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5292 (back-to-indentation) |
24446
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5293 (current-column)))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5294 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5295 ;; --------------------------------------------------------- |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5296 ;; Support for narrow-to-region |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5297 ;; --------------------------------------------------------- |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5298 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5299 (defun ada-narrow-to-defun (&optional arg) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5300 "Make text outside current subprogram invisible. |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5301 The subprogram visible is the one that contains or follow point. |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5302 Optional ARG is ignored. |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
5303 Use \\[widen] to go back to the full visibility for the buffer." |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5304 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5305 (interactive) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5306 (save-excursion |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5307 (let (end) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5308 (widen) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5309 (forward-line 1) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5310 (ada-previous-procedure) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5311 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5312 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5313 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5314 (setq end (point))) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5315 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5316 (ada-move-to-end) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5317 (end-of-line) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5318 (narrow-to-region end (point)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5319 (message |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5320 "Use M-x widen to get back to full visibility in the buffer")))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5321 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5322 ;; --------------------------------------------------------- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5323 ;; Automatic generation of code |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
5324 ;; The Ada mode has a set of function to automatically generate a subprogram |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5325 ;; or package body from its spec. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5326 ;; These function only use a primary and basic algorithm, this could use a |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5327 ;; lot of improvement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5328 ;; When the user is using GNAT, we rather use gnatstub to generate an accurate |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5329 ;; body. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5330 ;; ---------------------------------------------------------- |
10705 | 5331 |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5332 (defun ada-gen-treat-proc (match) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5333 "Make dummy body of a procedure/function specification. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5334 MATCH is a cons cell containing the start and end locations of the last search |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5335 for `ada-procedure-start-regexp'." |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5336 (goto-char (car match)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5337 (let (func-found procname functype) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5338 (cond |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5339 ((or (looking-at "^[ \t]*procedure") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5340 (setq func-found (looking-at "^[ \t]*function"))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5341 ;; treat it as a proc/func |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5342 (forward-word 2) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5343 (forward-word -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5344 (setq procname (buffer-substring (point) (cdr match))) ; store proc name |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5345 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5346 ;; goto end of procname |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5347 (goto-char (cdr match)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5348 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5349 ;; skip over parameterlist |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5350 (unless (looking-at "[ \t\n]*\\(;\\|return\\)") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5351 (forward-sexp)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5352 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5353 ;; if function, skip over 'return' and result type. |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5354 (if func-found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5355 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5356 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5357 (skip-chars-forward " \t\n") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5358 (setq functype (buffer-substring (point) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5359 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5360 (skip-chars-forward |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5361 "a-zA-Z0-9_\.") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5362 (point)))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5363 ;; look for next non WS |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5364 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5365 ((looking-at "[ \t]*;") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5366 (delete-region (match-beginning 0) (match-end 0));; delete the ';' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5367 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5368 (insert "is") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5369 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5370 (if func-found |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5371 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5372 (insert "Result : " functype ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5373 (ada-indent-newline-indent))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5374 (insert "begin") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5375 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5376 (if func-found |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5377 (insert "return Result;") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5378 (insert "null;")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5379 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5380 (insert "end " procname ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5381 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5382 ) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5383 ;; else |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5384 ((looking-at "[ \t\n]*is") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5385 ;; do nothing |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5386 ) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5387 ((looking-at "[ \t\n]*rename") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5388 ;; do nothing |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5389 ) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5390 (t |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5391 (message "unknown syntax")))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5392 (t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5393 (if (looking-at "^[ \t]*task") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5394 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5395 (message "Task conversion is not yet implemented") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5396 (forward-word 2) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5397 (if (looking-at "[ \t]*;") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5398 (forward-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5399 (ada-move-to-end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5400 )))))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5401 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5402 (defun ada-make-body () |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5403 "Create an Ada package body in the current buffer. |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5404 The spec must be the previously visited buffer. |
74073
ef8cf7255613
(ada-make-body): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
74002
diff
changeset
|
5405 This function typically is to be hooked into `ff-file-created-hook'." |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5406 (delete-region (point-min) (point-max)) |
64434
0eca480a23a7
(ada-make-body): Use `insert-buffer-substring' and `goto-char', not `insert-buffer'.
Juanma Barranquero <lekktu@gmail.com>
parents:
64085
diff
changeset
|
5407 (insert-buffer-substring (car (cdr (buffer-list)))) |
0eca480a23a7
(ada-make-body): Use `insert-buffer-substring' and `goto-char', not `insert-buffer'.
Juanma Barranquero <lekktu@gmail.com>
parents:
64085
diff
changeset
|
5408 (goto-char (point-min)) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5409 (ada-mode) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5410 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5411 (let (found ada-procedure-or-package-start-regexp) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5412 (if (setq found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5413 (ada-search-ignore-string-comment ada-package-start-regexp nil)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5414 (progn (goto-char (cdr found)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5415 (insert " body") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5416 ) |
10705 | 5417 (error "No package")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5418 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5419 (setq ada-procedure-or-package-start-regexp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5420 (concat ada-procedure-start-regexp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5421 "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5422 ada-package-start-regexp)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5423 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5424 (while (setq found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5425 (ada-search-ignore-string-comment |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5426 ada-procedure-or-package-start-regexp nil)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5427 (progn |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5428 (goto-char (car found)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5429 (if (looking-at ada-package-start-regexp) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5430 (progn (goto-char (cdr found)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5431 (insert " body")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5432 (ada-gen-treat-proc found)))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5433 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5434 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5435 (defun ada-make-subprogram-body () |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5436 "Create a dummy subprogram body in package body file from spec surrounding point." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5437 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5438 (let* ((found (re-search-backward ada-procedure-start-regexp nil t)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5439 (spec (match-beginning 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5440 body-file) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5441 (if found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5442 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5443 (goto-char spec) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5444 (if (and (re-search-forward "(\\|;" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5445 (= (char-before) ?\()) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5446 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5447 (ada-search-ignore-string-comment ")" nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5448 (ada-search-ignore-string-comment ";" nil))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5449 (setq spec (buffer-substring spec (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5450 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5451 ;; If find-file.el was available, use its functions |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5452 (setq body-file (ada-get-body-name)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5453 (if body-file |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5454 (find-file body-file) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5455 (error "No body found for the package. Create it first")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5456 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5457 (save-restriction |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5458 (widen) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5459 (goto-char (point-max)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5460 (forward-comment -10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5461 (re-search-backward "\\<end\\>" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5462 ;; Move to the beginning of the elaboration part, if any |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5463 (re-search-backward "^begin" nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5464 (newline) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5465 (forward-char -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5466 (insert spec) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5467 (re-search-backward ada-procedure-start-regexp nil t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5468 (ada-gen-treat-proc (cons (match-beginning 0) (match-end 0))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5469 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5470 (error "Not in subprogram spec")))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5471 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5472 ;; -------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5473 ;; Global initializations |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5474 ;; -------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5475 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5476 ;; Create the keymap once and for all. If we do that in ada-mode, |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5477 ;; the keys changed in the user's .emacs have to be modified |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5478 ;; every time |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5479 (ada-create-keymap) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5480 (ada-create-menu) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5481 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5482 ;; Create the syntax tables, but do not activate them |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5483 (ada-create-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5484 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5485 ;; Add the default extensions (and set up speedbar) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5486 (ada-add-extensions ".ads" ".adb") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5487 ;; This two files are generated by GNAT when running with -gnatD |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5488 (if (equal ada-which-compiler 'gnat) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5489 (ada-add-extensions ".ads.dg" ".adb.dg")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5490 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5491 ;; Read the special cases for exceptions |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5492 (ada-case-read-exceptions) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5493 |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
5494 ;; Setup auto-loading of the other Ada mode files. |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5495 (autoload 'ada-change-prj "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5496 (autoload 'ada-check-current "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5497 (autoload 'ada-compile-application "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5498 (autoload 'ada-compile-current "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5499 (autoload 'ada-complete-identifier "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5500 (autoload 'ada-find-file "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5501 (autoload 'ada-find-any-references "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5502 (autoload 'ada-find-src-file-in-dir "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5503 (autoload 'ada-find-local-references "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5504 (autoload 'ada-find-references "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5505 (autoload 'ada-gdb-application "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5506 (autoload 'ada-goto-declaration "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5507 (autoload 'ada-goto-declaration-other-frame "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5508 (autoload 'ada-goto-parent "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5509 (autoload 'ada-make-body-gnatstub "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5510 (autoload 'ada-point-and-xref "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5511 (autoload 'ada-reread-prj-file "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5512 (autoload 'ada-run-application "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5513 (autoload 'ada-set-default-project-file "ada-xref" nil nil) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5514 (autoload 'ada-set-default-project-file "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5515 (autoload 'ada-xref-goto-previous-reference "ada-xref" nil t) |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
5516 (autoload 'ada-set-main-compile-application "ada-xref" nil t) |
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
5517 (autoload 'ada-show-current-main "ada-xref" nil t) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5518 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5519 (autoload 'ada-customize "ada-prj" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5520 (autoload 'ada-prj-edit "ada-prj" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5521 (autoload 'ada-prj-new "ada-prj" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5522 (autoload 'ada-prj-save "ada-prj" nil t) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5523 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5524 (autoload 'ada-array "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5525 (autoload 'ada-case "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5526 (autoload 'ada-declare-block "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5527 (autoload 'ada-else "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5528 (autoload 'ada-elsif "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5529 (autoload 'ada-exception "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5530 (autoload 'ada-exception-block "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5531 (autoload 'ada-exit "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5532 (autoload 'ada-for-loop "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5533 (autoload 'ada-function-spec "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5534 (autoload 'ada-header "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5535 (autoload 'ada-if "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5536 (autoload 'ada-loop "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5537 (autoload 'ada-package-body "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5538 (autoload 'ada-package-spec "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5539 (autoload 'ada-private "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5540 (autoload 'ada-procedure-spec "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5541 (autoload 'ada-record "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5542 (autoload 'ada-subprogram-body "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5543 (autoload 'ada-subtype "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5544 (autoload 'ada-tabsize "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5545 (autoload 'ada-task-body "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5546 (autoload 'ada-task-spec "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5547 (autoload 'ada-type "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5548 (autoload 'ada-use "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5549 (autoload 'ada-when "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5550 (autoload 'ada-while-loop "ada-stmt" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5551 (autoload 'ada-with "ada-stmt" nil t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5552 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5553 ;;; provide ourselves |
10705 | 5554 (provide 'ada-mode) |
5555 | |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
5556 ;; arch-tag: 1b7d45ec-1698-43b5-8d4a-e479ea023270 |
10707 | 5557 ;;; ada-mode.el ends here |