Mercurial > emacs
annotate lisp/progmodes/ada-mode.el @ 110545:6ae8bab9b79a
Fix int/EMACS_INT use in buffer.c.
buffer.c (struct sortvec): Use EMACS_INT for buffer positions.
(struct sortstrlist, overlay_str_len): Use EMACS_INT for string
length.
(advance_to_char_boundary, Fset_buffer_multibyte)
(overlays_at, overlays_in, mouse_face_overlay_overlaps)
(overlay_touches_p, record_overlay_string, overlay_strings)
(recenter_overlay_lists, fix_start_end_in_overlays)
(modify_overlay, Fmove_overlay, report_overlay_modification)
(evaporate_overlays): Use EMACS_INT for buffer positions.
lisp.h (fix_start_end_in_overlays, overlay_touches_p): Adjust
prototypes.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 24 Sep 2010 08:45:09 -0400 |
parents | b10051866f51 |
children | 70b65e81d10e |
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, |
106815 | 4 ;; 2005, 2006, 2007, 2008, 2009, 2010 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 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
131 (defvar ispell-check-comments) |
65223
554ac3736464
(compile-auto-highlight, skeleton-further-elements): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64717
diff
changeset
|
132 (defvar skeleton-further-elements) |
554ac3736464
(compile-auto-highlight, skeleton-further-elements): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64717
diff
changeset
|
133 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
134 (defun ada-mode-version () |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
135 "Return Ada mode version." |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
136 (interactive) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
137 (let ((version-string "4.00")) |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
104543
diff
changeset
|
138 (if (called-interactively-p 'interactive) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
139 (message version-string) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
140 version-string))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
141 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
142 (defvar ada-mode-hook nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
143 "*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
|
144 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
|
145 fully loaded. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
146 This is a good place to add Ada environment specific bindings.") |
18120 | 147 |
148 (defgroup ada nil | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
149 "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
|
150 :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces) |
18120 | 151 :group 'languages) |
152 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
153 (defcustom ada-auto-case t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
154 "*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
|
155 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
|
156 and `ada-case-attribute'." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
157 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
158 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
159 (defcustom ada-broken-decl-indent 0 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
160 "*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
|
161 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
162 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
163 declare |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
164 A, |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
165 >>>>>B : Integer;" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
166 :type 'integer :group 'ada) |
18120 | 167 |
168 (defcustom ada-broken-indent 2 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
169 "*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
|
170 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
171 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
172 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
|
173 >>>>>>>>>Value);" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
174 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
175 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
176 (defcustom ada-continuation-indent ada-broken-indent |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
177 "*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
|
178 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
179 An example is : |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
180 Func (Param1, |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
181 >>>>>Param2);" |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
182 :type 'integer :group 'ada) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
183 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
184 (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
|
185 "*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
|
186 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
|
187 `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
|
188 :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
|
189 (const upcase-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
190 (const ada-capitalize-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
191 (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
|
192 (const ada-no-auto-case)) |
18120 | 193 :group 'ada) |
10705 | 194 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
195 (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
|
196 (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
|
197 "*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
|
198 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
|
199 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
|
200 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
201 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
|
202 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
|
203 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
|
204 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
|
205 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
|
206 by a comment." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
207 :type '(repeat (file)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
208 :group 'ada) |
18120 | 209 |
210 (defcustom ada-case-keyword 'downcase-word | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
211 "*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
|
212 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
|
213 `ada-capitalize-word'." |
18120 | 214 :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
|
215 (const upcase-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
216 (const ada-capitalize-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
217 (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
|
218 (const ada-no-auto-case)) |
18120 | 219 :group 'ada) |
220 | |
221 (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
|
222 "*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
|
223 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
|
224 `ada-capitalize-word'." |
18120 | 225 :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
|
226 (const upcase-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
227 (const ada-capitalize-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
228 (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
|
229 (const ada-no-auto-case)) |
18120 | 230 :group 'ada) |
231 | |
232 (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
|
233 "*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
|
234 :type 'boolean :group 'ada) |
106829
e9774faca8a4
* progmodes/ada-mode.el (ada-clean-buffer-before-saving): Make obsolete.
Juanma Barranquero <lekktu@gmail.com>
parents:
106815
diff
changeset
|
235 (make-obsolete-variable 'ada-clean-buffer-before-saving |
e9774faca8a4
* progmodes/ada-mode.el (ada-clean-buffer-before-saving): Make obsolete.
Juanma Barranquero <lekktu@gmail.com>
parents:
106815
diff
changeset
|
236 "use the `write-file-functions' hook." |
e9774faca8a4
* progmodes/ada-mode.el (ada-clean-buffer-before-saving): Make obsolete.
Juanma Barranquero <lekktu@gmail.com>
parents:
106815
diff
changeset
|
237 "23.2") |
e9774faca8a4
* progmodes/ada-mode.el (ada-clean-buffer-before-saving): Make obsolete.
Juanma Barranquero <lekktu@gmail.com>
parents:
106815
diff
changeset
|
238 |
25903
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 (defcustom ada-indent 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
241 "*Size of Ada indentation. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
242 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
243 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
244 procedure Foo is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
245 begin |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
246 >>>>>>>>>>null;" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
247 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
248 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
249 (defcustom ada-indent-after-return t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
250 "*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
|
251 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
252 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
253 (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
|
254 "*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
|
255 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
|
256 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
|
257 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
258 For instance: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
259 A := 1; -- A multi-line comment |
106958
7e2ebba4063d
Tweak docstring and comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
106957
diff
changeset
|
260 -- 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
|
261 :type 'boolean :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
262 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
263 (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
|
264 "*Non-nil means indent comment lines as code. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
265 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
|
266 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
267 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
268 (defcustom ada-indent-handle-comment-special nil |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
269 "*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
|
270 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
|
271 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
|
272 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
|
273 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
|
274 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
275 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
|
276 ( 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
|
277 Value_2); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
278 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
279 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
|
280 ( -- `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
|
281 Value_1, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
282 Value_2); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
283 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
284 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
|
285 ( -- `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
|
286 Value_1, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
287 Value_2);" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
288 :type 'boolean :group 'ada) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
289 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
290 (defcustom ada-indent-is-separate t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
291 "*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
|
292 :type 'boolean :group 'ada) |
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 (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
|
295 "*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
|
296 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
297 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
298 type A is |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
299 >>>>>>>>>>>record" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
300 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
301 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
302 (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
|
303 "*Indentation for renames relative to the matching function statement. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
304 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
|
305 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
|
306 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
307 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
308 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
|
309 return C; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
310 >>>renames Foo;" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
311 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
312 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
313 (defcustom ada-indent-return 0 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
314 "*Indentation for 'return' relative to the matching 'function' statement. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
315 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
|
316 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
|
317 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
318 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
319 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
|
320 >>>>>return C;" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
321 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
322 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
323 (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
|
324 "*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
|
325 :type 'boolean :group 'ada) |
18120 | 326 |
41012
39ee7e7e2200
(ada-fill-comment-prefix): GNAT wants 2 spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38446
diff
changeset
|
327 (defcustom ada-fill-comment-prefix "-- " |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
328 "*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
|
329 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
|
330 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
|
331 :type 'string :group 'ada) |
18120 | 332 |
333 (defcustom ada-fill-comment-postfix " --" | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
334 "*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
|
335 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
|
336 :type 'string :group 'ada) |
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 (defcustom ada-label-indent -4 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
339 "*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
|
340 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
341 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
342 procedure Foo is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
343 begin |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
344 >>>>Label: |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
345 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
346 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
|
347 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
348 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
349 (defcustom ada-language-version 'ada95 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
350 "*Ada language version; one of `ada83', `ada95', `ada2005'." |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
351 :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
|
352 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
353 (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
|
354 "*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
|
355 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
356 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
357 (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
|
358 "*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
|
359 If nil, no contextual menu is available." |
35959 | 360 :type '(restricted-sexp :match-alternatives (stringp vectorp)) |
35263 | 361 :group 'ada) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
362 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
363 (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
|
364 (append '(".") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
365 (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
|
366 '("/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
|
367 "/opt/gnu/adainclude")) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
368 "*Default list of directories to search for Ada files. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
369 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
|
370 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
|
371 :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
|
372 (const :tag "default" nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
373 (directory :format "%v"))) |
18120 | 374 :group 'ada) |
375 | |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
376 (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
|
377 "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
|
378 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
|
379 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
|
380 `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
|
381 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
382 (defcustom ada-stmt-end-indent 0 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
383 "*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
|
384 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
385 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
386 if A = B |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
387 >>>>then" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
388 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
389 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
390 (defcustom ada-tab-policy 'indent-auto |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
391 "*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
|
392 Must be one of : |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
393 `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
|
394 `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
|
395 `always-tab' : do `indent-relative'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
396 :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
|
397 (const indent-rigidly) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
398 (const always-tab)) |
18120 | 399 :group 'ada) |
10705 | 400 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
401 (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
|
402 "*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
|
403 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
404 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
405 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
|
406 >>>>Ada.Numerics;" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
407 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
408 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
409 (defcustom ada-when-indent 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
410 "*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
|
411 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
412 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
413 case A is |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
414 >>>>when B =>" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
415 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
416 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
417 (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
|
418 "*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
|
419 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
420 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
421 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
|
422 >>>>Ada.Numerics;" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
423 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
424 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
425 (defcustom ada-which-compiler 'gnat |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
426 "*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
|
427 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
|
428 The possible choices are: |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
429 `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
|
430 features. |
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
431 `generic': Use a generic compiler." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
432 :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
|
433 (const generic)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
434 :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
435 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
436 |
10705 | 437 ;;; ---- end of user configurable variables |
438 | |
439 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
440 (defvar ada-body-suffixes '(".adb") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
441 "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
|
442 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
|
443 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
444 (defvar ada-spec-suffixes '(".ads") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
445 "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
|
446 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
|
447 |
32300
5acb191f2a15
(ada-mode-menu): Add name to menu map.
Dave Love <fx@gnu.org>
parents:
30411
diff
changeset
|
448 (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
|
449 "Menu for Ada mode.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
450 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
451 (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
|
452 "Local keymap used for Ada mode.") |
10705 | 453 |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
454 (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
|
455 "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
|
456 |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
457 ;; 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
|
458 (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
|
459 "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
|
460 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
461 (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
|
462 "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
|
463 |
10705 | 464 (defvar ada-mode-syntax-table nil |
465 "Syntax table to be used for editing Ada source code.") | |
466 | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
467 (defvar ada-mode-symbol-syntax-table nil |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
468 "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
|
469 |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
470 (eval-when-compile |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
471 ;; 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
|
472 (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
|
473 '("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
|
474 "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
|
475 "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
|
476 "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
|
477 "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
|
478 "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
|
479 "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
|
480 "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
|
481 "List of Ada 83 keywords. |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
482 Used to define `ada-*-keywords'.") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
483 |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
484 (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
|
485 '("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
|
486 "List of keywords new in Ada 95. |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
487 Used to define `ada-*-keywords'.") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
488 |
73935
a1e6ec065b4f
(ada-83-string-keywords, ada-95-string-keywords, ada-2005-string-keywords):
Juanma Barranquero <lekktu@gmail.com>
parents:
73932
diff
changeset
|
489 (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
|
490 '("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
|
491 "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
|
492 Used to define `ada-*-keywords.'")) |
25903
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-ret-binding nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
495 "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
|
496 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
497 (defvar ada-case-exception '() |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
498 "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
|
499 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
500 (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
|
501 "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
|
502 The substrings are detected for word constituant when the word |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
503 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
|
504 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
|
505 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
506 (defvar ada-lfd-binding nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
507 "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
|
508 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
509 (defvar ada-other-file-alist nil |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
510 "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
|
511 See `ff-other-file-alist'.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
512 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
513 (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
|
514 '(("[^:]\\(\\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
|
515 ("[^=]\\(\\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
|
516 ("\\(\\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
|
517 ("\\(\\s-*\\)--" 1)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
518 "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
|
519 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
|
520 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
|
521 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
522 (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
|
523 '((ada-declaration |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
524 (regexp . "[^:]\\(\\s-*\\):[^:]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
525 (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
|
526 (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
|
527 (ada-assignment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
528 (regexp . "[^=]\\(\\s-+\\)=[^=]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
529 (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
|
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-comment |
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-*\\)--") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
533 (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
|
534 (ada-use |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
535 (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
|
536 (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
|
537 (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
|
538 ) |
73422
e1bac685e6a0
(ada-83-string-keywords, ada-last-which-function-line ada-no-auto-case,
Juanma Barranquero <lekktu@gmail.com>
parents:
71924
diff
changeset
|
539 "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
|
540 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
|
541 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
542 (defconst ada-align-region-separate |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
543 (eval-when-compile |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
544 (concat |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
545 "^\\s-*\\($\\|\\(" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
546 "begin\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
547 "declare\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
548 "else\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
549 "end\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
550 "exception\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
551 "for\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
552 "function\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
553 "generic\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
554 "if\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
555 "is\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
556 "procedure\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
557 "record\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
558 "return\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
559 "type\\|" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
560 "when" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
561 "\\)\\>\\)")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
562 "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
|
563 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
564 ;;; ---- 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
|
565 |
10705 | 566 (defconst ada-83-keywords |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
567 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
568 (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
|
569 "Regular expression matching Ada83 keywords.") |
10705 | 570 |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
571 (defconst ada-95-keywords |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
572 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
573 (concat "\\<" (regexp-opt |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
574 (append |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
575 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
|
576 ada-83-string-keywords) t) "\\>")) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
577 "Regular expression matching Ada95 keywords.") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
578 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
579 (defconst ada-2005-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
580 (eval-when-compile |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
581 (concat "\\<" (regexp-opt |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
582 (append |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
583 ada-2005-string-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
584 ada-83-string-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
585 ada-95-string-keywords) t) "\\>")) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
586 "Regular expression matching Ada2005 keywords.") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
587 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
588 (defvar ada-keywords ada-2005-keywords |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
589 "Regular expression matching Ada keywords.") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
590 ;; FIXME: make this customizable |
10705 | 591 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
592 (defconst ada-ident-re |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
593 "[[:alpha:]]\\(?:[_[:alnum:]]\\)*" |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
594 ;; [:alnum:] matches any multibyte word constituent, as well as |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
595 ;; Latin-1 letters and numbers. This allows __ and trailing _; |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
596 ;; someone (emacs bug#1919) proposed [^\W_] to fix that, but \W does |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
597 ;; _not_ mean "not word constituent" inside a character alternative. |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
598 "Regexp matching an Ada identifier.") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
599 |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
600 (defconst ada-goto-label-re |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
601 (concat "<<" ada-ident-re ">>") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
602 "Regexp matching a goto label.") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
603 |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
604 (defconst ada-block-label-re |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
605 (concat ada-ident-re "[ \t\n]*:[^=]") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
606 "Regexp matching a block label. |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
607 Note that this also matches a variable declaration.") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
608 |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
609 (defconst ada-label-re |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
610 (concat "\\(?:" ada-block-label-re "\\)\\|\\(?:" ada-goto-label-re "\\)") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
611 "Regexp matching a goto or block label.") |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
612 |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
613 ;; "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
|
614 ;; Similarly, we put '[not] overriding' on the same line with 'procedure' etc. |
10705 | 615 (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
|
616 (concat |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
617 "^[ \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
|
618 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
619 ;; 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
|
620 "\\(" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
621 "\\(\"[^\"]+\"\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
622 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
623 ;; 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
|
624 "\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
625 "\\(\\(\\sw\\|[_.]\\)+\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
626 "\\)") |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
627 "Regexp matching Ada subprogram start. |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
628 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
|
629 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
630 (defconst ada-name-regexp |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
631 "\\([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
|
632 "Regexp matching a fully qualified name (including attribute).") |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
633 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
634 (defconst ada-package-start-regexp |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
635 (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
|
636 "Regexp matching start of package. |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
637 The package name is in (match-string 4).") |
10705 | 638 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
639 (defconst ada-compile-goto-error-file-linenr-re |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
640 "\\([-_.a-zA-Z0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
641 "Regexp matching filename:linenr[:column].") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
642 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
643 |
10705 | 644 ;;; ---- regexps for indentation functions |
645 | |
646 (defvar ada-block-start-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
647 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
648 (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
|
649 "exception" "generic" "loop" "or" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
650 "private" "select" )) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
651 "\\|\\(\\(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
|
652 "Regexp for keywords starting Ada blocks.") |
10705 | 653 |
654 (defvar ada-end-stmt-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
655 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
656 (concat "\\(" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
657 ";" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
658 "=>[ \t]*$" "\\|" |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
659 "=>[ \t]*--.*$" "\\|" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
660 "^[ \t]*separate[ \t]*(\\(\\sw\\|[_.]\\)+)" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
661 "\\<" (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
|
662 "loop" "private" "record" "select" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
663 "then abort" "then") t) "\\>" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
664 "^[ \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
|
665 t) "\\>\\(\\sw\\|[ \t_.]\\)+\\<is\\>" "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
666 "^[ \t]*exception\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
667 "\\)") ) |
10705 | 668 "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
|
669 A new statement starts after these.") |
10705 | 670 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
671 (defvar ada-matching-start-re |
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 "\\<" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
674 (regexp-opt |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
675 '("end" "loop" "select" "begin" "case" "do" "declare" |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
676 "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
|
677 "\\>")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
678 "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
|
679 |
10705 | 680 (defvar ada-loop-start-re |
681 "\\<\\(for\\|while\\|loop\\)\\>" | |
682 "Regexp for the start of a loop.") | |
683 | |
684 (defvar ada-subprog-start-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
685 (eval-when-compile |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
686 (concat "\\<" (regexp-opt '("accept" "entry" "function" "overriding" "package" "procedure" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
687 "protected" "task") t) "\\>")) |
10705 | 688 "Regexp for the start of a subprogram.") |
689 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
690 (defvar ada-contextual-menu-on-identifier nil |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
691 "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
|
692 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
693 (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
|
694 "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
|
695 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
|
696 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
|
697 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
|
698 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
|
699 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
|
700 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
|
701 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
|
702 |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
703 (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
|
704 "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
|
705 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
|
706 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
|
707 '("Ada" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
708 ["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
|
709 :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
|
710 ["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
|
711 :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
|
712 ["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
|
713 ["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
|
714 :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
|
715 ["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
|
716 :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
|
717 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
718 ["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
|
719 ["Goto Parent Unit" ada-goto-parent])) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
720 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
721 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
722 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
723 ;; Support for imenu (see imenu.el) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
724 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
725 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
726 (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
|
727 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
728 (defconst ada-imenu-subprogram-menu-re |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
729 (concat "^[ \t]*\\(overriding[ \t]*\\)?\\(procedure\\|function\\)[ \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
|
730 "\\(\\(\\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
|
731 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
|
732 "\\)[ \t\n]*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
733 "\\(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
|
734 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
735 (defvar ada-imenu-generic-expression |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
736 (list |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
737 (list nil ada-imenu-subprogram-menu-re 3) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
738 (list "*Specs*" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
739 (concat |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
740 "^[ \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
|
741 "\\(" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
742 "\\(" 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
|
743 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
|
744 "\\([ \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
|
745 "\\)?;") 2) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
746 '("*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
|
747 '("*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
|
748 '("*Protected*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
749 "^[ \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
|
750 '("*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
|
751 "Imenu generic expression for Ada mode. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
752 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
|
753 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
|
754 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
755 |
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 ;; Support for compile.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
758 ;;------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
759 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
760 (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
|
761 "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
|
762 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
763 (mouse-set-point last-input-event) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
764 (ada-compile-goto-error (point)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
765 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
766 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
767 (defun ada-compile-goto-error (pos) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
768 "Replace `compile-goto-error' from compile.el. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
769 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
|
770 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
|
771 For instance, on these lines: |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
772 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
|
773 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
|
774 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
|
775 (interactive "d") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
776 (goto-char pos) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
777 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
778 (skip-chars-backward "-a-zA-Z0-9_:./\\") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
779 (cond |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
780 ;; 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
|
781 ;; 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
|
782 ((and (not (bolp)) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
783 (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
|
784 (and |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
785 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
786 (beginning-of-line) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
787 (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
|
788 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
789 (if (looking-at "\\([0-9]+\\)") (backward-word 1)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
790 (looking-at "line \\([0-9]+\\)")))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
791 ) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
792 (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
|
793 (file (if (match-beginning 2) (match-string 1) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
794 (save-excursion (beginning-of-line) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
795 (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
|
796 (match-string 1)))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
797 (error-pos (point-marker)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
798 source) |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
799 |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
800 ;; set source marker |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
801 (save-excursion |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
802 (compilation-find-file (point-marker) (match-string 1) "./") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
803 (set-buffer file) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
804 |
104543
da8b3e61b182
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
103989
diff
changeset
|
805 (when (stringp line) |
da8b3e61b182
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
103989
diff
changeset
|
806 (goto-char (point-min)) |
da8b3e61b182
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
103989
diff
changeset
|
807 (forward-line (1- (string-to-number line)))) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
808 |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
809 (setq source (point-marker))) |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
810 |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
811 (compilation-goto-locus error-pos source nil) |
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
812 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
813 )) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
814 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
815 ;; otherwise, default behavior |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
816 (t |
74202
abb4062752c5
(ada-which-compiler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
74073
diff
changeset
|
817 (compile-goto-error)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
818 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
819 (recenter)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
820 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
821 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
822 ;;------------------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
823 ;; Grammar related function |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
824 ;; 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
|
825 ;; 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
|
826 ;; 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
|
827 ;; 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
|
828 ;; - ' 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
|
829 ;; - # 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
|
830 ;; - " 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
|
831 ;; - ( 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
|
832 ;; 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
|
833 ;; 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
|
834 ;; |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
835 ;; 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
|
836 ;; corresponding action is applied automatically each time the buffer |
110305
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
837 ;; changes via syntax-propertize-function. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
838 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
839 ;; 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
|
840 ;; 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
|
841 ;; 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
|
842 ;; 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
|
843 ;; with parse-partial-sexp. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
844 ;; 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
|
845 ;; better is available on XEmacs. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
846 ;;------------------------------------------------------------------------- |
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 (defun ada-create-syntax-table () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
849 "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
|
850 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
|
851 declares it as a word constituent." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
852 (interactive) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
853 (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
|
854 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
855 ;; 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
|
856 ;; 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
|
857 ;; off the track.) |
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 |
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 (modify-syntax-entry ?\[ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
873 (modify-syntax-entry ?\] "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
874 (modify-syntax-entry ?\{ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
875 (modify-syntax-entry ?\} "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
876 (modify-syntax-entry ?. "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
877 (modify-syntax-entry ?\\ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
878 (modify-syntax-entry ?\' "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
879 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
880 ;; 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
|
881 (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
|
882 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
883 ;; 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
|
884 ;; 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
|
885 (if (featurep 'xemacs) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
886 (modify-syntax-entry ?# "<" ada-mode-syntax-table) |
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 ;; and \f and \n end a comment |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
890 (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
|
891 (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
|
892 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
893 ;; define what belongs in Ada symbols |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
894 (modify-syntax-entry ?_ "_" ada-mode-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 ;; define parentheses to match |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
897 (modify-syntax-entry ?\( "()" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
898 (modify-syntax-entry ?\) ")(" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
899 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
900 (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
|
901 (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
|
902 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
903 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
904 ;; 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
|
905 ;; of the section on Grammar related functions). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
906 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
907 (if (featurep 'xemacs) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
908 (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
|
909 "Handles special character constants and gnatprep statements." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
910 (let (change) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
911 (if (< to from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
912 (let ((tmp from)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
913 (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
|
914 (save-excursion |
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 "'\\([(\")#]\\)'" 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 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 "'A'")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
922 (goto-char from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
923 (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
|
924 (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
|
925 (length (match-string 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
926 (match-string 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
927 change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
928 (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
|
929 ad-do-it |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
930 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
931 (while change |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
932 (goto-char (caar change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
933 (delete-char (cadar change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
934 (insert (caddar change)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
935 (setq change (cdr change))))))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
936 |
110305
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
937 (unless (eval-when-compile (fboundp 'syntax-propertize-via-font-lock)) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
938 ;; Before `syntax-propertize', we had to use font-lock to apply syntax-table |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
939 ;; properties, and in some cases we even had to do it manually (in |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
940 ;; `ada-after-change-function'). `ada-handle-syntax-table-properties' |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
941 ;; decides which method to use. |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
942 |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
943 (defun ada-set-syntax-table-properties () |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
944 "Assign `syntax-table' properties in accessible part of buffer. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
945 In particular, character constants are said to be strings, #...# |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
946 are treated as numbers instead of gnatprep comments." |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
947 (let ((modified (buffer-modified-p)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
948 (buffer-undo-list t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
949 (inhibit-read-only t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
950 (inhibit-point-motion-hooks t) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
951 (inhibit-modification-hooks t)) |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
952 (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
|
953 (goto-char (point-min)) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
954 (while (re-search-forward |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
955 ;; The following regexp was adapted from |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
956 ;; `ada-font-lock-syntactic-keywords'. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
957 "^[ \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
|
958 nil t) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
959 (if (match-beginning 1) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
960 (put-text-property |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
961 (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
|
962 (put-text-property |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
963 (match-beginning 2) (match-end 2) 'syntax-table '(7 . ?')) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
964 (put-text-property |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
965 (match-beginning 3) (match-end 3) 'syntax-table '(7 . ?')))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
966 (unless modified |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
967 (restore-buffer-modified-p nil)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
968 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
969 (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
|
970 "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
|
971 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
|
972 (save-excursion |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
973 (save-restriction |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
974 (let ((from (progn (goto-char beg) (line-beginning-position))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
975 (to (progn (goto-char end) (line-end-position)))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
976 (narrow-to-region from to) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
977 (save-match-data |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
978 (ada-set-syntax-table-properties)))))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
979 |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
980 (defun ada-initialize-syntax-table-properties () |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
981 "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
|
982 (save-excursion |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
983 (save-restriction |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
984 (widen) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
985 (save-match-data |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
986 (ada-set-syntax-table-properties)))) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
987 (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
|
988 |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
989 (defun ada-handle-syntax-table-properties () |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
990 "Handle `syntax-table' properties." |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
991 (if font-lock-mode |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
992 ;; `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
|
993 (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
|
994 ;; Take care of `syntax-table' properties manually. |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
995 (ada-initialize-syntax-table-properties))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
996 |
110305
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
997 ) ;;(not (fboundp 'syntax-propertize)) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
998 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
999 ;;------------------------------------------------------------------ |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1000 ;; Testing the grammatical context |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1001 ;;------------------------------------------------------------------ |
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-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. |
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'." |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1006 (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
|
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 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1010 (defsubst ada-in-string-p (&optional parse-result) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1011 "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
|
1012 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
|
1013 (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
|
1014 (parse-partial-sexp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1015 (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
|
1016 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1017 (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
|
1018 "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
|
1019 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
|
1020 (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
|
1021 (parse-partial-sexp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1022 (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
|
1023 (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
|
1024 |
107113
bb513dfefeaf
Fix ada-mode handling of number literals.
Chong Yidong <cyd@stupidchicken.com>
parents:
106958
diff
changeset
|
1025 (defsubst ada-in-numeric-literal-p () |
bb513dfefeaf
Fix ada-mode handling of number literals.
Chong Yidong <cyd@stupidchicken.com>
parents:
106958
diff
changeset
|
1026 "Return t if point is after a prefix of a numeric literal." |
bb513dfefeaf
Fix ada-mode handling of number literals.
Chong Yidong <cyd@stupidchicken.com>
parents:
106958
diff
changeset
|
1027 (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)")) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1028 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1029 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1030 ;; Contextual menus |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
1031 ;; 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
|
1032 ;; mouse button. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1033 ;; 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
|
1034 ;; 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
|
1035 ;; 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
|
1036 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1037 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1038 (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
|
1039 "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
|
1040 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
|
1041 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1042 (funcall function) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1043 (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
|
1044 (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
|
1045 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1046 (defun ada-popup-menu (position) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1047 "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
|
1048 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
|
1049 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
|
1050 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
|
1051 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
|
1052 (interactive "e") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1053 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1054 ;; 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
|
1055 ;; 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
|
1056 ;; transient-mark-mode. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1057 (let ((deactivate-mark nil)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1058 (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
|
1059 (list (point) (current-buffer))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1060 (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
|
1061 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1062 (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
|
1063 (and (char-after) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1064 (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
|
1065 (= (char-after) ?_)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1066 (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
|
1067 (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
|
1068 (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
|
1069 )) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1070 (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
|
1071 (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
|
1072 (let (choice) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1073 (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
|
1074 (if choice |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1075 (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
|
1076 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1077 (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
|
1078 (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
|
1079 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1080 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1081 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1082 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1083 ;; Misc functions |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1084 ;;------------------------------------------------------------------ |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1085 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1086 ;;;###autoload |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1087 (defun ada-add-extensions (spec body) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1088 "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
|
1089 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
|
1090 extensions. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1091 SPEC and BODY are two regular expressions that must match against |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1092 the file name." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1093 (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
|
1094 (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
|
1095 (if tmp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1096 (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
|
1097 (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
|
1098 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1099 (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
|
1100 (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
|
1101 (if tmp |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1102 (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
|
1103 (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
|
1104 |
41082
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1105 (add-to-list 'auto-mode-alist |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1106 (cons (concat (regexp-quote spec) "\\'") 'ada-mode)) |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1107 (add-to-list 'auto-mode-alist |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1108 (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
|
1109 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1110 (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
|
1111 (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
|
1112 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1113 ;; 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
|
1114 ;; speedbar) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1115 (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
|
1116 (progn |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1117 (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
|
1118 spec) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1119 (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
|
1120 body))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1121 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1122 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1123 |
10707 | 1124 ;;;###autoload |
10705 | 1125 (defun ada-mode () |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1126 "Ada mode is the major mode for editing Ada code. |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1127 \\{ada-mode-map}" |
10705 | 1128 |
1129 (interactive) | |
1130 (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
|
1131 |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1132 (set-syntax-table ada-mode-syntax-table) |
10705 | 1133 |
59237
276072a4cd9d
(ada-mode): Use mode-require-final-newline.
Richard M. Stallman <rms@gnu.org>
parents:
55730
diff
changeset
|
1134 (set (make-local-variable 'require-final-newline) mode-require-final-newline) |
10705 | 1135 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1136 ;; 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
|
1137 ;; simply with M-h |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1138 (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
|
1139 (set (make-local-variable 'paragraph-separate) "[ \t\n\f]*$") |
10705 | 1140 |
1141 ;; comment end must be set because it may hold a wrong value if | |
1142 ;; 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
|
1143 (set (make-local-variable 'comment-end) "") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1144 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1145 ;; 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
|
1146 (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
|
1147 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1148 ;; 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
|
1149 ;; 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
|
1150 ;; 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
|
1151 ;; 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
|
1152 ;; 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
|
1153 (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
|
1154 (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
|
1155 (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
|
1156 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1157 (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
|
1158 'ada-indent-current-function) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1159 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1160 (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
|
1161 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1162 ;; 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
|
1163 ;; 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
|
1164 ;; 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
|
1165 (unless (featurep 'xemacs) |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
1166 (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
|
1167 (set (make-local-variable 'comment-padding) 0) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
1168 (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
|
1169 |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1170 (setq case-fold-search t) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1171 (if (boundp 'imenu-case-fold-search) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1172 (setq imenu-case-fold-search t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1173 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1174 (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
|
1175 'ada-fill-comment-paragraph) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1176 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1177 ;; Support for compile.el |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1178 ;; 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
|
1179 (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
|
1180 (lambda() |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1181 ;; 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
|
1182 (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
|
1183 '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
|
1184 (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
|
1185 'ada-compile-goto-error) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1186 (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
|
1187 'ada-compile-goto-error))) |
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1188 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1189 ;; font-lock support : |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1190 |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1191 (set (make-local-variable 'font-lock-defaults) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1192 '(ada-font-lock-keywords |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1193 nil t |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1194 ((?\_ . "w") (?# . ".")) |
110305
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1195 beginning-of-line)) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1196 |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1197 (if (eval-when-compile (fboundp 'syntax-propertize-via-font-lock)) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1198 (set (make-local-variable 'syntax-propertize-function) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1199 (syntax-propertize-via-font-lock ada-font-lock-syntactic-keywords)) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1200 (set (make-local-variable 'font-lock-syntactic-keywords) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1201 ada-font-lock-syntactic-keywords)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1202 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1203 ;; 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
|
1204 (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
|
1205 'ada-other-file-alist) |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1206 (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
|
1207 '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
|
1208 (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
|
1209 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
|
1210 (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
|
1211 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1212 (make-local-variable 'ff-special-constructs) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1213 (mapc (lambda (pair) (add-to-list 'ff-special-constructs pair)) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1214 (list |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1215 ;; Top level child package declaration; go to the parent package. |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1216 (cons (eval-when-compile |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1217 (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+" |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1218 "\\(body[ \t]+\\)?" |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1219 "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is")) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1220 (lambda () |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1221 (ff-get-file |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1222 ada-search-directories-internal |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1223 (ada-make-filename-from-adaname (match-string 3)) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1224 ada-spec-suffixes))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1225 |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1226 ;; A "separate" clause. |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1227 (cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))" |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1228 (lambda () |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1229 (ff-get-file |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1230 ada-search-directories-internal |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1231 (ada-make-filename-from-adaname (match-string 1)) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1232 ada-spec-suffixes))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1233 |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1234 ;; A "with" clause. |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1235 (cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1236 (lambda () |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1237 (ff-get-file |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1238 ada-search-directories-internal |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1239 (ada-make-filename-from-adaname (match-string 1)) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1240 ada-spec-suffixes))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1241 )) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1242 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1243 ;; Support for outline-minor-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1244 (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
|
1245 "\\([ \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
|
1246 (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
|
1247 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1248 ;; Support for imenu : We want a sorted index |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1249 (setq imenu-generic-expression ada-imenu-generic-expression) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1250 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1251 (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
|
1252 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1253 ;; 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
|
1254 (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
|
1255 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1256 ;; Support for align |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1257 (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
|
1258 (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
|
1259 (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
|
1260 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1261 ;; Exclude comments alone on line from alignment. |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1262 (add-to-list 'align-exclude-rules-list |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1263 '(ada-solo-comment |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1264 (regexp . "^\\(\\s-*\\)--") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1265 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1266 (add-to-list 'align-exclude-rules-list |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1267 '(ada-solo-use |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1268 (regexp . "^\\(\\s-*\\)\\<use\\>") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1269 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1270 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1271 (setq ada-align-modes nil) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1272 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1273 (add-to-list 'ada-align-modes |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1274 '(ada-declaration-assign |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1275 (regexp . "[^:]\\(\\s-*\\):[^:]") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1276 (valid . (lambda() (not (ada-in-comment-p)))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1277 (repeat . t) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1278 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1279 (add-to-list 'ada-align-modes |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1280 '(ada-associate |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1281 (regexp . "[^=]\\(\\s-*\\)=>") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1282 (valid . (lambda() (not (ada-in-comment-p)))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1283 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1284 (add-to-list 'ada-align-modes |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1285 '(ada-comment |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1286 (regexp . "\\(\\s-*\\)--") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1287 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1288 (add-to-list 'ada-align-modes |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1289 '(ada-use |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1290 (regexp . "\\(\\s-*\\)\\<use\\s-") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1291 (valid . (lambda() (not (ada-in-comment-p)))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1292 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1293 (add-to-list 'ada-align-modes |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1294 '(ada-at |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1295 (regexp . "\\(\\s-+\\)at\\>") |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1296 (modes . '(ada-mode)))) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1297 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1298 (setq align-mode-rules-list ada-align-modes) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1299 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1300 ;; Set up the contextual menu |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1301 (if ada-popup-key |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1302 (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
|
1303 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1304 ;; 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
|
1305 (define-abbrev-table 'ada-mode-abbrev-table ()) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1306 (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
|
1307 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1308 ;; 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
|
1309 (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
|
1310 (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
|
1311 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1312 ;; 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
|
1313 (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
|
1314 |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1315 ;; Support for add-log |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1316 (set (make-local-variable 'add-log-current-defun-function) 'ada-which-function) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
1317 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1318 (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
|
1319 mode-name "Ada") |
10705 | 1320 |
1321 (use-local-map ada-mode-map) | |
1322 | |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1323 (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
|
1324 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1325 (set-syntax-table ada-mode-syntax-table) |
10705 | 1326 |
62213
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1327 (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
|
1328 '((< '(backward-delete-char-untabify |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1329 (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
|
1330 (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
|
1331 |
62772
f2892faa87d4
* progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents:
62213
diff
changeset
|
1332 (run-mode-hooks 'ada-mode-hook) |
10705 | 1333 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1334 ;; 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
|
1335 ;; ada-fill-comment-prefix |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1336 ;; FIXME: if the user modified ada-fill-comment-prefix in his .emacs |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1337 ;; then it was already available before running the hook, and if he |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1338 ;; modifies it in the hook, he might as well modify comment-start instead. |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1339 (set (make-local-variable 'comment-start) (or ada-fill-comment-prefix "-- ")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1340 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1341 ;; 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
|
1342 ;; font-lock-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1343 |
110305
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1344 (unless (or (eval-when-compile (fboundp 'syntax-propertize-via-font-lock)) |
b10051866f51
New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
110270
diff
changeset
|
1345 (featurep 'xemacs)) |
78589
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1346 (ada-initialize-syntax-table-properties) |
56d6a084bbb6
(ada-create-syntax-table): Move
Martin Rudalics <rudalics@gmx.at>
parents:
78234
diff
changeset
|
1347 (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
|
1348 |
10705 | 1349 ;; the following has to be done after running the ada-mode-hook |
1350 ;; 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
|
1351 ;; inside the hook |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1352 ;; FIXME: it might even be set later on via file-local vars, no? |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1353 ;; so maybe ada-keywords should be set lazily. |
10705 | 1354 (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
|
1355 (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
|
1356 ((eq ada-language-version 'ada95) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
1357 (setq ada-keywords ada-95-keywords)) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
1358 ((eq ada-language-version 'ada2005) |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
1359 (setq ada-keywords ada-2005-keywords))) |
10705 | 1360 |
1361 (if ada-auto-case | |
1362 (ada-activate-keys-for-case))) | |
1363 | |
62213
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1364 (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
|
1365 "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
|
1366 (save-excursion |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1367 (let ((aa-end (point))) |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1368 (ada-adjust-case-region |
39b445ca202b
(ada-adjust-case-skeleton): Moved from ada-stmt.el.
Richard M. Stallman <rms@gnu.org>
parents:
59237
diff
changeset
|
1369 (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
|
1370 (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
|
1371 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1372 (defun ada-region-selected () |
87401
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1373 "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
|
1374 (if (fboundp 'use-region-p) |
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1375 (use-region-p) |
5c852af4e53c
(ada-region-selected): Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
84917
diff
changeset
|
1376 (region-active-p))) |
10705 | 1377 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1378 ;;----------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1379 ;; auto-casing |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
1380 ;; 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
|
1381 ;; functions to auto-case identifiers, keywords, ... |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1382 ;; 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
|
1383 ;; `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
|
1384 ;; 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
|
1385 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1386 ;; 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
|
1387 ;; 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
|
1388 ;; 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
|
1389 ;; 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
|
1390 ;;----------------------------------------------------------------- |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1391 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1392 (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
|
1393 "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
|
1394 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
|
1395 (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
|
1396 (erase-buffer) |
84917
e52cb6ef60ec
(ada-save-exceptions-to-file): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents:
78601
diff
changeset
|
1397 (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
|
1398 (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
|
1399 (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
|
1400 (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
|
1401 (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
|
1402 (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
|
1403 (save-buffer) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1404 (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
|
1405 ) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1406 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1407 (defun ada-create-case-exception (&optional word) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1408 "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
|
1409 If WORD is not given, then the current word in the buffer is used instead. |
97078
2f3e251c6e3c
Typo fixes for Ada mode.
Juanma Barranquero <lekktu@gmail.com>
parents:
97058
diff
changeset
|
1410 The new word is added to the first file in `ada-case-exception-file'. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1411 The standard casing rules will no longer apply to this word." |
10705 | 1412 (interactive) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1413 (let ((file-name |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1414 (cond ((stringp ada-case-exception-file) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1415 ada-case-exception-file) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1416 ((listp ada-case-exception-file) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1417 (car ada-case-exception-file)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1418 (t |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1419 (error (concat "No exception file specified. " |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1420 "See variable ada-case-exception-file")))))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1421 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1422 (unless word |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1423 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1424 (save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1425 (skip-syntax-backward "w") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1426 (setq word (buffer-substring-no-properties |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1427 (point) (save-excursion (forward-word 1) (point))))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1428 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1429 ;; 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
|
1430 (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
|
1431 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1432 ;; 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
|
1433 ;; we simply want to replace it. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1434 (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
|
1435 (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
|
1436 (setcar (assoc-string word ada-case-exception t) word) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1437 (add-to-list 'ada-case-exception (cons word t))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1438 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1439 (ada-save-exceptions-to-file file-name))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1440 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1441 (defun ada-create-case-exception-substring (&optional word) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1442 "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
|
1443 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
|
1444 or the selected region if any is active. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1445 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
|
1446 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
|
1447 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
|
1448 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1449 (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
|
1450 (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
|
1451 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
|
1452 ((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
|
1453 (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
|
1454 (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
|
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")))))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1457 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1458 ;; 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
|
1459 ;; 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
|
1460 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1461 (word nil) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1462 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1463 ((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
|
1464 (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
|
1465 (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
|
1466 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1467 (t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1468 (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
|
1469 (unwind-protect |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1470 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1471 (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
|
1472 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1473 (skip-syntax-backward "w") |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1474 (setq word (buffer-substring-no-properties |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1475 (point) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1476 (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
|
1477 (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
|
1478 (syntax-table)))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1479 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1480 ;; 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
|
1481 (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
|
1482 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1483 ;; 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
|
1484 ;; 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
|
1485 (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
|
1486 (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
|
1487 (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
|
1488 (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
|
1489 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1490 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1491 (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
|
1492 |
65584
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
1493 (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
|
1494 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1495 (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
|
1496 "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
|
1497 (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
|
1498 (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
|
1499 (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
|
1500 (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
|
1501 (widen) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1502 (goto-char (point-min)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1503 (while (not (eobp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1504 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1505 ;; 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
|
1506 ;; 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
|
1507 ;; 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
|
1508 (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
|
1509 (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
|
1510 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1511 ;; 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
|
1512 (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
|
1513 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1514 (setq word (substring word 1)) |
55730
b4eeb441c089
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54889
diff
changeset
|
1515 (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
|
1516 (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
|
1517 (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
|
1518 (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
|
1519 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1520 (forward-line 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1521 (kill-buffer nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1522 (set-buffer buffer))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1523 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1524 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1525 (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
|
1526 "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
|
1527 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1528 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1529 ;; 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
|
1530 (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
|
1531 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
|
1532 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1533 (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
|
1534 (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
|
1535 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1536 ((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
|
1537 (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
|
1538 ada-case-exception-file)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1539 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1540 (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
|
1541 "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
|
1542 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1543 (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
|
1544 (max (point)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1545 (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
|
1546 (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
|
1547 re) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1548 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1549 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1550 (forward-word -1) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1551 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1552 (unwind-protect |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1553 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1554 (modify-syntax-entry ?_ "." (syntax-table)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1555 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1556 (while substrings |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1557 (setq re (concat "\\b" (regexp-quote (caar substrings)) "\\b")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1558 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1559 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1560 (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
|
1561 (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
|
1562 (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
|
1563 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1564 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1565 (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
|
1566 ))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1567 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1568 (defun ada-adjust-case-identifier () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1569 "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
|
1570 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
|
1571 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
|
1572 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1573 (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
|
1574 (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
|
1575 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1576 (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
|
1577 (ada-adjust-case-substring)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1578 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1579 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1580 (let ((end (point)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1581 (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
|
1582 (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1583 match) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1584 ;; 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
|
1585 (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
|
1586 ada-case-exception t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1587 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1588 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1589 (delete-region start end) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1590 (insert (car match))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1591 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1592 ;; 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
|
1593 (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
|
1594 (ada-adjust-case-substring)))))) |
10705 | 1595 |
1596 (defun ada-after-keyword-p () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1597 "Return t if cursor is after a keyword that is not an attribute." |
10705 | 1598 (save-excursion |
1599 (forward-word -1) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1600 (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
|
1601 (or (= (char-before) ?_) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1602 (= (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
|
1603 (looking-at (concat ada-keywords "[^_]"))))) |
10705 | 1604 |
1605 (defun ada-adjust-case (&optional force-identifier) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1606 "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
|
1607 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
|
1608 (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
|
1609 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1610 (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
|
1611 (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
|
1612 ;; 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
|
1613 (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
|
1614 (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
|
1615 ;; 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
|
1616 (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
|
1617 ;; 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
|
1618 (not (ada-in-string-or-comment-p)) |
107113
bb513dfefeaf
Fix ada-mode handling of number literals.
Chong Yidong <cyd@stupidchicken.com>
parents:
106958
diff
changeset
|
1619 ;; if in a numeric literal |
bb513dfefeaf
Fix ada-mode handling of number literals.
Chong Yidong <cyd@stupidchicken.com>
parents:
106958
diff
changeset
|
1620 (not (ada-in-numeric-literal-p)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1621 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1622 (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
|
1623 (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
|
1624 (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
|
1625 (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
|
1626 (= (following-char) ?')) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1627 (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
|
1628 (if (and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1629 (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
|
1630 (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
|
1631 (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
|
1632 (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
|
1633 (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
|
1634 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1635 ) |
10705 | 1636 |
1637 (defun ada-adjust-case-interactive (arg) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1638 "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
|
1639 ARG is the prefix the user entered with \\[universal-argument]." |
10705 | 1640 (interactive "P") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1641 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1642 (if ada-auto-case |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1643 (let ((lastk last-command-event)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1644 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1645 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1646 (cond ((or (eq lastk ?\n) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1647 (eq lastk ?\r)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1648 ;; horrible kludge |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1649 (insert " ") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1650 (ada-adjust-case) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1651 ;; horrible dekludge |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1652 (delete-char -1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1653 ;; some special keys and their bindings |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1654 (cond |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1655 ((eq lastk ?\n) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1656 (funcall ada-lfd-binding)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1657 ((eq lastk ?\r) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1658 (funcall ada-ret-binding)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1659 ((eq lastk ?\C-i) (ada-tab)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1660 ;; Else just insert the character |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1661 ((self-insert-command (prefix-numeric-value arg)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1662 ;; if there is a keyword in front of the underscore |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1663 ;; then it should be part of an identifier (MH) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1664 (if (eq lastk ?_) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1665 (ada-adjust-case t) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1666 (ada-adjust-case)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1667 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1668 ;; Else, no auto-casing |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1669 (cond |
101002
3b3c7e10cd97
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100891
diff
changeset
|
1670 ((eq last-command-event ?\n) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1671 (funcall ada-lfd-binding)) |
101002
3b3c7e10cd97
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100891
diff
changeset
|
1672 ((eq last-command-event ?\r) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1673 (funcall ada-ret-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1674 (t |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1675 (self-insert-command (prefix-numeric-value arg)))))) |
10705 | 1676 |
1677 (defun ada-activate-keys-for-case () | |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1678 ;; FIXME: Use post-self-insert-hook instead of changing key bindings. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1679 "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
|
1680 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1681 ;; 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
|
1682 ;; when casing is activated. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1683 ;; 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
|
1684 ;; 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
|
1685 (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
|
1686 (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
|
1687 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1688 ;; Call case modifying function after certain keys. |
10705 | 1689 (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
|
1690 ada-mode-map |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1691 (char-to-string key) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1692 'ada-adjust-case-interactive))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1693 '( ?` ?_ ?# ?% ?& ?* ?( ?) ?- ?= ?+ |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1694 ?| ?\; ?: ?' ?\" ?< ?, ?. ?> ?/ ?\n 32 ?\r ))) |
10705 | 1695 |
1696 (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
|
1697 "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
|
1698 No other letter is modified. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1699 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
|
1700 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1701 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1702 (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
|
1703 (first t)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1704 (skip-syntax-backward "w") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1705 (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
|
1706 (< (point) end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1707 (and first |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1708 (setq first nil)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1709 (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
|
1710 (delete-char 1))))) |
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 (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
|
1713 "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
|
1714 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
|
1715 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
|
1716 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
|
1717 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
|
1718 See also `ada-auto-case' to disable auto casing altogether." |
97078
2f3e251c6e3c
Typo fixes for Ada mode.
Juanma Barranquero <lekktu@gmail.com>
parents:
97058
diff
changeset
|
1719 nil) |
10705 | 1720 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1721 (defun ada-capitalize-word (&optional arg) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1722 "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
|
1723 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
|
1724 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1725 (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
|
1726 (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
|
1727 (modify-syntax-entry ?_ "_") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1728 (capitalize-region begin end) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1729 (modify-syntax-entry ?_ "w"))) |
10705 | 1730 |
1731 (defun ada-adjust-case-region (from to) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1732 "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
|
1733 Attention: This function might take very long for big regions!" |
10705 | 1734 (interactive "*r") |
1735 (let ((begin nil) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1736 (end nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1737 (keywordp nil) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1738 (attribp nil)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1739 (message "Adjusting case ...") |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1740 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1741 (save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1742 (goto-char to) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1743 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1744 ;; loop: look for all identifiers, keywords, and attributes |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1745 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1746 (while (re-search-backward "\\<\\(\\sw+\\)\\>" from t) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1747 (setq end (match-end 1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1748 (setq attribp |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1749 (and (> (point) from) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1750 (save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1751 (forward-char -1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1752 (setq attribp (looking-at "'.[^']"))))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1753 (or |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1754 ;; do nothing if it is a string or comment |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1755 (ada-in-string-or-comment-p) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1756 (progn |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1757 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1758 ;; get the identifier or keyword or attribute |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1759 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1760 (setq begin (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1761 (setq keywordp (looking-at ada-keywords)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1762 (goto-char end) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1763 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1764 ;; casing according to user-option |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1765 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1766 (if attribp |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1767 (funcall ada-case-attribute -1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1768 (if keywordp |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1769 (funcall ada-case-keyword -1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1770 (ada-adjust-case-identifier))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1771 (goto-char begin)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1772 (message "Adjusting case ... Done"))))) |
10705 | 1773 |
1774 (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
|
1775 "Adjust the case of all words in the whole buffer. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1776 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
|
1777 (interactive "*") |
10705 | 1778 (ada-adjust-case-region (point-min) (point-max))) |
1779 | |
1780 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1781 ;;-------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1782 ;; Format Parameter Lists |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1783 ;; 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
|
1784 ;; 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
|
1785 ;; - 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
|
1786 ;; format: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1787 ;; ( (<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
|
1788 ;; ... ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1789 ;; This is done in `ada-scan-paramlist'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1790 ;; - 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
|
1791 ;; `ada-insert-paramlist'. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1792 ;; 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
|
1793 ;; 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
|
1794 ;; 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
|
1795 ;;-------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1796 |
10705 | 1797 (defun ada-format-paramlist () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1798 "Reformat the parameter list point is in." |
10705 | 1799 (interactive) |
1800 (let ((begin nil) | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1801 (end nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1802 (delend nil) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1803 (paramlist nil)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1804 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1805 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1806 ;; check if really inside parameter list |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1807 (or (ada-in-paramlist-p) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1808 (error "Not in parameter list")) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1809 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1810 ;; find start of current parameter-list |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1811 (ada-search-ignore-string-comment |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1812 (concat ada-subprog-start-re "\\|\\<body\\>" ) t nil) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1813 (down-list 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1814 (backward-char 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1815 (setq begin (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1816 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1817 ;; find end of parameter-list |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1818 (forward-sexp 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1819 (setq delend (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1820 (delete-char -1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1821 (insert "\n") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1822 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1823 ;; find end of last parameter-declaration |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1824 (forward-comment -1000) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1825 (setq end (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1826 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1827 ;; build a list of all elements of the parameter-list |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1828 (setq paramlist (ada-scan-paramlist (1+ begin) end)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1829 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1830 ;; delete the original parameter-list |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1831 (delete-region begin delend) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1832 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1833 ;; insert the new parameter-list |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1834 (goto-char begin) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
1835 (ada-insert-paramlist paramlist)))) |
10705 | 1836 |
1837 (defun ada-scan-paramlist (begin end) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1838 "Scan the parameter list found in between BEGIN and END. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1839 Return the equivalent internal parameter list." |
10705 | 1840 (let ((paramlist (list)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1841 (param (list)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1842 (notend t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1843 (apos nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1844 (epos nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1845 (semipos nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1846 (match-cons nil)) |
10705 | 1847 |
1848 (goto-char begin) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1849 |
10705 | 1850 ;; loop until end of last parameter |
1851 (while notend | |
1852 | |
1853 ;; find first character of parameter-declaration | |
1854 (ada-goto-next-non-ws) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1855 (setq apos (point)) |
10705 | 1856 |
1857 ;; find last character of parameter-declaration | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1858 (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
|
1859 (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
|
1860 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1861 (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
|
1862 (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
|
1863 (setq epos end)) |
10705 | 1864 |
1865 ;; read name(s) of parameter(s) | |
1866 (goto-char apos) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1867 (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
|
1868 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1869 (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
|
1870 (ada-search-ignore-string-comment ":" nil epos t 'search-forward) |
10705 | 1871 |
1872 ;; look for 'in' | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1873 (setq apos (point)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1874 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1875 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1876 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1877 (consp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1878 (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
|
1879 "in" nil epos t 'word-search-forward))))) |
10705 | 1880 |
1881 ;; look for 'out' | |
1882 (goto-char apos) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1883 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1884 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1885 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1886 (consp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1887 (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
|
1888 "out" nil epos t 'word-search-forward))))) |
10705 | 1889 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1890 ;; look for 'access' |
10705 | 1891 (goto-char apos) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1892 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1893 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1894 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1895 (consp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1896 (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
|
1897 "access" nil epos t 'word-search-forward))))) |
10705 | 1898 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1899 ;; skip 'in'/'out'/'access' |
10705 | 1900 (goto-char apos) |
1901 (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
|
1902 (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
|
1903 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1904 (ada-goto-next-non-ws)) |
10705 | 1905 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1906 ;; 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
|
1907 ;; 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
|
1908 ;; 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
|
1909 (looking-at "\\<\\(\\sw\\|[_.' \t]\\)+\\>") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1910 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1911 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1912 (list (match-string 0)))) |
10705 | 1913 |
1914 ;; read default-expression, if there is one | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1915 (goto-char (setq apos (match-end 0))) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1916 (setq param |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1917 (append param |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1918 (list |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1919 (if (setq match-cons |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1920 (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
|
1921 ":=" 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
|
1922 (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
|
1923 nil)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1924 |
10705 | 1925 ;; add this parameter-declaration to the list |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1926 (setq paramlist (append paramlist (list param))) |
10705 | 1927 |
1928 ;; check if it was the last parameter | |
1929 (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
|
1930 (setq notend nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1931 (goto-char semipos)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1932 ) |
10705 | 1933 (reverse paramlist))) |
1934 | |
1935 (defun ada-insert-paramlist (paramlist) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
1936 "Insert a formatted PARAMLIST in the buffer." |
10705 | 1937 (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
|
1938 (parlen 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1939 (typlen 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1940 (inp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1941 (outp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1942 (accessp nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1943 (column nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1944 (firstcol nil)) |
10705 | 1945 |
1946 ;; loop until last parameter | |
1947 (while (not (zerop i)) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1948 (setq i (1- i)) |
10705 | 1949 |
1950 ;; get max length of parameter-name | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1951 (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
|
1952 |
10705 | 1953 ;; get max length of type-name |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1954 (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
|
1955 |
10705 | 1956 ;; is there any 'in' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1957 (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
|
1958 |
10705 | 1959 ;; is there any 'out' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1960 (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
|
1961 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1962 ;; is there any 'access' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1963 (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
|
1964 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1965 |
10705 | 1966 ;; does paramlist already start on a separate line ? |
1967 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1968 (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
|
1969 (looking-at "^.")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1970 ;; yes => re-indent it |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1971 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1972 (ada-indent-current) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1973 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1974 (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
|
1975 (replace-match " \\1")))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1976 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1977 ;; 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
|
1978 (fixup-whitespace) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1979 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1980 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1981 ((looking-at "[ \t]*\\(\n\\|;\\)") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1982 (replace-match "\\1")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
1983 ((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
|
1984 (replace-match " \\1")))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1985 (insert " ")) |
10705 | 1986 |
1987 (insert "(") | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1988 (ada-indent-current) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1989 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1990 (setq firstcol (current-column)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1991 (setq i (length paramlist)) |
10705 | 1992 |
1993 ;; loop until last parameter | |
1994 (while (not (zerop i)) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1995 (setq i (1- i)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1996 (setq column firstcol) |
10705 | 1997 |
1998 ;; insert parameter-name, space and colon | |
1999 (insert (nth 0 (nth i paramlist))) | |
2000 (indent-to (+ column parlen 1)) | |
2001 (insert ": ") | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2002 (setq column (current-column)) |
10705 | 2003 |
2004 ;; insert 'in' or space | |
2005 (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
|
2006 (insert "in ") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2007 (if (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2008 (or inp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2009 accessp) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2010 (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
|
2011 (insert " "))) |
10705 | 2012 |
2013 ;; insert 'out' or space | |
2014 (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
|
2015 (insert "out ") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2016 (if (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2017 (or outp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2018 accessp) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2019 (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
|
2020 (insert " "))) |
10705 | 2021 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2022 ;; insert 'access' |
10705 | 2023 (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
|
2024 (insert "access ")) |
10705 | 2025 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2026 (setq column (current-column)) |
10705 | 2027 |
2028 ;; insert type-name and, if necessary, space and default-expression | |
2029 (insert (nth 4 (nth i paramlist))) | |
2030 (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
|
2031 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2032 (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
|
2033 (insert (nth 5 (nth i paramlist))))) |
10705 | 2034 |
2035 ;; 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
|
2036 (if (zerop i) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2037 (insert ")") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2038 ;; 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
|
2039 (insert ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2040 (newline) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2041 (indent-to firstcol)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2042 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2043 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2044 ;; if anything follows, except semicolon, newline, is or return |
10705 | 2045 ;; 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
|
2046 (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
|
2047 (ada-indent-newline-indent)) |
10705 | 2048 )) |
2049 | |
2050 | |
2051 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2052 ;;;---------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2053 ;; Indentation Engine |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2054 ;; 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
|
2055 ;; - position of reference in the buffer |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2056 ;; - 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
|
2057 ;; that are evaluated) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2058 ;; 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
|
2059 ;; 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
|
2060 ;; 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
|
2061 ;; 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
|
2062 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2063 ;; 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
|
2064 ;; 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
|
2065 ;; 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
|
2066 ;; based on previous lines. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2067 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2068 ;; The relevant functions for indentation are: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2069 ;; - `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
|
2070 ;; - `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
|
2071 ;; calculation that were done |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2072 ;; - `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
|
2073 ;; - `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
|
2074 ;; based on the context (see above). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2075 ;; - `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
|
2076 ;; 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
|
2077 ;; context. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2078 ;;;---------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2079 |
10705 | 2080 (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
|
2081 "Indent the region between BEG end END." |
10705 | 2082 (interactive "*r") |
2083 (goto-char beg) | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2084 (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
|
2085 (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
|
2086 (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
|
2087 (count-lines beg end))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2088 (endmark (copy-marker end))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2089 ;; catch errors while indenting |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2090 (while (< (point) endmark) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2091 (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
|
2092 (progn |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2093 (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
|
2094 block-done 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2095 (message msg lines-remaining))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2096 (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
|
2097 (ada-indent-current)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2098 (forward-line 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2099 (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
|
2100 (message "Indenting ... done"))) |
10705 | 2101 |
2102 (defun ada-indent-newline-indent () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2103 "Indent the current line, insert a newline and then indent the new line." |
10705 | 2104 (interactive "*") |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2105 (ada-indent-current) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2106 (newline) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2107 (ada-indent-current)) |
10705 | 2108 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2109 (defun ada-indent-newline-indent-conditional () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2110 "Insert a newline and indent it. |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2111 The original line is re-indented 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
|
2112 (interactive "*") |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2113 ;; If at end of buffer (entering brand new code), some indentation |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2114 ;; fails. For example, a block label requires whitespace following |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2115 ;; the : to be recognized. So we do the newline first, then |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2116 ;; go back and indent the original line. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2117 (newline) |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2118 (if ada-indent-after-return |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2119 (progn |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2120 (forward-char -1) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2121 (ada-indent-current) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2122 (forward-char 1))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2123 (ada-indent-current)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2124 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2125 (defun ada-justified-indent-current () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2126 "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
|
2127 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2128 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2129 (let ((cur-indent (ada-indent-current))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2130 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2131 (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
|
2132 (goto-char (car cur-indent)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2133 (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
|
2134 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2135 (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
|
2136 (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
|
2137 (message "%s" (mapconcat (lambda(x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2138 (cond |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2139 ((symbolp x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2140 (symbol-name x)) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2141 ((numberp x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2142 (number-to-string x)) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2143 ((listp x) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2144 (concat "- " (symbol-name (cadr x)))) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2145 )) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2146 (cdr cur-indent) |
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2147 " + ")))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2148 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2149 (goto-char (car cur-indent)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2150 (sit-for 1)))) |
10705 | 2151 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2152 (defun ada-batch-reformat () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2153 "Re-indent and re-case all the files found on the command line. |
97078
2f3e251c6e3c
Typo fixes for Ada mode.
Juanma Barranquero <lekktu@gmail.com>
parents:
97058
diff
changeset
|
2154 This function should be used from the command line, with a |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2155 command like: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2156 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
|
2157 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2158 (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
|
2159 (let ((source (car command-line-args-left))) |
65584
6dbba0bd58df
Message format fixes, commit no. 3
Deepak Goel <deego@gnufans.org>
parents:
65223
diff
changeset
|
2160 (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
|
2161 (find-file source) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2162 (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
|
2163 (ada-adjust-case-buffer) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2164 (write-file source)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2165 (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
|
2166 (message "Done") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2167 (kill-emacs 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2168 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2169 (defsubst ada-goto-previous-word () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2170 "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
|
2171 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
|
2172 (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
|
2173 |
10705 | 2174 (defun ada-indent-current () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2175 "Indent current line as Ada code. |
97078
2f3e251c6e3c
Typo fixes for Ada mode.
Juanma Barranquero <lekktu@gmail.com>
parents:
97058
diff
changeset
|
2176 Return the calculation that was done, including the reference point |
2f3e251c6e3c
Typo fixes for Ada mode.
Juanma Barranquero <lekktu@gmail.com>
parents:
97058
diff
changeset
|
2177 and the offset." |
10705 | 2178 (interactive) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2179 (let ((orgpoint (point-marker)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2180 cur-indent tmp-indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2181 prev-indent) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2182 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2183 (unwind-protect |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2184 (with-syntax-table ada-mode-symbol-syntax-table |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2185 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2186 ;; 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
|
2187 ;; 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
|
2188 (if (featurep 'xemacs) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2189 (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
|
2190 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2191 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2192 (setq cur-indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2193 |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2194 ;; Not First line in the buffer ? |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2195 (if (save-excursion (zerop (forward-line -1))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2196 (progn |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2197 (back-to-indentation) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2198 (ada-get-current-indent)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2199 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2200 ;; first line in the buffer |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2201 (list (point-min) 0)))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2202 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2203 ;; 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
|
2204 ;; 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
|
2205 (if cur-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2206 (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
|
2207 (current-column)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2208 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
|
2209 (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
|
2210 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2211 (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
|
2212 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2213 ((numberp (car tmp-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2214 (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
|
2215 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2216 (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
|
2217 ) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2218 (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
|
2219 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2220 ;; 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
|
2221 (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
|
2222 nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2223 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2224 (delete-horizontal-space) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2225 (indent-to prev-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2226 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2227 ;; restore position of point |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2228 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2229 (goto-char orgpoint) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2230 (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
|
2231 (back-to-indentation))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2232 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
2233 (if (featurep 'xemacs) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2234 (ad-deactivate 'parse-partial-sexp))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2235 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2236 cur-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2237 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2238 (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
|
2239 "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
|
2240 (let (column |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2241 pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2242 match-cons |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2243 result |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2244 (orgpoint (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2245 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2246 (forward-comment -10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2247 (forward-line 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2248 (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2249 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2250 (setq result |
10705 | 2251 (cond |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2252 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2253 ;;----------------------------- |
10705 | 2254 ;; 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
|
2255 ;;----------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2256 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2257 ((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
|
2258 (not (ada-in-paramlist-p)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2259 (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
|
2260 |
10705 | 2261 ;; 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
|
2262 ;; Source_File_Record) |
10705 | 2263 (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
|
2264 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2265 ;; 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
|
2266 (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
|
2267 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2268 (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
|
2269 (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
|
2270 (list (1- (point)) 0)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2271 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2272 (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
|
2273 (= (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
|
2274 (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
|
2275 (= (char-before) ?>)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2276 ;; ??? 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
|
2277 (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
|
2278 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2279 ;; 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
|
2280 ;; (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
|
2281 ;; 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
|
2282 ;; column as the opening parenthesis. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2283 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2284 ;; 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
|
2285 ;; ((B |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2286 ;; 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
|
2287 ;; or else D) -- indenting this line. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2288 ;; ??? 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
|
2289 ;; ??? the beginning of the statement |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2290 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2291 (if (= (char-before) ?\)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2292 (backward-sexp)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2293 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2294 (if (memq (char-before) '(?, ?\; ?\( ?\))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2295 (list column 0) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2296 (list column 'ada-continuation-indent) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2297 ))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2298 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2299 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2300 ;; at end of buffer |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2301 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2302 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2303 ((not (char-after)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2304 (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
|
2305 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2306 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2307 ;; starting with e |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2308 ;;--------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2309 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2310 ((= (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
|
2311 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2312 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2313 ;; ------- end ------ |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2314 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2315 ((looking-at "end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2316 (let ((label 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2317 limit) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2318 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2319 (ada-goto-matching-start 1) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2320 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2321 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2322 ;; 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
|
2323 ;; 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
|
2324 ;; 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
|
2325 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2326 (if (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2327 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2328 (looking-at ".+\\<loop\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2329 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2330 (save-excursion |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2331 (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
|
2332 (if (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2333 (and |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2334 (setq match-cons |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2335 (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
|
2336 (not (looking-at "\\<loop\\>")))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2337 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2338 (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
|
2339 (save-excursion |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2340 (back-to-indentation) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2341 (if (looking-at ada-block-label-re) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2342 (setq label (- ada-label-indent)))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2343 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2344 ;; found 'record' => |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2345 ;; 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
|
2346 ;; 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
|
2347 ;; 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
|
2348 ;; 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
|
2349 ;; 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
|
2350 ;; 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
|
2351 (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
|
2352 (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
|
2353 (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
|
2354 (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
|
2355 (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
|
2356 (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
|
2357 (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
|
2358 0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2359 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2360 ;; 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
|
2361 (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
|
2362 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2363 ;; ------ exception ---- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2364 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2365 ((looking-at "exception\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2366 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2367 (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
|
2368 (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
|
2369 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2370 ;; else |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2371 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2372 ((looking-at "else\\>") |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
2373 (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
|
2374 (looking-at "\\<or\\>")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2375 (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
|
2376 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2377 (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
|
2378 (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
|
2379 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2380 ;; elsif |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2381 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2382 ((looking-at "elsif\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2383 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2384 (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
|
2385 (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
|
2386 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2387 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2388 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2389 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2390 ;; starting with w (when) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2391 ;;--------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2392 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2393 ((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
|
2394 (looking-at "when\\>")) |
10705 | 2395 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2396 (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
|
2397 (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
|
2398 'ada-when-indent))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2399 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2400 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2401 ;; starting with t (then) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2402 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2403 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2404 ((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
|
2405 (looking-at "then\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2406 (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
|
2407 (looking-at "and\\>")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2408 (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
|
2409 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2410 ;; 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
|
2411 (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
|
2412 "\\<\\(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
|
2413 (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
|
2414 'ada-stmt-end-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2415 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2416 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2417 ;; starting with l (loop) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2418 ;;--------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2419 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2420 ((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
|
2421 (looking-at "loop\\>")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2422 (setq pos (point)) |
10705 | 2423 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2424 (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
|
2425 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2426 (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
|
2427 (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
|
2428 (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
|
2429 (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
|
2430 nil pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2431 (if (looking-at "\\<loop\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2432 (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
|
2433 (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
|
2434 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2435 ;;---------------------------- |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2436 ;; 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
|
2437 ;;---------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2438 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2439 ((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
|
2440 (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
|
2441 (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
|
2442 (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
|
2443 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2444 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2445 (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
|
2446 "\\<\\(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
|
2447 (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
|
2448 (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
|
2449 '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
|
2450 (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
|
2451 '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
|
2452 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2453 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2454 ;; starting with b (begin) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2455 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2456 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2457 ((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
|
2458 (looking-at "begin\\>")) |
10705 | 2459 (save-excursion |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
2460 (if (ada-goto-decl-start t) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2461 (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
|
2462 (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
|
2463 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2464 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2465 ;; starting with i (is) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2466 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2467 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2468 ((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
|
2469 (looking-at "is\\>")) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2470 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2471 (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
|
2472 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2473 (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
|
2474 (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
|
2475 (point))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2476 (looking-at "\\<abstract\\>\\|\\<separate\\>"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2477 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2478 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2479 (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
|
2480 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2481 (ada-goto-stmt-start) |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2482 (if (looking-at "\\<overriding\\|package\\|procedure\\|function\\>") |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2483 (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
|
2484 (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
|
2485 |
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 ;; 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
|
2488 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2489 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2490 ((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
|
2491 (looking-at "re\\(turn\\|names\\)\\>")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2492 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2493 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2494 (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
|
2495 ;; 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
|
2496 (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
|
2497 (let (pos) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2498 (save-excursion |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2499 (setq pos (ada-search-ignore-string-comment ";\\|return\\>" t))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2500 (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
|
2501 (= (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
|
2502 (goto-char (car pos))) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2503 (setq var 'ada-indent-renames))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2504 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2505 (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
|
2506 (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
|
2507 (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
|
2508 (forward-word -1)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2509 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2510 ;; 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
|
2511 ;; 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
|
2512 (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
|
2513 (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
|
2514 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2515 (or (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2516 (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
|
2517 (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
|
2518 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2519 (backward-word 1) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
2520 (setq num-back 2) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2521 (looking-at "\\(function\\|procedure\\)\\>"))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2522 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2523 ;; 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
|
2524 (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
|
2525 (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
|
2526 (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
|
2527 var)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2528 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2529 ;; 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
|
2530 ;; 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
|
2531 ;; 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
|
2532 (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
|
2533 (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
|
2534 (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
|
2535 (list (progn (forward-word -1) (point)) var) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2536 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2537 ;; Else... |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2538 (ada-indent-on-previous-lines nil orgpoint orgpoint))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2539 |
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 ;; 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
|
2542 ;; 'or' as statement-start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2543 ;; 'private' as statement-start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2544 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2545 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2546 ((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
|
2547 (= (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
|
2548 (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
|
2549 (ada-looking-at-semi-private))) |
10705 | 2550 (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
|
2551 ;; ??? 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
|
2552 (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
|
2553 (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
|
2554 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2555 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2556 ;; starting with 'd' (do) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2557 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2558 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2559 ((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
|
2560 (looking-at "do\\>")) |
10705 | 2561 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2562 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2563 (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
|
2564 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2565 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2566 ;; starting with '-' (comment) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2567 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2568 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2569 ((= (char-after) ?-) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2570 (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
|
2571 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2572 ;; 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
|
2573 ;; 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
|
2574 ;; 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
|
2575 (let (pos) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2576 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2577 (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
|
2578 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2579 (forward-line -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2580 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2581 (while (and (not pos) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2582 (search-forward "--" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2583 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2584 (end-of-line) (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2585 t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2586 (unless (ada-in-string-p) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2587 (setq pos (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2588 pos)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2589 (list (- pos 2) 0) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2590 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2591 ;; 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
|
2592 (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
|
2593 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2594 ;; 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
|
2595 (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
|
2596 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2597 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2598 ;; starting with '#' (preprocessor line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2599 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2600 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2601 ((and (= (char-after) ?#) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2602 (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
|
2603 (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
|
2604 (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
|
2605 |
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 ;; 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
|
2608 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2609 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2610 ((and (not (eobp)) (= (char-after) ?\))) |
10705 | 2611 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2612 (forward-char 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2613 (backward-sexp 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2614 (list (point) 0))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2615 |
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 ;; new/abstract/separate |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2618 ;;--------------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2619 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2620 ((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
|
2621 (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
|
2622 |
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 ;; package/function/procedure |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2625 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2626 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2627 ((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
|
2628 (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
|
2629 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2630 ;; Go up until we find either a generic section, or the end of the |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2631 ;; previous subprogram/package, or 'overriding' for this function/procedure |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2632 (let (found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2633 (while (and (not found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2634 (ada-search-ignore-string-comment |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2635 "\\<\\(generic\\|end\\|begin\\|overriding\\|package\\|procedure\\|function\\)\\>" t)) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2636 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2637 ;; 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
|
2638 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2639 (forward-word -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2640 (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
|
2641 |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2642 (cond |
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2643 ((looking-at "\\<generic\\|overriding\\>") |
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2644 (list (progn (back-to-indentation) (point)) 0)) |
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2645 |
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2646 (t |
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
2647 (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
|
2648 |
30411
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 ;; label |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2651 ;;--------------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2652 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2653 ((looking-at ada-label-re) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2654 (if (ada-in-decl-p) |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2655 ;; ada-block-label-re matches variable declarations |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2656 (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
|
2657 (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
|
2658 '(ada-label-indent)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2659 |
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 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2662 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2663 ;; Other syntaxes |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2664 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2665 (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
|
2666 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2667 (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
|
2668 "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
|
2669 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
|
2670 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
|
2671 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
|
2672 (if initial-pos |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2673 (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
|
2674 (let ((oldpoint (point))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2675 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2676 ;; Is inside a parameter-list ? |
10705 | 2677 (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
|
2678 (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
|
2679 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2680 ;; Move to beginning of current statement. If already at a |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2681 ;; statement start, move to beginning of enclosing statement. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2682 (unless nomove |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2683 (ada-goto-stmt-start t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2684 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2685 ;; 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
|
2686 (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
|
2687 (not nomove)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2688 (ada-get-indent-nochange) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2689 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2690 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2691 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2692 ((and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2693 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
|
2694 (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
|
2695 (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
|
2696 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2697 ((looking-at "end\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2698 (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
|
2699 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2700 ((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
|
2701 (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
|
2702 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2703 ((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
|
2704 (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
|
2705 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2706 ((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
|
2707 (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
|
2708 ;; |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2709 ((looking-at ada-block-label-re) ; also variable declaration |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2710 (ada-get-indent-block-label orgpoint)) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2711 ;; |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2712 ((looking-at ada-goto-label-re) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2713 (ada-get-indent-goto-label orgpoint)) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2714 ;; |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2715 ((looking-at "\\(sub\\)?type\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2716 (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
|
2717 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2718 ;; "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
|
2719 ;; 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
|
2720 ;; 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
|
2721 ((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
|
2722 (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
|
2723 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2724 ((looking-at "case\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2725 (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
|
2726 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2727 ((looking-at "when\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2728 (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
|
2729 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2730 ((looking-at "separate\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2731 (ada-get-indent-nochange)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2732 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2733 ((looking-at "with\\>\\|use\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2734 ;; 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
|
2735 ;; the previous one ? |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2736 (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
|
2737 (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
|
2738 (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
|
2739 'ada-with-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2740 'ada-use-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2741 ;; |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2742 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2743 (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
|
2744 )) |
10705 | 2745 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2746 (defun ada-get-indent-open-paren () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2747 "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
|
2748 (list (ada-in-open-paren-p) 0)) |
10705 | 2749 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2750 (defun ada-get-indent-nochange () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2751 "Return the current indentation of the previous line." |
10705 | 2752 (save-excursion |
2753 (forward-line -1) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2754 (back-to-indentation) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2755 (list (point) 0))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2756 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2757 (defun ada-get-indent-paramlist () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2758 "Calculate the indentation when point is inside a parameter list." |
10705 | 2759 (save-excursion |
2760 (ada-search-ignore-string-comment "[^ \t\n]" t nil t) | |
2761 (cond | |
2762 ;; 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
|
2763 ((= (char-after) ?\() |
10705 | 2764 (goto-char (match-end 0)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2765 (list (point) 0)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2766 |
10705 | 2767 ;; in front of another parameter |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2768 ((= (char-after) ?\;) |
10705 | 2769 (goto-char (cdr (ada-search-ignore-string-comment "(\\|;" t nil t))) |
2770 (ada-goto-next-non-ws) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2771 (list (point) 0)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2772 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2773 ;; 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
|
2774 ;; declaration) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2775 ((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
|
2776 (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
|
2777 (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
|
2778 |
10705 | 2779 ;; inside a parameter declaration |
2780 (t | |
2781 (goto-char (cdr (ada-search-ignore-string-comment "(\\|;" t nil t))) | |
2782 (ada-goto-next-non-ws) | |
100891
e7407b3eef86
* progmodes/ada-mode.el (ada-mode): Simplify doc string.
Juanma Barranquero <lekktu@gmail.com>
parents:
98674
diff
changeset
|
2783 (list (point) 'ada-broken-indent))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2784 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2785 (defun ada-get-indent-end (orgpoint) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2786 "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
|
2787 ORGPOINT is the limit position used in the calculation." |
10705 | 2788 (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
|
2789 (indent nil)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2790 |
10705 | 2791 ;; is the line already terminated by ';' ? |
2792 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2793 (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
|
2794 'search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2795 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2796 ;; 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
|
2797 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2798 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2799 (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
|
2800 (cond |
98674
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
2801 ;; |
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
2802 ;; loop/select/if/case/return |
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
2803 ;; |
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
2804 ((looking-at "\\<\\(loop\\|select\\|if\\|case\\|return\\)\\>") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2805 (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
|
2806 (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
|
2807 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2808 ;; |
98674
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
2809 ;; record |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2810 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2811 ((looking-at "\\<record\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2812 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2813 (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
|
2814 ;; 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
|
2815 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2816 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2817 ;; 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
|
2818 (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
|
2819 (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
|
2820 (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
|
2821 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2822 ;; a named block end |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2823 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2824 ((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
|
2825 (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
|
2826 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2827 (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
|
2828 (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
|
2829 (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
|
2830 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2831 ;; 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
|
2832 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2833 ((= (char-after) ?\;) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2834 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2835 (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
|
2836 (if (looking-at "\\<begin\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2837 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2838 (setq indent (list (point) 0)) |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
2839 (if (ada-goto-decl-start t) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2840 (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
|
2841 indent)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2842 (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
|
2843 ))) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2844 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2845 ;; 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
|
2846 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2847 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2848 (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
|
2849 'ada-broken-indent)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2850 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2851 (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
|
2852 'ada-broken-indent)))) |
10705 | 2853 |
2854 (defun ada-get-indent-case (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2855 "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
|
2856 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
|
2857 (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
|
2858 (opos (point))) |
10705 | 2859 (cond |
2860 ;; | |
2861 ;; case..is..when..=> | |
2862 ;; | |
2863 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2864 (setq match-cons (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2865 ;; 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
|
2866 (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
|
2867 "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
|
2868 (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
|
2869 "[ \t\n]+=>" nil orgpoint)))) |
10705 | 2870 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2871 (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
|
2872 (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
|
2873 (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
|
2874 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))) |
10705 | 2875 ;; |
2876 ;; case..is..when | |
2877 ;; | |
2878 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2879 (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
|
2880 "when" nil orgpoint nil 'word-search-forward))) |
10705 | 2881 (goto-char (cdr match-cons)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2882 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
10705 | 2883 ;; |
2884 ;; case..is | |
2885 ;; | |
2886 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2887 (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
|
2888 "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
|
2889 (list (save-excursion (back-to-indentation) (point)) 'ada-when-indent)) |
10705 | 2890 ;; |
2891 ;; incomplete case | |
2892 ;; | |
2893 (t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2894 (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
|
2895 'ada-broken-indent))))) |
10705 | 2896 |
2897 (defun ada-get-indent-when (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2898 "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
|
2899 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
|
2900 (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
|
2901 (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
|
2902 (list cur-indent 'ada-indent) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2903 (list cur-indent 'ada-broken-indent)))) |
10705 | 2904 |
2905 (defun ada-get-indent-if (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2906 "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
|
2907 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
|
2908 (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
|
2909 (match-cons nil)) |
10705 | 2910 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2911 ;; Move to the correct then (ignore all "and then") |
10705 | 2912 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2913 (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
|
2914 "\\<\\(then\\|and[ \t]*then\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2915 nil orgpoint)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2916 (= (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
|
2917 ;; 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
|
2918 (if match-cons |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2919 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2920 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2921 ;; '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
|
2922 ;; => indent according to 'then', |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2923 ;; => 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
|
2924 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2925 (if (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2926 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2927 (looking-at "\\<then\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2928 (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
|
2929 ;; skip 'then' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2930 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2931 (list cur-indent 'ada-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2932 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2933 (list cur-indent 'ada-broken-indent)))) |
10705 | 2934 |
2935 (defun ada-get-indent-block-start (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2936 "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
|
2937 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
|
2938 (let ((pos nil)) |
10705 | 2939 (cond |
2940 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2941 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2942 (setq pos (ada-goto-next-non-ws orgpoint))) |
10705 | 2943 (goto-char pos) |
2944 (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2945 (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
|
2946 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2947 ;; 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
|
2948 ;; 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
|
2949 ;; 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
|
2950 ;; 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
|
2951 ((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
|
2952 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2953 ;; 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
|
2954 (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
|
2955 (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
|
2956 (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
|
2957 (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
|
2958 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2959 ;; 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
|
2960 (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
|
2961 (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
|
2962 'ada-indent))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2963 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2964 ;; Special case for label: |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2965 ((looking-at ada-block-label-re) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2966 (list (- (save-excursion (back-to-indentation) (point)) ada-label-indent) 'ada-indent)) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
2967 |
10705 | 2968 ;; nothing follows the block-start |
2969 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2970 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))))) |
10705 | 2971 |
2972 (defun ada-get-indent-subprog (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
2973 "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
|
2974 ORGPOINT is the limit position used in the calculation." |
10705 | 2975 (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
|
2976 (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
|
2977 (foundis nil)) |
10705 | 2978 ;; |
2979 ;; is there an 'is' in front of point ? | |
2980 ;; | |
2981 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2982 (setq match-cons |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2983 (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
|
2984 "\\<\\(is\\|do\\)\\>" nil orgpoint))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2985 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2986 ;; 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
|
2987 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2988 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2989 (setq foundis t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2990 (goto-char (cdr match-cons))) |
10705 | 2991 ;; |
2992 ;; no, then goto next non-ws, if there is one in front of point | |
2993 ;; | |
2994 (progn | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
2995 (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
|
2996 (goto-char orgpoint)))) |
10705 | 2997 |
2998 (cond | |
2999 ;; | |
3000 ;; nothing follows 'is' | |
3001 ;; | |
3002 ((and | |
3003 foundis | |
3004 (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3005 (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
|
3006 "[^ \t\n]" nil orgpoint t)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3007 (list cur-indent 'ada-indent)) |
10705 | 3008 ;; |
3009 ;; is abstract/separate/new ... | |
3010 ;; | |
3011 ((and | |
3012 foundis | |
3013 (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3014 (setq match-cons |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3015 (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
|
3016 "\\<\\(separate\\|new\\|abstract\\)\\>" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3017 nil orgpoint)))) |
10705 | 3018 (goto-char (car match-cons)) |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
3019 (ada-search-ignore-string-comment ada-subprog-start-re t) |
10705 | 3020 (ada-get-indent-noindent orgpoint)) |
3021 ;; | |
3022 ;; something follows 'is' | |
3023 ;; | |
3024 ((and | |
3025 foundis | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3026 (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
|
3027 (goto-char match-cons) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3028 (ada-indent-on-previous-lines t orgpoint))) |
10705 | 3029 ;; |
3030 ;; no 'is' but ';' | |
3031 ;; | |
3032 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3033 (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
|
3034 (list cur-indent 0)) |
10705 | 3035 ;; |
3036 ;; no 'is' or ';' | |
3037 ;; | |
3038 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3039 (list cur-indent 'ada-broken-indent))))) |
10705 | 3040 |
3041 (defun ada-get-indent-noindent (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3042 "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
|
3043 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
|
3044 (let ((label 0)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3045 (save-excursion |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3046 (beginning-of-line) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3047 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3048 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3049 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3050 ;; 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
|
3051 ;; 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
|
3052 ;; the parameter declaration list) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3053 ((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
|
3054 (ada-previous-procedure) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3055 (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
|
3056 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3057 ;; 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
|
3058 ;; 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
|
3059 ((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
|
3060 (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
|
3061 'ada-broken-decl-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3062 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3063 ;; This one is called in every other case when indenting a line at the |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3064 ;; top level |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3065 (t |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3066 (if (looking-at (concat "[ \t]*" ada-block-label-re)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3067 (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
|
3068 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3069 (let (p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3070 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3071 ;; "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
|
3072 (if (or (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3073 (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
|
3074 (setq p (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3075 (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
|
3076 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3077 (looking-at "with")))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3078 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3079 (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
|
3080 (setq p (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3081 (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
|
3082 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3083 (looking-at "null"))))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3084 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3085 (goto-char p) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3086 (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
|
3087 (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
|
3088 (if (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3089 (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
|
3090 'search-forward)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3091 (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
|
3092 (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
|
3093 'ada-broken-indent))))))) |
10705 | 3094 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3095 (defun ada-get-indent-block-label (orgpoint) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3096 "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
|
3097 ORGPOINT is the limit position used in the calculation." |
10705 | 3098 (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
|
3099 (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
|
3100 (ada-search-ignore-string-comment ":" nil) |
10705 | 3101 (cond |
3102 ;; loop label | |
3103 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3104 (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
|
3105 ada-loop-start-re nil orgpoint))) |
10705 | 3106 (goto-char (car match-cons)) |
3107 (ada-get-indent-loop orgpoint)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3108 |
10705 | 3109 ;; declare label |
3110 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3111 (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
|
3112 "\\<declare\\|begin\\>" nil orgpoint))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3113 (goto-char (car match-cons)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3114 (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
|
3115 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3116 ;; variable declaration |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3117 ((ada-in-decl-p) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3118 (if (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3119 (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
|
3120 (list cur-indent 0) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3121 (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
|
3122 |
10705 | 3123 ;; nothing follows colon |
3124 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3125 (list cur-indent '(- ada-label-indent)))))) |
10705 | 3126 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3127 (defun ada-get-indent-goto-label (orgpoint) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3128 "Calculate the indentation when at a goto label." |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3129 (search-forward ">>") |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3130 (ada-goto-next-non-ws) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3131 (if (>= (point) orgpoint) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3132 ;; labeled statement is the one we need to indent |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3133 (list (- (point) ada-label-indent)) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3134 ;; else indentation is indent for labeled statement |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3135 (ada-indent-on-previous-lines t orgpoint))) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3136 |
10705 | 3137 (defun ada-get-indent-loop (orgpoint) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3138 "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
|
3139 ORGPOINT is the limit position used in the calculation." |
10705 | 3140 (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
|
3141 (pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3142 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3143 ;; 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
|
3144 (label (save-excursion |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3145 (back-to-indentation) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3146 (if (looking-at ada-block-label-re) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3147 (- ada-label-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3148 0)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3149 |
10705 | 3150 (cond |
3151 | |
3152 ;; | |
3153 ;; statement complete | |
3154 ;; | |
3155 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3156 (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
|
3157 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3158 (list (+ (save-excursion (back-to-indentation) (point)) label) 0)) |
10705 | 3159 ;; |
3160 ;; simple loop | |
3161 ;; | |
3162 ((looking-at "loop\\>") | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3163 (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
|
3164 (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
|
3165 pos |
100891
e7407b3eef86
* progmodes/ada-mode.el (ada-mode): Simplify doc string.
Juanma Barranquero <lekktu@gmail.com>
parents:
98674
diff
changeset
|
3166 (list (+ (car pos) label) (cadr pos)))) |
10705 | 3167 |
3168 ;; | |
3169 ;; 'for'- loop (or also a for ... use statement) | |
3170 ;; | |
3171 ((looking-at "for\\>") | |
3172 (cond | |
3173 ;; | |
3174 ;; for ... use | |
3175 ;; | |
3176 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3177 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3178 (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
|
3179 (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
|
3180 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3181 (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
|
3182 (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
|
3183 (looking-at "\\<use\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3184 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3185 ;; 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
|
3186 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3187 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3188 (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
|
3189 "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
|
3190 t))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3191 (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
|
3192 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3193 (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
|
3194 (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
|
3195 (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
|
3196 ) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3197 |
10705 | 3198 ;; |
3199 ;; for..loop | |
3200 ;; | |
3201 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3202 (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
|
3203 "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
|
3204 (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
|
3205 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3206 ;; 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
|
3207 ;; otherwise to 'for' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3208 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3209 (unless (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3210 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3211 (looking-at "\\<loop\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3212 (goto-char pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3213 (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
|
3214 'ada-indent)) |
10705 | 3215 ;; |
3216 ;; for-statement is broken | |
3217 ;; | |
3218 (t | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3219 (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
|
3220 'ada-broken-indent)))) |
10705 | 3221 |
3222 ;; | |
3223 ;; 'while'-loop | |
3224 ;; | |
3225 ((looking-at "while\\>") | |
3226 ;; | |
3227 ;; while..loop ? | |
3228 ;; | |
3229 (if (save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3230 (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
|
3231 "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
|
3232 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3233 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3234 (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
|
3235 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3236 ;; 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
|
3237 ;; otherwise to 'while'. |
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 (unless (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3240 (back-to-indentation) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3241 (looking-at "\\<loop\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3242 (goto-char pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3243 (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
|
3244 'ada-indent)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3245 |
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-broken-indent)))))) |
10705 | 3248 |
3249 (defun ada-get-indent-type (orgpoint) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3250 "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
|
3251 ORGPOINT is the limit position used in the calculation." |
10705 | 3252 (let ((match-dat nil)) |
3253 (cond | |
3254 ;; | |
3255 ;; complete record declaration | |
3256 ;; | |
3257 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3258 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3259 (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
|
3260 "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
|
3261 (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
|
3262 (looking-at "\\<record\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3263 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3264 (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
|
3265 (= (char-after) ?\;))) |
10705 | 3266 (goto-char (car match-dat)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3267 (list (save-excursion (back-to-indentation) (point)) 0)) |
10705 | 3268 ;; |
3269 ;; record type | |
3270 ;; | |
3271 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3272 (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
|
3273 "record" nil orgpoint nil 'word-search-forward))) |
10705 | 3274 (goto-char (car match-dat)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3275 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)) |
10705 | 3276 ;; |
3277 ;; complete type declaration | |
3278 ;; | |
3279 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3280 (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
|
3281 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3282 (list (save-excursion (back-to-indentation) (point)) 0)) |
10705 | 3283 ;; |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
3284 ;; "type ... is", but not "type ... is ...", which is broken |
10705 | 3285 ;; |
3286 ((save-excursion | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3287 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3288 (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
|
3289 'word-search-forward) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3290 (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
|
3291 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
10705 | 3292 ;; |
3293 ;; broken statement | |
3294 ;; | |
3295 (t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3296 (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
|
3297 'ada-broken-indent))))) |
10705 | 3298 |
3299 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3300 ;; ----------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3301 ;; -- searching and matching |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3302 ;; ----------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3303 |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3304 (defun ada-goto-stmt-start (&optional ignore-goto-label) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3305 "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
|
3306 Return the new position of point. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3307 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
|
3308 open parenthesis." |
10705 | 3309 (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
|
3310 (orgpoint (point))) |
10705 | 3311 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3312 (setq match-dat (ada-search-prev-end-stmt)) |
10705 | 3313 (if match-dat |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3314 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3315 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3316 ;; 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
|
3317 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3318 (unless (looking-at "declare") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3319 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3320 (unless (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3321 (goto-char (cdr match-dat)) |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3322 (ada-goto-next-non-ws orgpoint ignore-goto-label)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3323 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3324 ;; 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
|
3325 ;; 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
|
3326 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3327 (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
|
3328 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3329 ;; 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
|
3330 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3331 (if match-dat |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3332 (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
|
3333 (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
|
3334 )) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3335 |
10705 | 3336 ;; |
3337 ;; no previous end-statement => we are at the beginning of the | |
3338 ;; accessible part of the buffer | |
3339 ;; | |
3340 (progn | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3341 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3342 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3343 ;; skip to the very first statement, if there is one |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3344 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3345 (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
|
3346 (goto-char orgpoint)))) |
10705 | 3347 (point))) |
3348 | |
3349 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3350 (defun ada-search-prev-end-stmt () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3351 "Move point to previous end statement. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3352 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
|
3353 is the end of the match." |
10705 | 3354 (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
|
3355 (found nil)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3356 |
10705 | 3357 ;; search until found or beginning-of-buffer |
3358 (while | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3359 (and |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3360 (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3361 (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
|
3362 ada-end-stmt-re t))) |
10705 | 3363 |
3364 (goto-char (car match-dat)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3365 (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
|
3366 (cond |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3367 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3368 ((and (looking-at |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3369 "\\<\\(record\\|loop\\|select\\|else\\|then\\)\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3370 (save-excursion |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3371 (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3372 (looking-at "\\<\\(end\\|or\\|and\\)\\>[ \t]*[^;]"))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3373 (forward-word -1)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3374 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3375 ((looking-at "is") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3376 (setq found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3377 (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
|
3378 (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3379 (not (looking-at "subtype"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3380 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3381 (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
|
3382 (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
|
3383 ;; 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
|
3384 (not (looking-at |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3385 (eval-when-compile |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3386 (concat "\\<" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3387 (regexp-opt |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3388 '("separate" "access" "array" |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3389 "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
|
3390 "\\>\\|(")))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3391 |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3392 ((looking-at "private") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3393 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3394 (backward-word 1) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3395 (setq found (not (looking-at "is"))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3396 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3397 (t |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3398 (setq found t)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3399 ))) |
10705 | 3400 |
3401 (if found | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3402 match-dat |
10705 | 3403 nil))) |
3404 | |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3405 (defun ada-goto-next-non-ws (&optional limit skip-goto-label) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3406 "Skip to next non-whitespace character. |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3407 Skips spaces, newlines and comments, and possibly goto labels. |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3408 Return `point' if moved, nil if not. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3409 Stop the search at LIMIT. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3410 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
|
3411 (unless limit |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3412 (setq limit (point-max))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3413 (while (and (<= (point) limit) |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3414 (or (progn (forward-comment 10000) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3415 (if (and (not (eobp)) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3416 (save-excursion (forward-char 1) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3417 (ada-in-string-p))) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3418 (progn (forward-sexp 1) t))) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3419 (and skip-goto-label |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3420 (looking-at ada-goto-label-re) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3421 (progn |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3422 (goto-char (match-end 0)) |
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3423 t))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3424 (if (< (point) limit) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3425 (point) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3426 nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3427 ) |
10705 | 3428 |
3429 | |
3430 (defun ada-goto-stmt-end (&optional limit) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3431 "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
|
3432 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
|
3433 Stop the search at LIMIT." |
10705 | 3434 (if (ada-search-ignore-string-comment ada-end-stmt-re nil limit) |
3435 (point) | |
3436 nil)) | |
3437 | |
3438 | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3439 (defun ada-goto-next-word (&optional backward) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3440 "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
|
3441 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
|
3442 Return the new position of point or nil if not found." |
10705 | 3443 (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
|
3444 (orgpoint (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3445 (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
|
3446 (modify-syntax-entry ?_ "w") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3447 (unless backward |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3448 (skip-syntax-forward "w")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3449 (if (setq match-cons |
106885
908cefda5ea2
* progmodes/ada-mode.el: Fix bug#1920, bug#5400.
Juanma Barranquero <lekktu@gmail.com>
parents:
106831
diff
changeset
|
3450 (ada-search-ignore-string-comment "\\w" backward nil t)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3451 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3452 ;; 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
|
3453 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3454 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3455 (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
|
3456 (skip-syntax-backward "w") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3457 (point)) |
10705 | 3458 ;; |
3459 ;; if not found, restore old position of point | |
3460 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3461 (goto-char orgpoint) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3462 'nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3463 (modify-syntax-entry ?_ old-syntax)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3464 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3465 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3466 |
10705 | 3467 (defun ada-check-matching-start (keyword) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3468 "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
|
3469 Moves point to the matching block start." |
10705 | 3470 (ada-goto-matching-start 0) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3471 (unless (looking-at (concat "\\<" keyword "\\>")) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3472 (error "Matching start is not '%s'" keyword))) |
10705 | 3473 |
3474 | |
3475 (defun ada-check-defun-name (defun-name) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3476 "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
|
3477 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
|
3478 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
|
3479 |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
3480 ;; named block without a `declare'; ada-goto-matching-start leaves |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
3481 ;; point at start of 'begin' for a block. |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3482 (if (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3483 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3484 (looking-at (concat "\\<" defun-name "\\> *:"))) |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3485 t ; name matches |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
3486 ;; else |
10705 | 3487 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3488 ;; 'accept' or 'package' ? |
10705 | 3489 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3490 (unless (looking-at ada-subprog-start-re) |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3491 (ada-goto-decl-start)) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3492 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3493 ;; '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
|
3494 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3495 (save-excursion |
10705 | 3496 ;; |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3497 ;; a named 'declare'-block ? => jump to the label |
10705 | 3498 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3499 (if (looking-at "\\<declare\\>") |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
3500 (progn |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
3501 (forward-comment -1) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
3502 (backward-word 1)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3503 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3504 ;; 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
|
3505 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3506 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3507 (forward-word 2) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3508 (backward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3509 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3510 ;; skip 'body' 'type' |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3511 ;; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3512 (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
|
3513 (forward-word 1)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3514 (forward-sexp 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3515 (backward-sexp 1))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3516 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3517 ;; 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
|
3518 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3519 (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
|
3520 (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
|
3521 (buffer-substring (point) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3522 (progn (forward-sexp 1) (point)))))))) |
10705 | 3523 |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3524 (defun ada-goto-decl-start (&optional noerror) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3525 "Move point to the declaration start of the current construct. |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3526 If NOERROR is non-nil, return nil if no match was found; |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3527 otherwise throw error." |
10705 | 3528 (let ((nest-count 1) |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3529 (regexp (eval-when-compile |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3530 (concat "\\<" |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3531 (regexp-opt |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3532 '("is" "separate" "end" "declare" "if" "new" "begin" "generic" "when") t) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3533 "\\>"))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3534 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3535 ;; 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
|
3536 ;; "begin" we encounter. |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3537 (first t) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3538 (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
|
3539 (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
|
3540 ) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3541 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3542 ;; 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
|
3543 ;; 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
|
3544 ;; when ... => |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3545 ;; begin ... |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3546 ;; exception ... ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3547 (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
|
3548 (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
|
3549 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3550 (if (or |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3551 (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
|
3552 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3553 (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
|
3554 "\\<\\(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
|
3555 (looking-at "generic"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3556 (setq count-generic t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3557 |
10705 | 3558 ;; search backward for interesting keywords |
3559 (while (and | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3560 (not (zerop nest-count)) |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3561 (ada-search-ignore-string-comment regexp t)) |
10705 | 3562 ;; |
3563 ;; calculate nest-depth | |
3564 ;; | |
3565 (cond | |
3566 ;; | |
3567 ((looking-at "end") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3568 (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
|
3569 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3570 ;; 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
|
3571 ;; 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
|
3572 ;; procedure P is |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3573 ;; procedure Q is |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3574 ;; begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3575 ;; end; |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3576 ;; 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
|
3577 ;; end |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3578 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3579 (if (looking-at "begin") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3580 (let ((loop-again t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3581 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3582 (while loop-again |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3583 ;; 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
|
3584 ;; (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
|
3585 ;; 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
|
3586 ;; required the begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3587 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3588 (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
|
3589 "\\<\\(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
|
3590 t) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3591 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3592 (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
|
3593 (ada-goto-matching-start 1 noerror t) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3594 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3595 (setq loop-again nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3596 (unless (looking-at "begin") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3597 (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
|
3598 )) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3599 ))) |
10705 | 3600 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3601 ((looking-at "generic") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3602 (if count-generic |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3603 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3604 (setq first nil) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3605 (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
|
3606 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3607 ((looking-at "if") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3608 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3609 (forward-word -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3610 (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
|
3611 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3612 (setq nest-count (1- nest-count)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3613 (setq first nil))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3614 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3615 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3616 ((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
|
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 (setq first t)) |
10705 | 3619 ;; |
3620 ((looking-at "is") | |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3621 ;; look for things to ignore |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3622 (if |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3623 (or |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3624 ;; generic formal parameter |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3625 (looking-at "is[ t]+<>") |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3626 |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3627 ;; A type definition, or a case statement. Note that the |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3628 ;; goto-matching-start above on 'end record' leaves us at |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3629 ;; 'record', not at 'type'. |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3630 ;; |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3631 ;; We get to a case statement here by calling |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3632 ;; 'ada-move-to-end' from inside a case statement; then |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3633 ;; we are not ignoring 'when'. |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3634 (save-excursion |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3635 ;; Skip type discriminants or case argument function call param list |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3636 (forward-comment -10000) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3637 (forward-char -1) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3638 (if (= (char-after) ?\)) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3639 (progn |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3640 (forward-char 1) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3641 (backward-sexp 1) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3642 (forward-comment -10000) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3643 )) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3644 ;; skip type or case argument name |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3645 (skip-chars-backward "a-zA-Z0-9_.'") |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3646 (ada-goto-previous-word) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3647 (and |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3648 ;; if it's a protected type, it's the decl start we |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3649 ;; are looking for; since we didn't see the 'end' |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3650 ;; above, we are inside it. |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3651 (looking-at "\\<\\(sub\\)?type\\|case\\>") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3652 (save-match-data |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3653 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3654 (not (looking-at "\\<protected\\>")))) |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3655 ) ; end of type definition p |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3656 |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3657 ;; null procedure declaration |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3658 (save-excursion (ada-goto-next-word) (looking-at "\\<null\\>")) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3659 );; end or |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3660 ;; skip this construct |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3661 nil |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3662 ;; this is the right "is" |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3663 (setq nest-count (1- nest-count)) |
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
3664 (setq first nil))) |
10705 | 3665 |
3666 ;; | |
3667 ((looking-at "new") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3668 (if (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3669 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3670 (looking-at "is")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3671 (goto-char (match-beginning 0)))) |
10705 | 3672 ;; |
3673 ((and first | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3674 (looking-at "begin")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3675 (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
|
3676 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3677 ((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
|
3678 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3679 (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
|
3680 (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
|
3681 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3682 (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
|
3683 (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
|
3684 )))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3685 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3686 ((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
|
3687 (setq first nil)) |
10705 | 3688 ;; |
3689 (t | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3690 (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
|
3691 (setq first nil))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3692 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3693 );; end of loop |
10705 | 3694 |
3695 ;; 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
|
3696 (if (and |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3697 (zerop nest-count) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3698 (if (looking-at "is") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3699 (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
|
3700 (looking-at "declare\\|generic"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3701 t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3702 (if noerror nil |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3703 (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
|
3704 )) |
10705 | 3705 |
3706 (defun ada-goto-matching-start (&optional nest-level noerror gotothen) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3707 "Move point to the beginning of a block-start. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3708 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
|
3709 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
|
3710 If GOTOTHEN is non-nil, point moves to the 'then' following 'if'." |
10705 | 3711 (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
|
3712 (found nil) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3713 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3714 (last-was-begin '()) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3715 ;; List all keywords encountered while traversing |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3716 ;; something like '("end" "end" "begin") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3717 ;; 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
|
3718 ;; 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
|
3719 ;; part |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3720 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3721 (pos nil)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3722 |
10705 | 3723 ;; search backward for interesting keywords |
3724 (while (and | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3725 (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3726 (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
|
3727 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3728 (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
|
3729 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3730 (forward-word -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3731 (looking-at "\\<null\\>"))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3732 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3733 ;; calculate nest-depth |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3734 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3735 ;; 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
|
3736 ((looking-at "end") |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3737 (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
|
3738 (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
|
3739 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3740 ;; 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
|
3741 ;; ends a block |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3742 ((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
|
3743 (setq pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3744 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3745 ;; 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
|
3746 (ada-goto-previous-word) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3747 (if (looking-at "\\<end\\>[ \t]*[^;]") |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3748 (progn |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3749 ;; it ends a block => increase nest depth |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3750 (setq nest-count (1+ nest-count) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3751 pos (point)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3752 (push nil last-was-begin)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3753 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3754 ;; it starts a block => decrease nest depth |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3755 (setq nest-count (1- nest-count)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3756 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3757 ;; Some nested "begin .. end" blocks with no "declare"? |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3758 ;; => remove those entries |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3759 (while (car last-was-begin) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3760 (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
|
3761 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3762 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3763 )) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3764 (goto-char pos) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3765 ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3766 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3767 ;; 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
|
3768 ((looking-at "package") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3769 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3770 ;; 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
|
3771 (let ((current (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3772 (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
|
3773 "\\<\\(is\\|renames\\|;\\)\\>" nil))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3774 (if pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3775 (goto-char (car pos)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3776 (error (concat |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3777 "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
|
3778 " line " |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3779 (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
|
3780 (unless (looking-at "renames") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3781 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3782 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3783 (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
|
3784 ;; 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
|
3785 ;; 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
|
3786 ;; 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
|
3787 ;; 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
|
3788 ;; for elaboration code (elaboration) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3789 (if (and (not (looking-at "\\<\\(new\\|separate\\|begin\\)\\>")) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3790 (not (car last-was-begin))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3791 (setq nest-count (1- nest-count)))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3792 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3793 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3794 ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3795 ;; 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
|
3796 ((looking-at "task") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3797 (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3798 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3799 (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
|
3800 (cond |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3801 ((looking-at "\\<body\\>")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3802 ((looking-at "\\<type\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3803 ;; 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
|
3804 (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
|
3805 (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
|
3806 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3807 ;; 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
|
3808 ;; "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
|
3809 (unless (looking-at ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3810 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3811 ;; Skip the parameters |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3812 (if (looking-at "(") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3813 (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
|
3814 (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
|
3815 "\\<\\(is\\|;\\)\\>" nil))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3816 (if tmp |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3817 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3818 (goto-char (car tmp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3819 (if (looking-at "is") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3820 (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
|
3821 (t |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3822 ;; 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
|
3823 ;; 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
|
3824 (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
|
3825 (looking-at "[ \t]*;")) |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3826 (setq nest-count (1- nest-count)))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3827 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3828 ) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3829 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3830 ((looking-at "declare") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3831 ;; 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
|
3832 ;; groups) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3833 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3834 (let ((count 1)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3835 (while (and (> count 0)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3836 (if (equal (car last-was-begin) t) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3837 (setq count (1+ count)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3838 (setq count (1- count))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3839 (setq last-was-begin (cdr last-was-begin)) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3840 ))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3841 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3842 ((looking-at "protected") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3843 ;; Ignore if this is just a declaration |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3844 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3845 (let ((pos (ada-search-ignore-string-comment |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3846 "\\(\\<is\\>\\|\\<renames\\>\\|;\\)" nil))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3847 (if pos |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3848 (goto-char (car pos))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3849 (if (looking-at "is") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3850 ;; remove entry for end |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3851 (setq last-was-begin (cdr last-was-begin))))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3852 (setq nest-count (1- nest-count))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3853 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3854 ((or (looking-at "procedure") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3855 (looking-at "function")) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3856 ;; Ignore if this is just a declaration |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3857 (save-excursion |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3858 (let ((pos (ada-search-ignore-string-comment |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3859 "\\(\\<is\\>\\|\\<renames\\>\\|)[ \t]*;\\)" nil))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3860 (if pos |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3861 (goto-char (car pos))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3862 (if (looking-at "is") |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3863 ;; remove entry for begin and end |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3864 (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
|
3865 ) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3866 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3867 ;; 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
|
3868 (t |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3869 (push (looking-at "begin") last-was-begin) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3870 (setq nest-count (1- nest-count))) |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3871 |
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
3872 ) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3873 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3874 ;; 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
|
3875 (setq found (zerop nest-count))))) ; end of loop |
10705 | 3876 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3877 (if (bobp) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3878 (point) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3879 (if found |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3880 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3881 ;; 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
|
3882 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3883 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3884 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3885 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3886 ;; 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
|
3887 ;; 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
|
3888 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3889 ((and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3890 gotothen |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3891 (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
|
3892 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3893 (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
|
3894 '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
|
3895 (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
|
3896 (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
|
3897 (goto-char (match-beginning 0))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3898 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3899 ;; |
98674
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
3900 ;; found 'do' => skip back to 'accept' or 'return' |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3901 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3902 ((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
|
3903 (unless (ada-search-ignore-string-comment |
98674
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
3904 "\\<accept\\|return\\>" t) |
bde81f3667cd
* progmodes/ada-mode.el (ada-get-indent-end, ada-goto-matching-start):
Juanma Barranquero <lekktu@gmail.com>
parents:
97078
diff
changeset
|
3905 (error "Missing 'accept' or 'return' 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
|
3906 (point)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3907 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3908 (if noerror |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3909 nil |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3910 (error "No matching start")))))) |
10705 | 3911 |
3912 | |
3913 (defun ada-goto-matching-end (&optional nest-level noerror) | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
3914 "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
|
3915 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
|
3916 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
|
3917 (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
|
3918 (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
|
3919 (concat "\\<" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3920 (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
|
3921 "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
|
3922 "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
|
3923 "\\>"))) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3924 found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3925 pos |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3926 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3927 ;; 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
|
3928 ;; 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
|
3929 ;; 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
|
3930 (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
|
3931 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3932 ;; 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
|
3933 ;; 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
|
3934 ;; "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
|
3935 ;; keyword |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3936 (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
|
3937 (forward-char 1)) |
10705 | 3938 |
3939 ;; | |
3940 ;; search forward for interesting keywords | |
3941 ;; | |
3942 (while (and | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3943 (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3944 (ada-search-ignore-string-comment regex nil)) |
10705 | 3945 |
3946 ;; | |
3947 ;; calculate nest-depth | |
3948 ;; | |
3949 (backward-word 1) | |
3950 (cond | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3951 ;; 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
|
3952 ;; 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
|
3953 ;; 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
|
3954 ;; A : Boolean; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3955 ;; 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
|
3956 ;; 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
|
3957 ;; null; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3958 ;; 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
|
3959 ;; begin |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3960 ;; 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
|
3961 ;; 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
|
3962 ;; handling. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3963 ;; 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
|
3964 ;; generic instantion. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3965 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3966 ((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
|
3967 (if first |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3968 (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
|
3969 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3970 (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
|
3971 (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
|
3972 (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
|
3973 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3974 (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
|
3975 (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
|
3976 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3977 (goto-char pos) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3978 (ada-goto-matching-end 0 t))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3979 |
10705 | 3980 ;; found block end => decrease nest depth |
3981 ((looking-at "\\<end\\>") | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3982 (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
|
3983 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
|
3984 ;; 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
|
3985 (if (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3986 (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
|
3987 (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
|
3988 (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
|
3989 (forward-word 1))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3990 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3991 ;; 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
|
3992 ;; in fact a generic instantiation for instance |
10705 | 3993 ((looking-at "\\<package\\>") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3994 (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
|
3995 'word-search-forward) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3996 (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
|
3997 ;; 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
|
3998 (if (looking-at "\\<new\\>") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
3999 (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
|
4000 (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
|
4001 found (<= nest-count 0)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4002 |
10705 | 4003 ;; all the other block starts |
4004 (t | |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4005 (if (not first) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4006 (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
|
4007 (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
|
4008 (forward-word 1))) ; end of 'cond' |
10705 | 4009 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4010 (setq first nil)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4011 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4012 (if found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4013 t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4014 (if noerror |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4015 nil |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4016 (error "No matching end"))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4017 )) |
10705 | 4018 |
4019 | |
4020 (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
|
4021 (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
|
4022 "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
|
4023 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
|
4024 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
|
4025 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
|
4026 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
|
4027 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
|
4028 in case we are searching for a constant string. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4029 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
|
4030 (let (found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4031 begin |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4032 end |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4033 parse-result) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4034 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4035 ;; 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
|
4036 (unless search-func |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4037 (setq search-func (if backward 're-search-backward 're-search-forward))) |
10705 | 4038 |
4039 ;; | |
4040 ;; 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
|
4041 ;; We have to test that we do not look further than limit |
10705 | 4042 ;; |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4043 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4044 (while (and (not found) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4045 (or (not limit) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4046 (or (and backward (<= limit (point))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4047 (>= limit (point)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4048 (funcall search-func search-re limit 1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4049 (setq begin (match-beginning 0)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4050 (setq end (match-end 0)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4051 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4052 (setq parse-result (parse-partial-sexp |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4053 (save-excursion (beginning-of-line) (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4054 (point))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4055 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4056 (cond |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4057 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4058 ;; If inside a string, skip it (and the following comments) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4059 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4060 ((ada-in-string-p parse-result) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4061 (if (featurep 'xemacs) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4062 (search-backward "\"" nil t) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4063 (goto-char (nth 8 parse-result))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4064 (unless backward (forward-sexp 1))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4065 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4066 ;; If inside a comment, skip it (and the following comments) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4067 ;; There is a special code for comments at the end of the file |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4068 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4069 ((ada-in-comment-p parse-result) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4070 (if (featurep 'xemacs) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4071 (progn |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4072 (forward-line 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4073 (beginning-of-line) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4074 (forward-comment -1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4075 (goto-char (nth 8 parse-result))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4076 (unless backward |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4077 ;; at the end of the file, it is not possible to skip a comment |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4078 ;; so we just go at the end of the line |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4079 (if (forward-comment 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4080 (progn |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4081 (forward-comment 1000) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4082 (beginning-of-line)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4083 (end-of-line)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4084 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4085 ;; directly in front of a comment => skip it, if searching forward |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4086 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4087 ((and (= (char-after begin) ?-) (= (char-after (1+ begin)) ?-)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4088 (unless backward (progn (forward-char -1) (forward-comment 1000)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4089 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4090 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4091 ;; found a parameter-list but should ignore it => skip it |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4092 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4093 ((and (not paramlists) (ada-in-paramlist-p)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4094 (if backward |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4095 (search-backward "(" nil t) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4096 (search-forward ")" nil t))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4097 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4098 ;; found what we were looking for |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4099 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4100 (t |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4101 (setq found t))))) ; end of loop |
10705 | 4102 |
4103 (if found | |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4104 (cons begin end) |
10705 | 4105 nil))) |
4106 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4107 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4108 ;; -- Testing the position of the cursor |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4109 ;; ------------------------------------------------------- |
10705 | 4110 |
4111 (defun ada-in-decl-p () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4112 "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
|
4113 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
|
4114 (or (ada-in-paramlist-p) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4115 (save-excursion |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
4116 (ada-goto-decl-start t)))) |
10705 | 4117 |
4118 | |
4119 (defun ada-looking-at-semi-or () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4120 "Return t if looking at an 'or' following a semicolon." |
10705 | 4121 (save-excursion |
4122 (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
|
4123 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4124 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4125 (ada-goto-stmt-start) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4126 (looking-at "\\<or\\>"))))) |
10705 | 4127 |
4128 | |
4129 (defun ada-looking-at-semi-private () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4130 "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
|
4131 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
|
4132 'private package A is...' (this can only happen at top level)." |
10705 | 4133 (save-excursion |
4134 (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
|
4135 (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
|
4136 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4137 ;; 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
|
4138 ;; 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
|
4139 ;; 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
|
4140 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4141 ;; 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
|
4142 ;; 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
|
4143 ;; 'private procedure ...' |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4144 (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
|
4145 (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
|
4146 (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
|
4147 (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
|
4148 (looking-at "\\<package\\>")))))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4149 |
10705 | 4150 |
4151 (defun ada-in-paramlist-p () | |
106958
7e2ebba4063d
Tweak docstring and comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
106957
diff
changeset
|
4152 "Return t if point is inside the parameter-list of a declaration, but not a subprogram call or aggregate." |
10705 | 4153 (save-excursion |
4154 (and | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4155 (ada-search-ignore-string-comment "(\\|)" t nil t) |
10705 | 4156 ;; inside parentheses ? |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4157 (= (char-after) ?\() |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4158 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4159 ;; 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
|
4160 ;; operator definition: function "." ( |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4161 ;; subprogram definition: procedure .... ( |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4162 ;; 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
|
4163 (progn |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4164 (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
|
4165 (if (= (char-before) ?\") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4166 (backward-char 3) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4167 (backward-word 1)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4168 t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4169 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4170 ;; 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
|
4171 (backward-word 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4172 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4173 ;; 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
|
4174 ;; comment (for instance, when we have: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4175 ;; -- .... package |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4176 ;; Test (A) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4177 ;; we should return nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4178 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4179 (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
|
4180 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4181 ;; right keyword two words before parenthesis ? |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4182 ;; Type is in this list because of discriminants |
106957 | 4183 ;; pragma is not, because the syntax is that of a subprogram call. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4184 (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
|
4185 (concat "\\<\\(" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4186 "procedure\\|function\\|body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4187 "task\\|entry\\|accept\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4188 "access[ \t]+procedure\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4189 "access[ \t]+function\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4190 "type\\)\\>")))))) |
10705 | 4191 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4192 (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
|
4193 "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
|
4194 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
|
4195 (let (result) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4196 (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
|
4197 (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
|
4198 (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
|
4199 result)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4200 |
10705 | 4201 (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
|
4202 "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
|
4203 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
|
4204 parenthesis, or nil." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4205 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4206 (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
|
4207 (point) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4208 (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
|
4209 "\\<\\(;\\|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
|
4210 t)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4211 (point-min))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4212 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4213 (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
|
4214 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4215 (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
|
4216 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4217 ;; 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
|
4218 ;; See: |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4219 ;; 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
|
4220 ;; Value_1); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4221 ;; 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
|
4222 ;; Value_2); |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4223 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4224 (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
|
4225 (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
|
4226 (skip-chars-forward " \t")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4227 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4228 (point)))))) |
10705 | 4229 |
4230 | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4231 ;; ----------------------------------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4232 ;; -- Behavior Of TAB Key |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4233 ;; ----------------------------------------------------------- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4234 |
10705 | 4235 (defun ada-tab () |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4236 "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
|
4237 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
|
4238 of the region. Otherwise, operate only on the current line." |
10705 | 4239 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4240 (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
|
4241 ((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
|
4242 (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
|
4243 (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
|
4244 (ada-indent-current))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4245 ((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
|
4246 )) |
10705 | 4247 |
4248 (defun ada-untab (arg) | |
4249 "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
|
4250 ;; FIXME: ARG is ignored |
10705 | 4251 (interactive "P") |
4252 (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
|
4253 ((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
|
4254 ((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
|
4255 )) |
10705 | 4256 |
4257 (defun ada-indent-current-function () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4258 "Ada mode version of the `indent-line-function'." |
10705 | 4259 (interactive "*") |
4260 (let ((starting-point (point-marker))) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4261 (beginning-of-line) |
10705 | 4262 (ada-tab) |
4263 (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
|
4264 (goto-char starting-point)) |
10705 | 4265 (set-marker starting-point nil) |
4266 )) | |
4267 | |
4268 (defun ada-tab-hard () | |
4269 "Indent current line to next tab stop." | |
4270 (interactive) | |
4271 (save-excursion | |
4272 (beginning-of-line) | |
4273 (insert-char ? ada-indent)) | |
4274 (if (save-excursion (= (point) (progn (beginning-of-line) (point)))) | |
4275 (forward-char ada-indent))) | |
4276 | |
4277 (defun ada-untab-hard () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4278 "Indent current line to previous tab stop." |
10705 | 4279 (interactive) |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4280 (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
|
4281 (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
|
4282 (indent-rigidly bol eol (- 0 ada-indent)))) |
10705 | 4283 |
4284 | |
4285 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4286 ;; ------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4287 ;; -- Miscellaneous |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4288 ;; ------------------------------------------------------------ |
10705 | 4289 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4290 ;; 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
|
4291 ;; compatibility |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4292 (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
|
4293 "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
|
4294 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4295 (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
|
4296 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4297 (save-restriction |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4298 (widen) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4299 (goto-char (point-min)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4300 (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
|
4301 (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
|
4302 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4303 (defun ada-gnat-style () |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4304 "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
|
4305 (interactive) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4306 (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
|
4307 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4308 ;; 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
|
4309 ;; simply ignored. |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4310 (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
|
4311 (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
|
4312 (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
|
4313 (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
|
4314 (beginning-of-line)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4315 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4316 (goto-char (point-min)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4317 (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
|
4318 (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
|
4319 (replace-match " ("))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4320 (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
|
4321 (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
|
4322 (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
|
4323 (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
|
4324 (replace-match "; --"))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4325 (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
|
4326 (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
|
4327 (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
|
4328 (replace-match "("))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4329 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4330 (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
|
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 "))"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4333 (goto-char (point-min)) |
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 "\\>:" 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 " :"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4337 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4338 ;; 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
|
4339 ;; 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
|
4340 ;; 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
|
4341 (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
|
4342 (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
|
4343 (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
|
4344 (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
|
4345 (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
|
4346 (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
|
4347 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4348 ;; 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
|
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 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4351 "[ \t]*\\(/=\\|\\*\\*\\|:=\\|\\.\\.\\|[-:+*/]\\)[ \t]*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4352 nil t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4353 (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
|
4354 (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
|
4355 (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
|
4356 (progn |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4357 (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
|
4358 (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
|
4359 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4360 ((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
|
4361 (replace-match " /= ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4362 ((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
|
4363 (replace-match " .. ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4364 ((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
|
4365 (replace-match " ** ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4366 ((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
|
4367 (replace-match " := ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4368 (t |
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 " \\1 "))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4370 (forward-char 1))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4371 )) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4372 |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4373 |
10705 | 4374 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4375 ;; ------------------------------------------------------------- |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4376 ;; -- Moving To Procedures/Packages/Statements |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4377 ;; ------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4378 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4379 (defun ada-move-to-start () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4380 "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
|
4381 (interactive) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4382 (let ((pos (point))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4383 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4384 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4385 (save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4386 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4387 ;; do nothing if in string or comment or not on 'end ...;' |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4388 ;; or if an error occurs during processing |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4389 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4390 (or |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4391 (ada-in-string-or-comment-p) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4392 (and (progn |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4393 (or (looking-at "[ \t]*\\<end\\>") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4394 (backward-word 1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4395 (or (looking-at "[ \t]*\\<end\\>") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4396 (backward-word 1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4397 (or (looking-at "[ \t]*\\<end\\>") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4398 (error "Not on end ...;"))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4399 (ada-goto-matching-start 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4400 (setq pos (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4401 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4402 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4403 ;; on 'begin' => go on, according to user option |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4404 ;; |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4405 ada-move-to-declaration |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4406 (looking-at "\\<begin\\>") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4407 (ada-goto-decl-start) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4408 (setq pos (point)))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4409 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4410 ) ; end of save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4411 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4412 ;; now really move to the found position |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4413 (goto-char pos)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4414 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4415 (defun ada-move-to-end () |
106903
257da94c161b
* ada-mode.el: Really fix bug#5400 (comment in r99362 was erroneous).
Juanma Barranquero <lekktu@gmail.com>
parents:
106885
diff
changeset
|
4416 "Move point to the 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
|
4417 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
|
4418 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4419 (let ((pos (point)) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4420 decl-start) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4421 (with-syntax-table ada-mode-symbol-syntax-table |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4422 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4423 (save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4424 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4425 (cond |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4426 ;; Go to the beginning of the current word, and check if we are |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4427 ;; directly on 'begin' |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4428 ((save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4429 (skip-syntax-backward "w") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4430 (looking-at "\\<begin\\>")) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4431 (ada-goto-matching-end 1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4432 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4433 ;; on first line of subprogram body |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4434 ;; Do nothing for specs or generic instantion, since these are |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4435 ;; handled as the general case (find the enclosing block) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4436 ;; We also need to make sure that we ignore nested subprograms |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4437 ((save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4438 (and (skip-syntax-backward "w") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4439 (looking-at "\\<function\\>\\|\\<procedure\\>" ) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4440 (ada-search-ignore-string-comment "is\\|;") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4441 (not (= (char-before) ?\;)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4442 )) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4443 (skip-syntax-backward "w") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4444 (ada-goto-matching-end 0 t)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4445 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4446 ;; on first line of task declaration |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4447 ((save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4448 (and (ada-goto-stmt-start) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4449 (looking-at "\\<task\\>" ) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4450 (forward-word 1) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4451 (ada-goto-next-non-ws) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4452 (looking-at "\\<body\\>"))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4453 (ada-search-ignore-string-comment "begin" nil nil nil |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4454 'word-search-forward)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4455 ;; accept block start |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4456 ((save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4457 (and (ada-goto-stmt-start) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4458 (looking-at "\\<accept\\>" ))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4459 (ada-goto-matching-end 0)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4460 ;; package start |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4461 ((save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4462 (setq decl-start (and (ada-goto-decl-start t) (point))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4463 (and decl-start (looking-at "\\<package\\>"))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4464 (ada-goto-matching-end 1)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4465 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4466 ;; On a "declare" keyword |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4467 ((save-excursion |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4468 (skip-syntax-backward "w") |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4469 (looking-at "\\<declare\\>")) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4470 (ada-goto-matching-end 0 t)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4471 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4472 ;; inside a 'begin' ... 'end' block |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4473 (decl-start |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4474 (goto-char decl-start) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4475 (ada-goto-matching-end 0 t)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4476 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4477 ;; (hopefully ;-) everything else |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4478 (t |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4479 (ada-goto-matching-end 1))) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4480 (setq pos (point)) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4481 ) |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4482 |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4483 ;; now really move to the position found |
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4484 (goto-char pos)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4485 |
10705 | 4486 (defun ada-next-procedure () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4487 "Move point to next procedure." |
10705 | 4488 (interactive) |
4489 (end-of-line) | |
4490 (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
|
4491 (goto-char (match-beginning 4)) |
10705 | 4492 (error "No more functions/procedures/tasks"))) |
4493 | |
4494 (defun ada-previous-procedure () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4495 "Move point to previous procedure." |
10705 | 4496 (interactive) |
4497 (beginning-of-line) | |
4498 (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
|
4499 (goto-char (match-beginning 4)) |
10705 | 4500 (error "No more functions/procedures/tasks"))) |
4501 | |
4502 (defun ada-next-package () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4503 "Move point to next package." |
10705 | 4504 (interactive) |
4505 (end-of-line) | |
4506 (if (re-search-forward ada-package-start-regexp nil t) | |
4507 (goto-char (match-beginning 1)) | |
4508 (error "No more packages"))) | |
4509 | |
4510 (defun ada-previous-package () | |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4511 "Move point to previous package." |
10705 | 4512 (interactive) |
4513 (beginning-of-line) | |
4514 (if (re-search-backward ada-package-start-regexp nil t) | |
4515 (goto-char (match-beginning 1)) | |
4516 (error "No more packages"))) | |
4517 | |
4518 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4519 ;; ------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4520 ;; -- Define keymap and menus for Ada |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4521 ;; ------------------------------------------------------------- |
10705 | 4522 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4523 (defun ada-create-keymap () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4524 "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
|
4525 |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4526 ;; 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
|
4527 (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
|
4528 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4529 ;; Indentation and Formatting |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4530 (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
|
4531 (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
|
4532 (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
|
4533 (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
|
4534 (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
|
4535 (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
|
4536 (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
|
4537 ;; 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
|
4538 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4539 ;; Movement |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4540 (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
|
4541 (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
|
4542 (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
|
4543 (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
|
4544 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4545 ;; Compilation |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4546 (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
|
4547 (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
|
4548 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4549 ;; Casing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4550 (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
|
4551 (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
|
4552 (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
|
4553 (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
|
4554 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4555 ;; 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
|
4556 ;; 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
|
4557 ;; account |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4558 (define-key ada-mode-map |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4559 (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
|
4560 'backward-delete-char-untabify) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4561 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4562 ;; Make body |
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-n" 'ada-make-subprogram-body) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4564 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4565 ;; 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
|
4566 (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
|
4567 (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
|
4568 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4569 ;; 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
|
4570 ;; 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
|
4571 ;; 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
|
4572 |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4573 (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
|
4574 'ada-point-and-xref) |
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
4575 (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
|
4576 |
95268
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4577 (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
|
4578 (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
|
4579 (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
|
4580 (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
|
4581 (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
|
4582 (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
|
4583 (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
|
4584 (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
|
4585 (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
|
4586 (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
|
4587 (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
|
4588 (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
|
4589 (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
|
4590 (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
|
4591 (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
|
4592 |
bcc553c768f9
* textmodes/reftex-vars.el (reftex-extra-bindings-prefix): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94673
diff
changeset
|
4593 (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
|
4594 |
106831
7fd22a65b1a9
* progmodes/ada-mode.el: Override `narrow-to-defun' with `ada-narrow-to-defun'.
Juanma Barranquero <lekktu@gmail.com>
parents:
106830
diff
changeset
|
4595 (define-key ada-mode-map "\C-xnd" 'ada-narrow-to-defun); override narrow-to-defun |
7fd22a65b1a9
* progmodes/ada-mode.el: Override `narrow-to-defun' with `ada-narrow-to-defun'.
Juanma Barranquero <lekktu@gmail.com>
parents:
106830
diff
changeset
|
4596 |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4597 ;; 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
|
4598 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4599 (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
|
4600 (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
|
4601 (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
|
4602 (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
|
4603 (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
|
4604 (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
|
4605 (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
|
4606 (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
|
4607 (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
|
4608 (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
|
4609 (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
|
4610 (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
|
4611 (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
|
4612 (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
|
4613 (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
|
4614 (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
|
4615 (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
|
4616 (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
|
4617 (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
|
4618 (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
|
4619 (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
|
4620 (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
|
4621 (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
|
4622 (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
|
4623 (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
|
4624 (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
|
4625 (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
|
4626 (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
|
4627 (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
|
4628 (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
|
4629 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4630 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4631 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4632 (defun ada-create-menu () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4633 "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
|
4634 (let ((m '("Ada" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4635 ("Help" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4636 ["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
|
4637 ["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
|
4638 (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
|
4639 ["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
|
4640 (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
|
4641 ["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
|
4642 (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
|
4643 ["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
|
4644 (eq ada-which-compiler 'gnat)] |
73932
242a56e8b2c0
Replace conditional (require 'ispell) with defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
73922
diff
changeset
|
4645 ["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
|
4646 ("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
|
4647 ["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
|
4648 :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
|
4649 ["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
|
4650 (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
|
4651 :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
|
4652 ["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
|
4653 (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
|
4654 :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
|
4655 :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
|
4656 ["Confirm Commands" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4657 (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
|
4658 :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
|
4659 :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
|
4660 ["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
|
4661 (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
|
4662 :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
|
4663 :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
|
4664 ["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
|
4665 (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
|
4666 :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
|
4667 :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
|
4668 ["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
|
4669 :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
|
4670 ["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
|
4671 ["Compile file" ada-compile-current t] |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
4672 ["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
|
4673 ["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
|
4674 ["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
|
4675 ["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
|
4676 ["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
|
4677 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4678 ("Project" |
74002
5909c257c4ea
(ada-mode-version): Bump version.
Juanma Barranquero <lekktu@gmail.com>
parents:
73935
diff
changeset
|
4679 ["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
|
4680 ["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
|
4681 ["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
|
4682 ["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
|
4683 ("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
|
4684 ["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
|
4685 (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
|
4686 ["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
|
4687 (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
|
4688 ["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
|
4689 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
|
4690 (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
|
4691 ["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
|
4692 (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
|
4693 ["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
|
4694 (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
|
4695 ["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
|
4696 (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
|
4697 ["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
|
4698 (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
|
4699 ["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
|
4700 (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
|
4701 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4702 ["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
|
4703 ["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
|
4704 ["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
|
4705 ["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
|
4706 ["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
|
4707 ["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
|
4708 ["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
|
4709 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4710 ["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
|
4711 ["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
|
4712 ("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
|
4713 ["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
|
4714 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4715 ["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
|
4716 ["-----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4717 ["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
|
4718 ["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
|
4719 ["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
|
4720 ["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
|
4721 (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
|
4722 ["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
|
4723 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4724 ["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
|
4725 ["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
|
4726 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4727 ["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
|
4728 ["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
|
4729 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
|
4730 ["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
|
4731 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
|
4732 ["---" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4733 ["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
|
4734 ["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
|
4735 ["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
|
4736 ["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
|
4737 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
|
4738 ["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
|
4739 ["----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4740 ["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
|
4741 ["-----" nil nil] |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4742 ["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
|
4743 ("Templates" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4744 :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
|
4745 ["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
|
4746 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4747 ["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
|
4748 ["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
|
4749 ["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
|
4750 ["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
|
4751 ["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
|
4752 ["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
|
4753 ["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
|
4754 ["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
|
4755 ["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
|
4756 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4757 ["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
|
4758 ["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
|
4759 ["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
|
4760 ["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
|
4761 ["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
|
4762 ["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
|
4763 ["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
|
4764 ["---" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4765 ["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
|
4766 ["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
|
4767 ["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
|
4768 ["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
|
4769 ["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
|
4770 ["----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4771 ["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
|
4772 ["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
|
4773 ["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
|
4774 ["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
|
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 ["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
|
4777 ["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
|
4778 ["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
|
4779 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4780 ["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
|
4781 ["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
|
4782 ["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
|
4783 ))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4784 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4785 (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
|
4786 (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
|
4787 (progn |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4788 (define-key ada-mode-map [menu-bar] ada-mode-menu) |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
4789 (setq mode-popup-menu (cons "Ada mode" ada-mode-menu)))))) |
10705 | 4790 |
4791 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4792 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4793 ;; Commenting/Uncommenting code |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4794 ;; 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
|
4795 ;; 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
|
4796 ;; 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
|
4797 ;; 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
|
4798 ;; |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4799 ;; 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
|
4800 ;; function for justifying the comments. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4801 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4802 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4803 (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
|
4804 (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
|
4805 ;; \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
|
4806 (derived-mode-p 'ada-mode)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4807 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4808 (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
|
4809 (goto-char beg) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4810 (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
|
4811 (replace-match comment-start)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4812 )))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4813 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4814 (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
|
4815 "Uncomment region BEG .. END. |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4816 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
|
4817 (interactive "r\nP") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4818 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4819 ;; 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
|
4820 ;; 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
|
4821 (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
|
4822 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4823 (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
|
4824 (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
|
4825 (ad-deactivate 'comment-region)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4826 (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
|
4827 (ada-indent-region beg end))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4828 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4829 (defun ada-fill-comment-paragraph-justify () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4830 "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
|
4831 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4832 (ada-fill-comment-paragraph 'full)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4833 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4834 (defun ada-fill-comment-paragraph-postfix () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4835 "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
|
4836 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
|
4837 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4838 (ada-fill-comment-paragraph 'full t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4839 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4840 (defun ada-fill-comment-paragraph (&optional justify postfix) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4841 "Fill the current comment paragraph. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4842 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
|
4843 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
|
4844 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
|
4845 The paragraph is indented on the first line." |
10705 | 4846 (interactive "P") |
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 ;; 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
|
4849 (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
|
4850 (not (looking-at "[ \t]*--"))) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4851 (error "Not inside comment")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4852 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4853 (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
|
4854 (opos (point-marker)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4855 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4856 ;; 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
|
4857 ;; 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
|
4858 (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
|
4859 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4860 fill-prefix |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4861 (fill-column (current-fill-column))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4862 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4863 ;; Find end of paragraph |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4864 (back-to-indentation) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4865 (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
|
4866 (forward-line 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4867 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4868 ;; 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
|
4869 ;; 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
|
4870 (if (eobp) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4871 (insert "\n") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4872 (back-to-indentation))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4873 (beginning-of-line) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4874 (setq to (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4875 (goto-char opos) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4876 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4877 ;; 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
|
4878 (back-to-indentation) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4879 (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
|
4880 (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
|
4881 (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
|
4882 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4883 ;; 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
|
4884 ;; 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
|
4885 (unless (bobp) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4886 (forward-line 1)) |
41036
aaa6f44a1b96
(ada-fill-comment-prefix): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
41012
diff
changeset
|
4887 (beginning-of-line) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4888 (setq from (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4889 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4890 ;; 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
|
4891 (back-to-indentation) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4892 (setq indent (current-column)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4893 ;; 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
|
4894 (delete-region from (point)) |
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 ;; Remove the old postfixes |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4897 (goto-char from) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4898 (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
|
4899 (replace-match "\n")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4900 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4901 (goto-char (1- to)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4902 (setq to (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4903 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4904 ;; Indent and justify the paragraph |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4905 (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
|
4906 (set-left-margin from to indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4907 (if postfix |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4908 (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
|
4909 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4910 (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
|
4911 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4912 ;; Add the postfixes if required |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4913 (if postfix |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4914 (save-restriction |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4915 (goto-char from) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4916 (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
|
4917 (while (not (eobp)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4918 (end-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4919 (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
|
4920 (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
|
4921 (forward-line)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4922 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4923 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4924 ;; 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
|
4925 ;; 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
|
4926 (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
|
4927 (<= emacs-major-version 19) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4928 (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
|
4929 (<= emacs-minor-version 2))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4930 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4931 (goto-char to) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4932 (end-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
4933 (delete-char 1))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4934 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4935 (goto-char opos))) |
10705 | 4936 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4937 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4938 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4939 ;; support for find-file.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4940 ;; 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
|
4941 ;; 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
|
4942 ;; file (body or spec). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4943 ;; 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
|
4944 ;; cursor at the correct position. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4945 ;; 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
|
4946 ;; 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
|
4947 ;; 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
|
4948 ;; GNAT. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4949 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4950 |
79854
d979323205c7
Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents:
79717
diff
changeset
|
4951 ;; Overridden when we work with GNAT, to use gnatkrunch |
10705 | 4952 (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
|
4953 "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
|
4954 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
|
4955 pre-defined units." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4956 (while (string-match "\\." adaname) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4957 (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
|
4958 (downcase adaname) |
10705 | 4959 ) |
4960 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4961 (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
|
4962 "Return the name of the other file. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
4963 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
|
4964 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
|
4965 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4966 (let ((is-spec nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4967 (is-body nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4968 (suffixes ada-spec-suffixes) |
73434
3586ad4a01a1
(ada-in-string-p): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73422
diff
changeset
|
4969 (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
|
4970 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4971 ;; 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
|
4972 ;; 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
|
4973 ;; file-name-extension |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4974 (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
|
4975 suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4976 (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
|
4977 (setq is-spec t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4978 name (match-string 1 name))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4979 (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
|
4980 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4981 (if (not is-spec) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4982 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4983 (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
|
4984 (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
|
4985 suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4986 (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
|
4987 (setq is-body t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4988 name (match-string 1 name))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4989 (setq suffixes (cdr suffixes))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4990 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4991 ;; 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
|
4992 (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
|
4993 name |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4994 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4995 ;; 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
|
4996 (if is-spec |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4997 (setq suffixes ada-body-suffixes) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4998 (setq suffixes ada-spec-suffixes)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4999 (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
|
5000 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5001 (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
|
5002 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5003 ;; 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
|
5004 ;; the possible src directories. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5005 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
5006 (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
|
5007 (let ((other |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5008 (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
|
5009 (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
|
5010 (if other |
110270
c7809974cd64
Misc cleanups and simplifications.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
108765
diff
changeset
|
5011 (setq is-spec other))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5012 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5013 ;; 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
|
5014 (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
|
5015 (setq is-spec (concat name (car suffixes))))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5016 (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
|
5017 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5018 is-spec))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5019 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5020 (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
|
5021 "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
|
5022 Used in `ff-pre-load-hook'." |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5023 (setq ff-function-name nil) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5024 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5025 (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
|
5026 (or (if (re-search-backward ada-procedure-start-regexp nil t) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5027 (setq ff-function-name (match-string 5))) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5028 (if (re-search-backward ada-package-start-regexp nil t) |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5029 (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
|
5030 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5031 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5032 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5033 (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
|
5034 "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
|
5035 (defvar ada-last-which-function-subprog 0 |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5036 "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
|
5037 (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
|
5038 (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
|
5039 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5040 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5041 (defun ada-which-function () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5042 "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
|
5043 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
|
5044 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
|
5045 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
|
5046 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5047 (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
|
5048 (pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5049 end-pos |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5050 func-name indent |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5051 found) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5052 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5053 ;; 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
|
5054 (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
|
5055 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
|
5056 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5057 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5058 ;; 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
|
5059 (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
|
5060 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5061 ;; 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
|
5062 (skip-chars-forward " \t\n(") |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5063 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5064 (condition-case nil |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5065 (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
|
5066 (error nil)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5067 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5068 (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
|
5069 (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
|
5070 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5071 (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
|
5072 (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
|
5073 (skip-chars-forward "a-zA-Z0-9_'"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5074 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5075 ;; 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
|
5076 ;; 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
|
5077 (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
|
5078 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5079 ;; 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
|
5080 ;; 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
|
5081 ;; 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
|
5082 ;; 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
|
5083 |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5084 (while (and (not found) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5085 (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
|
5086 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5087 ;; 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
|
5088 ;; the face in the modeline on Emacs 21 |
106830
4ff0e607507d
* progmodes/ada-mode.el: Deal with Ada 2005 "overriding" keyword.
Juanma Barranquero <lekktu@gmail.com>
parents:
106829
diff
changeset
|
5089 (setq func-name (match-string-no-properties 3)) |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5090 (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
|
5091 (not (save-excursion |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5092 (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
|
5093 (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
|
5094 (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
|
5095 (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
|
5096 (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
|
5097 (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
|
5098 (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
|
5099 (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
|
5100 (setq end-pos (point)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5101 (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
|
5102 (if (>= end-pos pos) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5103 (setq found func-name)))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5104 ) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5105 (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
|
5106 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
|
5107 found)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5108 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5109 (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
|
5110 "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
|
5111 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5112 (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
|
5113 (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
|
5114 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5115 (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
|
5116 "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
|
5117 (if ff-function-name |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5118 (progn |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5119 (goto-char (point-min)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5120 (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
|
5121 (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
|
5122 (goto-char (point-min)))))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5123 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5124 (defun ada-get-body-name (&optional spec-name) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5125 "Return the file name for the body of SPEC-NAME. |
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5126 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
|
5127 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
|
5128 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5129 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5130 (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
|
5131 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5132 ;; 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
|
5133 ;; 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
|
5134 ;; 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
|
5135 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5136 (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
|
5137 end) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5138 (while suffixes |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5139 (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
|
5140 (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
|
5141 (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
|
5142 (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
|
5143 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5144 ;; 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
|
5145 (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
|
5146 (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
|
5147 (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
|
5148 (file-name-nondirectory |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5149 (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
|
5150 ada-body-suffixes) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5151 ;; 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
|
5152 (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
|
5153 (file-name-nondirectory |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5154 (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
|
5155 ".adb"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5156 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5157 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5158 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5159 ;; 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
|
5160 ;; 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
|
5161 ;; 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
|
5162 ;; 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
|
5163 ;; 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
|
5164 ;; 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
|
5165 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5166 ;; 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
|
5167 ;; 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
|
5168 ;; ---------------------------------------------------- |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5169 |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5170 (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
|
5171 ;; 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
|
5172 ;; 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
|
5173 ;; be highlighted as a string, but it seems this fear is unfounded. |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5174 ;; |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5175 ;; This sets the properties of the characters, so that ada-in-string-p |
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5176 ;; correctly handles '"' too... |
80134
b0f27575dc50
(ada-font-lock-syntactic-keywords):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
79854
diff
changeset
|
5177 '(("[^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
|
5178 ("^[ \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
|
5179 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5180 (defvar ada-font-lock-keywords |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5181 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5182 (list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5183 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5184 ;; 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
|
5185 (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
|
5186 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5187 ;; preprocessor line |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5188 (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
|
5189 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5190 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5191 ;; 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
|
5192 ;; pragma, procedure, task (body) plus name. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5193 (list (concat |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5194 "\\<\\(" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5195 "accept\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5196 "entry\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5197 "function\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5198 "package[ \t]+body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5199 "package\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5200 "pragma\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5201 "procedure\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5202 "protected[ \t]+body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5203 "protected[ \t]+type\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5204 "protected\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5205 "task[ \t]+body\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5206 "task[ \t]+type\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5207 "task" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5208 "\\)\\>[ \t]*" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5209 "\\(\\sw+\\(\\.\\sw*\\)*\\)?") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5210 '(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
|
5211 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5212 ;; 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
|
5213 (list (concat ; ":[ \t]*" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5214 "\\<\\(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
|
5215 "[ \t]*" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5216 "\\(\\sw+\\(\\.\\sw*\\)*\\)?") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5217 '(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
|
5218 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5219 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5220 ;; 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
|
5221 (concat "\\<" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5222 (regexp-opt |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5223 '("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
|
5224 "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
|
5225 "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
|
5226 "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
|
5227 "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
|
5228 "range" "record" "rem" "renames" "requeue" "return" "reverse" |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5229 "select" "separate" "synchronized" "tagged" "task" "terminate" |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5230 "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
|
5231 "\\>") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5232 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5233 ;; 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
|
5234 '("\\<\\(end\\)\\>\\([ \t]+\\)?\\(\\(\\sw\\|[_.]\\)+\\)?" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5235 (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
|
5236 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5237 ;; 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
|
5238 (list (concat "\\<\\(" |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5239 "new\\|of\\|subtype\\|type" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5240 "\\)\\>[ \t]*\\(\\sw+\\(\\.\\sw*\\)*\\)?[ \t]*\\((\\)?") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5241 '(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
|
5242 '(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
|
5243 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
|
5244 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
|
5245 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5246 ;; 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
|
5247 ;; 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
|
5248 ;; 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
|
5249 (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
|
5250 "[ \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
|
5251 '(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
|
5252 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5253 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5254 ;; Goto tags. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5255 '("<<\\(\\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
|
5256 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5257 ;; 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
|
5258 (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
|
5259 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5260 ;; 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
|
5261 (list "\\W\\([-+]?[0-9._]+\\)\\>" '(1 font-lock-constant-face)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5262 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5263 )) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5264 "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
|
5265 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5266 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5267 ;; --------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5268 ;; Support for outline.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5269 ;; --------------------------------------------------------- |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5270 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5271 (defun ada-outline-level () |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5272 "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
|
5273 ;; 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
|
5274 (let (buffer-invisibility-spec) |
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5275 (save-excursion |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5276 (back-to-indentation) |
24446
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5277 (current-column)))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5278 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5279 ;; --------------------------------------------------------- |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5280 ;; 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
|
5281 ;; --------------------------------------------------------- |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5282 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5283 (defun ada-narrow-to-defun (&optional arg) |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5284 "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
|
5285 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
|
5286 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
|
5287 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
|
5288 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5289 (interactive) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5290 (save-excursion |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5291 (let (end) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5292 (widen) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5293 (forward-line 1) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5294 (ada-previous-procedure) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5295 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5296 (save-excursion |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5297 (beginning-of-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5298 (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
|
5299 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5300 (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
|
5301 (end-of-line) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5302 (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
|
5303 (message |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5304 "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
|
5305 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5306 ;; --------------------------------------------------------- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5307 ;; 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
|
5308 ;; 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
|
5309 ;; or package body from its spec. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5310 ;; 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
|
5311 ;; lot of improvement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5312 ;; 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
|
5313 ;; body. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5314 ;; ---------------------------------------------------------- |
10705 | 5315 |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5316 (defun ada-gen-treat-proc (match) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5317 "Make dummy body of a procedure/function specification. |
63528
d6d50a511d12
(ada-format-paramlist)
Juanma Barranquero <lekktu@gmail.com>
parents:
63425
diff
changeset
|
5318 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
|
5319 for `ada-procedure-start-regexp'." |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5320 (goto-char (car match)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5321 (let (func-found procname functype) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5322 (cond |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5323 ((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
|
5324 (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
|
5325 ;; treat it as a proc/func |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5326 (forward-word 2) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5327 (forward-word -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5328 (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
|
5329 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5330 ;; goto end of procname |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5331 (goto-char (cdr match)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5332 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5333 ;; skip over parameterlist |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5334 (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
|
5335 (forward-sexp)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5336 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5337 ;; 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
|
5338 (if func-found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5339 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5340 (forward-word 1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5341 (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
|
5342 (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
|
5343 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5344 (skip-chars-forward |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5345 "a-zA-Z0-9_\.") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5346 (point)))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5347 ;; look for next non WS |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5348 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5349 ((looking-at "[ \t]*;") |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5350 (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
|
5351 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5352 (insert "is") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5353 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5354 (if func-found |
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 (insert "Result : " functype ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5357 (ada-indent-newline-indent))) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5358 (insert "begin") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5359 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5360 (if func-found |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5361 (insert "return Result;") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5362 (insert "null;")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5363 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5364 (insert "end " procname ";") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5365 (ada-indent-newline-indent) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5366 ) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5367 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5368 ((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
|
5369 ;; do nothing |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5370 ) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5371 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5372 ((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
|
5373 ;; do nothing |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5374 ) |
97058
b6ac850e9d2b
Fix bug #272, and update Ada mode to version 4.0.
Juanma Barranquero <lekktu@gmail.com>
parents:
95268
diff
changeset
|
5375 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5376 (t |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5377 (message "unknown syntax")))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5378 (t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5379 (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
|
5380 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5381 (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
|
5382 (forward-word 2) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5383 (if (looking-at "[ \t]*;") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5384 (forward-line) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5385 (ada-move-to-end)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5386 )))))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5387 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5388 (defun ada-make-body () |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5389 "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
|
5390 The spec must be the previously visited buffer. |
74073
ef8cf7255613
(ada-make-body): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
74002
diff
changeset
|
5391 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
|
5392 (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
|
5393 (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
|
5394 (goto-char (point-min)) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5395 (ada-mode) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5396 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5397 (let (found ada-procedure-or-package-start-regexp) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5398 (if (setq found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5399 (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
|
5400 (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
|
5401 (insert " body") |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5402 ) |
10705 | 5403 (error "No package")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5404 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5405 (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
|
5406 (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
|
5407 "\\|" |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5408 ada-package-start-regexp)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5409 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5410 (while (setq found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5411 (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
|
5412 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
|
5413 (progn |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5414 (goto-char (car found)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5415 (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
|
5416 (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
|
5417 (insert " body")) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5418 (ada-gen-treat-proc found)))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5419 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5420 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5421 (defun ada-make-subprogram-body () |
73922
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5422 "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
|
5423 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5424 (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
|
5425 (spec (match-beginning 0)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5426 body-file) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5427 (if found |
73531
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5428 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5429 (goto-char spec) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5430 (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
|
5431 (= (char-before) ?\()) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5432 (progn |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5433 (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
|
5434 (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
|
5435 (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
|
5436 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5437 ;; 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
|
5438 (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
|
5439 (if body-file |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5440 (find-file body-file) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5441 (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
|
5442 |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5443 (save-restriction |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5444 (widen) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5445 (goto-char (point-max)) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5446 (forward-comment -10000) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5447 (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
|
5448 ;; 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
|
5449 (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
|
5450 (newline) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5451 (forward-char -1) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5452 (insert spec) |
7e876e4226ed
Change maintainer, apply whitespace-clean, checkdoc. Minor improvements to many
Juanma Barranquero <lekktu@gmail.com>
parents:
73434
diff
changeset
|
5453 (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
|
5454 (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
|
5455 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5456 (error "Not in subprogram spec")))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5457 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5458 ;; -------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5459 ;; Global initializations |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5460 ;; -------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5461 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5462 ;; 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
|
5463 ;; 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
|
5464 ;; every time |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5465 (ada-create-keymap) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5466 (ada-create-menu) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5467 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5468 ;; 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
|
5469 (ada-create-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5470 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5471 ;; 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
|
5472 (ada-add-extensions ".ads" ".adb") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5473 ;; 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
|
5474 (if (equal ada-which-compiler 'gnat) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5475 (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
|
5476 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5477 ;; Read the special cases for exceptions |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5478 (ada-case-read-exceptions) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5479 |
71537
2a4ed80e93ba
(ada-which-compiler, ada-mode-menu, ada-compile-mouse-goto-error,
Juanma Barranquero <lekktu@gmail.com>
parents:
68764
diff
changeset
|
5480 ;; 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
|
5481 (autoload 'ada-change-prj "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5482 (autoload 'ada-check-current "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5483 (autoload 'ada-compile-application "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5484 (autoload 'ada-compile-current "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5485 (autoload 'ada-complete-identifier "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5486 (autoload 'ada-find-file "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5487 (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
|
5488 (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
|
5489 (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
|
5490 (autoload 'ada-find-references "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5491 (autoload 'ada-gdb-application "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5492 (autoload 'ada-goto-declaration "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5493 (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
|
5494 (autoload 'ada-goto-parent "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5495 (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
|
5496 (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
|
5497 (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
|
5498 (autoload 'ada-run-application "ada-xref" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5499 (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
|
5500 (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
|
5501 (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
|
5502 (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
|
5503 |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5504 (autoload 'ada-customize "ada-prj" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5505 (autoload 'ada-prj-edit "ada-prj" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5506 (autoload 'ada-prj-new "ada-prj" nil t) |
289cedd46cd8
Delete `eval-and-compile' around `require'.
Juanma Barranquero <lekktu@gmail.com>
parents:
73531
diff
changeset
|
5507 (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
|
5508 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5509 (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
|
5510 (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
|
5511 (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
|
5512 (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
|
5513 (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
|
5514 (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
|
5515 (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
|
5516 (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
|
5517 (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
|
5518 (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
|
5519 (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
|
5520 (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
|
5521 (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
|
5522 (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
|
5523 (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
|
5524 (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
|
5525 (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
|
5526 (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
|
5527 (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
|
5528 (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
|
5529 (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
|
5530 (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
|
5531 (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
|
5532 (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
|
5533 (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
|
5534 (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
|
5535 (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
|
5536 (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
|
5537 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5538 ;;; provide ourselves |
10705 | 5539 (provide 'ada-mode) |
5540 | |
78600
4f60c94dc647
Fix up comment style in header.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78589
diff
changeset
|
5541 ;; arch-tag: 1b7d45ec-1698-43b5-8d4a-e479ea023270 |
10707 | 5542 ;;; ada-mode.el ends here |