Mercurial > emacs
annotate lisp/progmodes/ada-mode.el @ 89733:d001bbbe12ce
(enum coding_attr_index): New member coding_attr_trans_tbl.
(CODING_ATTR_TRANS_TBL): New macro.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sun, 25 Jan 2004 07:31:27 +0000 |
parents | 375f2633d815 |
children | 68c22ea6027c |
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 |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3 ;; Copyright (C) 1994, 95, 97, 98, 99, 2000, 2001, 2002, 2003 |
38401 | 4 ;; 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> |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
9 ;; Maintainer: Emmanuel Briot <briot@gnat.com> |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
10 ;; Ada Core Technologies's version: Revision: 1.188 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
11 ;; Keywords: languages ada |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
12 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
13 ;; 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
|
14 |
38401 | 15 ;; GNU Emacs is free software; you can redistribute it and/or modify |
10705 | 16 ;; it under the terms of the GNU General Public License as published by |
17 ;; the Free Software Foundation; either version 2, or (at your option) | |
18 ;; any later version. | |
19 | |
38401 | 20 ;; GNU Emacs is distributed in the hope that it will be useful, |
10705 | 21 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 ;; GNU General Public License for more details. | |
24 | |
25 ;; You should have received a copy of the GNU General Public License | |
38401 | 26 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
27 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
28 ;; Boston, MA 02111-1307, USA. | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
29 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
30 ;;; Commentary: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
31 ;;; This mode is a major mode for editing Ada83 and Ada95 source code. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
32 ;;; This is a major rewrite of the file packaged with Emacs-20. The |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
33 ;;; ada-mode is composed of four lisp files, ada-mode.el, ada-xref.el, |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
34 ;;; ada-prj.el and ada-stmt.el. Only this file (ada-mode.el) is |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
35 ;;; completely independent from the GNU Ada compiler Gnat, distributed |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
36 ;;; by Ada Core Technologies. All the other files rely heavily on |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
37 ;;; features provided only by Gnat. |
10705 | 38 ;;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
39 ;;; Note: this mode will not work with Emacs 19. If you are on a VMS |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
40 ;;; system, where the latest version of Emacs is 19.28, you will need |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
41 ;;; another file, called ada-vms.el, that provides some required |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
42 ;;; functions. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
43 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
44 ;;; Usage: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
45 ;;; Emacs should enter Ada mode automatically when you load an Ada file. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
46 ;;; By default, the valid extensions for Ada files are .ads, .adb or .ada |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
47 ;;; If the ada-mode does not start automatically, then simply type the |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
48 ;;; following command : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
49 ;;; M-x ada-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
50 ;;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
51 ;;; By default, ada-mode is configured to take full advantage of the GNAT |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
52 ;;; compiler (the menus will include the cross-referencing features,...). |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
53 ;;; If you are using another compiler, you might want to set the following |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
54 ;;; variable in your .emacs (Note: do not set this in the ada-mode-hook, it |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
55 ;;; won't work) : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
56 ;;; (setq ada-which-compiler 'generic) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
57 ;;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
58 ;;; This mode requires find-file.el to be present on your system. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
59 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
60 ;;; History: |
11199 | 61 ;;; The first Ada mode for GNU Emacs was written by V. Broman in |
62 ;;; 1985. He based his work on the already existing Modula-2 mode. | |
63 ;;; This was distributed as ada.el in versions of Emacs prior to 19.29. | |
10705 | 64 ;;; |
65 ;;; Lynn Slater wrote an extensive Ada mode in 1989. It consisted of | |
66 ;;; several files with support for dired commands and other nice | |
67 ;;; things. It is currently available from the PAL | |
68 ;;; (wuarchive.wustl.edu:/languages/ada) as ada-mode-1.06a.tar.Z. | |
69 ;;; | |
70 ;;; The probably very first Ada mode (called electric-ada.el) was | |
71 ;;; written by Steven D. Litvintchouk and Steven M. Rosen for the | |
72 ;;; Gosling Emacs. L. Slater based his development on ada.el and | |
73 ;;; electric-ada.el. | |
74 ;;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
75 ;;; A complete rewrite by M. Heritsch and R. Ebert has been done. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
76 ;;; Some ideas from the Ada mode mailing list have been |
10705 | 77 ;;; added. Some of the functionality of L. Slater's mode has not |
78 ;;; (yet) been recoded in this new mode. Perhaps you prefer sticking | |
79 ;;; to his version. | |
80 ;;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
81 ;;; A complete rewrite for Emacs-20 / Gnat-3.11 has been done by Ada Core |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
82 ;;; Technologies. Please send bugs to briot@gnat.com |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
83 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
84 ;;; Credits: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
85 ;;; Many thanks to John McCabe <john@assen.demon.co.uk> for sending so |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
86 ;;; many patches included in this package. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
87 ;;; Christian Egli <Christian.Egli@hcsd.hac.com>: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
88 ;;; ada-imenu-generic-expression |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
89 ;;; Many thanks also to the following persons that have contributed one day |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
90 ;;; to the ada-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
91 ;;; Philippe Waroquiers (PW) <philippe@cfmu.eurocontrol.be> in particular, |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
92 ;;; woodruff@stc.llnl.gov (John Woodruff) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
93 ;;; jj@ddci.dk (Jesper Joergensen) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
94 ;;; gse@ocsystems.com (Scott Evans) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
95 ;;; comar@gnat.com (Cyrille Comar) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
96 ;;; stephen.leake@gsfc.nasa.gov (Stephen Leake) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
97 ;;; robin-reply@reagans.org |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
98 ;;; 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
|
99 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
100 ;;; Code: |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
101 ;;; Note: Every function in this package is compiler-independent. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
102 ;;; The names start with ada- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
103 ;;; The variables that the user can edit can all be modified through |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
104 ;;; the customize mode. They are sorted in alphabetical order in this |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
105 ;;; file. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
106 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
107 ;;; Supported packages. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
108 ;;; This package supports a number of other Emacs modes. These other modes |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
109 ;;; should be loaded before the ada-mode, which will then setup some variables |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
110 ;;; to improve the support for Ada code. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
111 ;;; Here is the list of these modes: |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
112 ;;; `which-function-mode': Display the name of the subprogram the cursor is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
113 ;;; in in the mode line. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
114 ;;; `outline-mode': Provides the capability to collapse or expand the code |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
115 ;;; for specific language constructs, for instance if you want to hide the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
116 ;;; code corresponding to a subprogram |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
117 ;;; `align': This mode is now provided with Emacs 21, but can also be |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
118 ;;; installed manually for older versions of Emacs. It provides the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
119 ;;; capability to automatically realign the selected region (for instance |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
120 ;;; all ':=', ':' and '--' will be aligned on top of each other. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
121 ;;; `imenu': Provides a menu with the list of entities defined in the current |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
122 ;;; buffer, and an easy way to jump to any of them |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
123 ;;; `speedbar': Provides a separate file browser, and the capability for each |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
124 ;;; file to see the list of entities defined in it and to jump to them |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
125 ;;; easily |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
126 ;;; `abbrev-mode': Provides the capability to define abbreviations, which |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
127 ;;; are automatically expanded when you type them. See the Emacs manual. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
128 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
129 (eval-when-compile |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
130 (require 'ispell nil t) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
131 (require 'find-file nil t) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
132 (require 'align nil t) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
133 (require 'which-func nil t) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
134 (require 'compile nil t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
135 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
136 ;; this function is needed at compile time |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
137 (eval-and-compile |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
138 (defun ada-check-emacs-version (major minor &optional is-xemacs) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
139 "Returns t if Emacs's version is greater or equal to MAJOR.MINOR. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
140 If IS-XEMACS is non-nil, check for XEmacs instead of Emacs." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
141 (let ((xemacs-running (or (string-match "Lucid" emacs-version) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
142 (string-match "XEmacs" emacs-version)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
143 (and (or (and is-xemacs xemacs-running) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
144 (not (or is-xemacs xemacs-running))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
145 (or (> emacs-major-version major) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
146 (and (= emacs-major-version major) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
147 (>= emacs-minor-version minor))))))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
148 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
149 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
150 ;; This call should not be made in the release that is done for the |
44933 | 151 ;; official Emacs, since it does nothing useful for the latest version |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
152 ;;(if (not (ada-check-emacs-version 21 1)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
153 ;; (require 'ada-support)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
154 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
155 (defvar ada-mode-hook nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
156 "*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
|
157 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
|
158 fully loaded. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
159 This is a good place to add Ada environment specific bindings.") |
18120 | 160 |
161 (defgroup ada nil | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
162 "Major mode for editing Ada source in Emacs." |
18120 | 163 :group 'languages) |
164 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
165 (defcustom ada-auto-case t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
166 "*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
|
167 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
|
168 and `ada-case-attribute'." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
169 :type 'boolean :group 'ada) |
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 (defcustom ada-broken-decl-indent 0 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
172 "*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
|
173 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
174 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
175 declare |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
176 A, |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
177 >>>>>B : Integer; -- from ada-broken-decl-indent" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
178 :type 'integer :group 'ada) |
18120 | 179 |
180 (defcustom ada-broken-indent 2 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
181 "*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
|
182 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
183 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
184 My_Var : My_Type := (Field1 => |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
185 >>>>>>>>>Value); -- from ada-broken-indent" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
186 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
187 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
188 (defcustom ada-continuation-indent ada-broken-indent |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
189 "*Number of columns to indent the continuation of broken lines in |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
190 parenthesis. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
191 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
192 An example is : |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
193 Func (Param1, |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
194 >>>>>Param2);" |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
195 :type 'integer :group 'ada) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
196 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
197 (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
|
198 "*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
|
199 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
|
200 `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
|
201 :type '(choice (const downcase-word) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
202 (const upcase-word) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
203 (const ada-capitalize-word) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
204 (const ada-loose-case-word) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
205 (const ada-no-auto-case)) |
18120 | 206 :group 'ada) |
10705 | 207 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
208 (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
|
209 (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
|
210 "*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
|
211 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
|
212 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
|
213 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
214 These files should contain one word per line, that gives the casing |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
215 to be used for that word in Ada files. If the line starts with the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
216 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
|
217 start at the beginning of a word or after a _ character, and end either |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
218 at the end of the word or at a _ character. Each line can be terminated by |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
219 a comment." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
220 :type '(repeat (file)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
221 :group 'ada) |
18120 | 222 |
223 (defcustom ada-case-keyword 'downcase-word | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
224 "*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
|
225 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
|
226 `ada-capitalize-word'." |
18120 | 227 :type '(choice (const downcase-word) |
228 (const upcase-word) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
229 (const ada-capitalize-word) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
230 (const ada-loose-case-word) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
231 (const ada-no-auto-case)) |
18120 | 232 :group 'ada) |
233 | |
234 (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
|
235 "*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
|
236 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
|
237 `ada-capitalize-word'." |
18120 | 238 :type '(choice (const downcase-word) |
239 (const upcase-word) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
240 (const ada-capitalize-word) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
241 (const ada-loose-case-word) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
242 (const ada-no-auto-case)) |
18120 | 243 :group 'ada) |
244 | |
245 (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
|
246 "*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
|
247 :type 'boolean :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 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
250 "*Size of Ada indentation. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
251 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
252 An example is : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
253 procedure Foo is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
254 begin |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
255 >>>>>>>>>>null; -- from ada-indent" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
256 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
257 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
258 (defcustom ada-indent-after-return t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
259 "*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
|
260 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
261 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
262 (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
|
263 "*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
|
264 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
|
265 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
|
266 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
267 For instance: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
268 A := 1; -- A multi-line comment |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
269 -- aligned if ada-indent-align-comments is t" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
270 :type 'boolean :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
271 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
272 (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
|
273 "*Non-nil means indent comment lines as code. |
42206 | 274 nil 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
|
275 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
276 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
277 (defcustom ada-indent-handle-comment-special nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
278 "*Non-nil if comment lines should be handled specially inside |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
279 parenthesis. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
280 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
|
281 text following it, then the following lines will be indented in the |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
282 same column as this text. This will not be true if the first line is |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
283 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
|
284 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
285 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
|
286 ( 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
|
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 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
289 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
|
290 ( -- `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
|
291 Value_1, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
292 Value_2); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
293 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
294 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
|
295 ( -- `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
|
296 Value_1, |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
297 Value_2);" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
298 :type 'boolean :group 'ada) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
299 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
300 (defcustom ada-indent-is-separate t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
301 "*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
|
302 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
303 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
304 (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
|
305 "*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
|
306 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
307 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
308 type A is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
309 >>>>>>>>>>>record -- from ada-indent-record-rel-type" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
310 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
311 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
312 (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
|
313 "*Indentation for renames relative to the matching function statement. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
314 If ada-indent-return is null or negative, the indentation is done relative to |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
315 the open parenthesis (if there is no parenthesis, ada-broken-indent is used). |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
316 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
317 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
318 function A (B : Integer) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
319 return C; -- from ada-indent-return |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
320 >>>renames Foo; -- from ada-indent-renames" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
321 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
322 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
323 (defcustom ada-indent-return 0 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
324 "*Indentation for 'return' relative to the matching 'function' statement. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
325 If ada-indent-return is null or negative, the indentation is done relative to |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
326 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
|
327 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
328 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
329 function A (B : Integer) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
330 >>>>>return C; -- from ada-indent-return" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
331 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
332 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
333 (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
|
334 "*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
|
335 :type 'boolean :group 'ada) |
18120 | 336 |
41012
39ee7e7e2200
(ada-fill-comment-prefix): GNAT wants 2 spaces.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38446
diff
changeset
|
337 (defcustom ada-fill-comment-prefix "-- " |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
338 "*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
|
339 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
|
340 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
|
341 :type 'string :group 'ada) |
18120 | 342 |
343 (defcustom ada-fill-comment-postfix " --" | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
344 "*Text inserted at the end of each line when filling a comment paragraph. |
18120 | 345 with `ada-fill-comment-paragraph-postfix'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
346 :type 'string :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
347 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
348 (defcustom ada-label-indent -4 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
349 "*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
|
350 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
351 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
352 procedure Foo is |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
353 begin |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
354 >>>>>>>>>>>>Label: -- from ada-label-indent |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
355 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
356 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
|
357 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
358 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
359 (defcustom ada-language-version 'ada95 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
360 "*Do we program in `ada83' or `ada95'?" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
361 :type '(choice (const ada83) (const ada95)) :group 'ada) |
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-move-to-declaration nil |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
364 "*Non-nil means `ada-move-to-start' moves point to the subprogram declaration, |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
365 not to 'begin'." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
366 :type 'boolean :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
367 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
368 (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
|
369 "*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
|
370 If nil, no contextual menu is available." |
35959 | 371 :type '(restricted-sexp :match-alternatives (stringp vectorp)) |
35263 | 372 :group 'ada) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
373 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
374 (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
|
375 (append '(".") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
376 (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
|
377 '("/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
|
378 "/opt/gnu/adainclude")) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
379 "*List of directories to search for Ada files. |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
380 See the description for the `ff-search-directories' variable. This variable |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
381 is the initial value of this variable, and is copied and modified in |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
382 `ada-search-directories-internal'." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
383 :type '(repeat (choice :tag "Directory" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
384 (const :tag "default" nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
385 (directory :format "%v"))) |
18120 | 386 :group 'ada) |
387 | |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
388 (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
|
389 "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
|
390 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
|
391 and the standard runtime location, and the value of the user-defined |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
392 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
|
393 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
394 (defcustom ada-stmt-end-indent 0 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
395 "*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
|
396 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
397 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
398 if A = B |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
399 >>>>>>>>>>>then -- from ada-stmt-end-indent" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
400 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
401 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
402 (defcustom ada-tab-policy 'indent-auto |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
403 "*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
|
404 Must be one of : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
405 `indent-rigidly' : always adds ada-indent blanks at the beginning of the line. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
406 `indent-auto' : use indentation functions in this file. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
407 `always-tab' : do indent-relative." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
408 :type '(choice (const indent-auto) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
409 (const indent-rigidly) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
410 (const always-tab)) |
18120 | 411 :group 'ada) |
10705 | 412 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
413 (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
|
414 "*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
|
415 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
416 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
417 use Ada.Text_IO, |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
418 >>>>>Ada.Numerics; -- from ada-use-indent" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
419 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
420 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
421 (defcustom ada-when-indent 3 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
422 "*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
|
423 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
424 An example is: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
425 case A is |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
426 >>>>>>>>when B => -- from ada-when-indent" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
427 :type 'integer :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
428 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
429 (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
|
430 "*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
|
431 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
432 An example is: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
433 with Ada.Text_IO, |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
434 >>>>>Ada.Numerics; -- from ada-with-indent" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
435 :type 'integer :group 'ada) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
436 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
437 (defcustom ada-which-compiler 'gnat |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
438 "*Name of the compiler to use. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
439 This will determine what features are made available through the ada-mode. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
440 The possible choices are : |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
441 `gnat': Use Ada Core Technologies' Gnat compiler. Add some cross-referencing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
442 features |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
443 `generic': Use a generic compiler" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
444 :type '(choice (const gnat) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
445 (const generic)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
446 :group 'ada) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
447 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
448 |
10705 | 449 ;;; ---- end of user configurable variables |
450 | |
451 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
452 (defvar ada-body-suffixes '(".adb") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
453 "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
|
454 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
|
455 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
456 (defvar ada-spec-suffixes '(".ads") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
457 "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
|
458 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
|
459 |
32300
5acb191f2a15
(ada-mode-menu): Add name to menu map.
Dave Love <fx@gnu.org>
parents:
30411
diff
changeset
|
460 (defvar ada-mode-menu (make-sparse-keymap "Ada") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
461 "Menu for ada-mode.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
462 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
463 (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
|
464 "Local keymap used for Ada mode.") |
10705 | 465 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
466 (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
|
467 "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
|
468 |
10705 | 469 (defvar ada-mode-syntax-table nil |
470 "Syntax table to be used for editing Ada source code.") | |
471 | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
472 (defvar ada-mode-symbol-syntax-table nil |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
473 "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
|
474 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
475 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
476 (defconst ada-83-string-keywords |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
477 '("abort" "abs" "accept" "access" "all" "and" "array" "at" "begin" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
478 "body" "case" "constant" "declare" "delay" "delta" "digits" "do" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
479 "else" "elsif" "end" "entry" "exception" "exit" "for" "function" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
480 "generic" "goto" "if" "in" "is" "limited" "loop" "mod" "new" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
481 "not" "null" "of" "or" "others" "out" "package" "pragma" "private" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
482 "procedure" "raise" "range" "record" "rem" "renames" "return" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
483 "reverse" "select" "separate" "subtype" "task" "terminate" "then" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
484 "type" "use" "when" "while" "with" "xor") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
485 "List of Ada keywords. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
486 This variable is used to define `ada-83-keywords' and `ada-95-keywords'")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
487 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
488 (defvar ada-ret-binding nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
489 "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
|
490 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
491 (defvar ada-case-exception '() |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
492 "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
|
493 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
494 (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
|
495 "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
|
496 The substrings are detected for word constituant when the word |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
497 is not itself in ada-case-exception, and only for substrings that |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
498 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
|
499 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
500 (defvar ada-lfd-binding nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
501 "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
|
502 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
503 (defvar ada-other-file-alist nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
504 "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
|
505 See `ff-other-file-alist'.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
506 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
507 (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
|
508 '(("[^:]\\(\\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
|
509 ("[^=]\\(\\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
|
510 ("\\(\\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
|
511 ("\\(\\s-*\\)--" 1)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
512 "Ada support for align.el <= 2.2 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
513 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
|
514 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
|
515 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
516 (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
|
517 '((ada-declaration |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
518 (regexp . "[^:]\\(\\s-*\\):[^:]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
519 (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
|
520 (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
|
521 (ada-assignment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
522 (regexp . "[^=]\\(\\s-+\\)=[^=]") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
523 (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
|
524 (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
|
525 (ada-comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
526 (regexp . "\\(\\s-*\\)--") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
527 (modes . '(ada-mode))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
528 (ada-use |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
529 (regexp . "\\(\\s-*\\)use\\s-") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
530 (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
|
531 (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
|
532 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
533 "Ada support for align.el >= 2.8 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
534 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
|
535 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
536 (defconst ada-align-region-separate |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
537 (concat |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
538 "^\\s-*\\($\\|\\(" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
539 "begin\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
540 "declare\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
541 "else\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
542 "end\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
543 "exception\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
544 "for\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
545 "function\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
546 "generic\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
547 "if\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
548 "is\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
549 "procedure\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
550 "record\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
551 "return\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
552 "type\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
553 "when" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
554 "\\)\\>\\)") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
555 "see the variable `align-region-separate' 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
|
556 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
557 ;;; ---- 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
|
558 |
10705 | 559 (defconst ada-83-keywords |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
560 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
561 (concat "\\<" (regexp-opt ada-83-string-keywords t) "\\>")) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
562 "Regular expression for looking at Ada83 keywords.") |
10705 | 563 |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
564 (defconst ada-95-keywords |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
565 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
566 (concat "\\<" (regexp-opt |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
567 (append |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
568 '("abstract" "aliased" "protected" "requeue" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
569 "tagged" "until") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
570 ada-83-string-keywords) t) "\\>")) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
571 "Regular expression for looking at Ada95 keywords.") |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
572 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
573 (defvar ada-keywords ada-95-keywords |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
574 "Regular expression for looking at Ada keywords.") |
10705 | 575 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
576 (defconst ada-ident-re |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
577 "\\(\\sw\\|[_.]\\)+" |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
578 "Regexp matching Ada (qualified) identifiers.") |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
579 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
580 ;; "with" needs to be included in the regexp, so that we can insert new lines |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
581 ;; after the declaration of the parameter for a generic. |
10705 | 582 (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
|
583 (concat |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
584 "^[ \t]*\\(with[ \t]+\\)?\\(procedure\\|function\\|task\\)[ \t\n]+" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
585 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
586 ;; 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
|
587 "\\(" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
588 "\\(\"[^\"]+\"\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
589 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
590 ;; 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
|
591 "\\|" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
592 "\\(\\(\\sw\\|[_.]\\)+\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
593 "\\)") |
10705 | 594 "Regexp used to find Ada procedures/functions.") |
595 | |
596 (defvar ada-package-start-regexp | |
597 "^[ \t]*\\(package\\)" | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
598 "Regexp used to find Ada packages.") |
10705 | 599 |
600 | |
601 ;;; ---- regexps for indentation functions | |
602 | |
603 (defvar ada-block-start-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
604 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
605 (concat "\\<\\(" (regexp-opt '("begin" "declare" "else" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
606 "exception" "generic" "loop" "or" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
607 "private" "select" )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
608 "\\|\\(\\(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
|
609 "Regexp for keywords starting Ada blocks.") |
10705 | 610 |
611 (defvar ada-end-stmt-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
612 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
613 (concat "\\(" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
614 ";" "\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
615 "=>[ \t]*$" "\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
616 "^[ \t]*separate[ \t]*(\\(\\sw\\|[_.]\\)+)" "\\|" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
617 "\\<" (regexp-opt '("begin" "declare" "is" "do" "else" "generic" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
618 "loop" "private" "record" "select" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
619 "then abort" "then") t) "\\>" "\\|" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
620 "^[ \t]*" (regexp-opt '("function" "package" "procedure") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
621 t) "\\>\\(\\sw\\|[ \t_.]\\)+\\<is\\>" "\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
622 "^[ \t]*exception\\>" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
623 "\\)") ) |
10705 | 624 "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
|
625 A new statement starts after these.") |
10705 | 626 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
627 (defvar ada-matching-start-re |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
628 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
629 (concat "\\<" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
630 (regexp-opt |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
631 '("end" "loop" "select" "begin" "case" "do" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
632 "if" "task" "package" "record" "protected") t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
633 "\\>")) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
634 "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
|
635 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
636 (defvar ada-matching-decl-start-re |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
637 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
638 (concat "\\<" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
639 (regexp-opt |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
640 '("is" "separate" "end" "declare" "if" "new" "begin" "generic" "when") t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
641 "\\>")) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
642 "Regexp used in ada-goto-matching-decl-start.") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
643 |
10705 | 644 (defvar ada-loop-start-re |
645 "\\<\\(for\\|while\\|loop\\)\\>" | |
646 "Regexp for the start of a loop.") | |
647 | |
648 (defvar ada-subprog-start-re | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
649 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
650 (concat "\\<" (regexp-opt '("accept" "entry" "function" "package" "procedure" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
651 "protected" "task") t) "\\>")) |
10705 | 652 "Regexp for the start of a subprogram.") |
653 | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
654 (defvar ada-named-block-re |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
655 "[ \t]*\\(\\sw\\|_\\)+[ \t]*:[^=]" |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
656 "Regexp of the name of a block or loop.") |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
657 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
658 (defvar ada-contextual-menu-on-identifier nil |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
659 "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
|
660 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
661 (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
|
662 "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
|
663 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
|
664 Since `ada-popup-menu' moves the point where the user clicked, the region |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
665 is modified. Therefore no command from the menu knows what the user selected |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
666 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
|
667 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
|
668 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
|
669 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
|
670 |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
671 (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
|
672 "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
|
673 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
|
674 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
|
675 '("Ada" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
676 ["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
|
677 :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
|
678 ["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
|
679 :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
|
680 ["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
|
681 ["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
|
682 :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
|
683 ["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
|
684 :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
|
685 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
686 ["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
|
687 ["Goto Parent Unit" ada-goto-parent])) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
688 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
689 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
690 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
691 ;; Support for imenu (see imenu.el) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
692 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
693 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
694 (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
|
695 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
696 (defconst ada-imenu-subprogram-menu-re |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
697 (concat "^[ \t]*\\(procedure\\|function\\)[ \t\n]+" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
698 "\\(\\(\\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
|
699 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
|
700 "\\)[ \t\n]*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
701 "\\(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
|
702 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
703 (defvar ada-imenu-generic-expression |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
704 (list |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
705 (list nil ada-imenu-subprogram-menu-re 2) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
706 (list "*Specs*" |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
707 (concat |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
708 "^[ \t]*\\(procedure\\|function\\)[ \t\n]+\\(\\(\\sw\\|_\\)+\\)" |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
709 "\\(" |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
710 "\\(" ada-imenu-comment-re "[ \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
|
711 ada-imenu-comment-re "\\)";; parameter list or simple space |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
712 "\\([ \t\n]*return[ \t\n]+\\(\\sw\\|[_.]\\)+[ \t\n]*\\)?" |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
713 "\\)?;") 2) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
714 '("*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
|
715 '("*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
|
716 '("*Protected*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
717 "^[ \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
|
718 '("*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
|
719 "Imenu generic expression for Ada mode. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
720 See `imenu-generic-expression'. This variable will create several submenus for |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
721 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
|
722 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
723 |
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 ;; Support for compile.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
726 ;;------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
727 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
728 (defun ada-compile-mouse-goto-error () |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
729 "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
|
730 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
731 (mouse-set-point last-input-event) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
732 (ada-compile-goto-error (point)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
733 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
734 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
735 (defun ada-compile-goto-error (pos) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
736 "Replaces `compile-goto-error' from compile.el. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
737 If POS is on a file and line location, go to this position. It adds to |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
738 compile.el the capacity to go to a reference in an error message. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
739 For instance, on this line: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
740 foo.adb:61:11: [...] in call to size declared at foo.ads:11 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
741 both file locations can be clicked on and jumped to." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
742 (interactive "d") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
743 (goto-char pos) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
744 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
745 (skip-chars-backward "-a-zA-Z0-9_:./\\") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
746 (cond |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
747 ;; special case: looking at a filename:line not at the beginning of a line |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
748 ((and (not (bolp)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
749 (looking-at |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
750 "\\([-_.a-zA-Z0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
751 (let ((line (match-string 2)) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
752 file |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
753 (error-pos (point-marker)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
754 source) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
755 (save-excursion |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
756 (save-restriction |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
757 (widen) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
758 ;; Use funcall so as to prevent byte-compiler warnings |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
759 ;; `ada-find-file' is not defined if ada-xref wasn't loaded. But |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
760 ;; if we can find it, we should use it instead of |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
761 ;; `compilation-find-file', since the latter doesn't know anything |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
762 ;; about source path. |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
763 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
764 (if (functionp 'ada-find-file) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
765 (setq file (funcall (symbol-function 'ada-find-file) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
766 (match-string 1))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
767 (setq file (funcall (symbol-function 'compilation-find-file) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
768 (point-marker) (match-string 1) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
769 "./"))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
770 (set-buffer file) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
771 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
772 (if (stringp line) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
773 (goto-line (string-to-number line))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
774 (setq source (point-marker)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
775 (funcall (symbol-function 'compilation-goto-locus) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
776 (cons source error-pos)) |
26225
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 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
779 ;; otherwise, default behavior |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
780 (t |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
781 (funcall (symbol-function 'compile-goto-error))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
782 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
783 (recenter)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
784 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
785 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
786 ;;------------------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
787 ;; Grammar related function |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
788 ;; 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
|
789 ;; 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
|
790 ;; 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
|
791 ;; 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
|
792 ;; - ' 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
|
793 ;; - # 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
|
794 ;; - " 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
|
795 ;; - ( 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
|
796 ;; 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
|
797 ;; 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
|
798 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
799 ;; On Emacs, this is done through the `syntax-table' text property. The |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
800 ;; modification is done automatically each time the user as typed a new |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
801 ;; character. This is already done in `font-lock-mode' (in |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
802 ;; `font-lock-syntactic-keywords', so we take advantage of the existing |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
803 ;; mechanism. If font-lock-mode is not activated, we do it by hand in |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
804 ;; `ada-after-change-function', thanks to `ada-deactivate-properties' and |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
805 ;; `ada-initialize-properties'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
806 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
807 ;; 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
|
808 ;; 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
|
809 ;; 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
|
810 ;; 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
|
811 ;; with parse-partial-sexp. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
812 ;; 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
|
813 ;; better is available on XEmacs. |
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 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
816 (defun ada-create-syntax-table () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
817 "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
|
818 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
|
819 declares it as a word constituent." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
820 (interactive) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
821 (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
|
822 (set-syntax-table ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
823 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
824 ;; 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
|
825 ;; 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
|
826 ;; off the track.) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
827 (modify-syntax-entry ?% "$" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
828 (modify-syntax-entry ?\" "\"" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
829 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
830 (modify-syntax-entry ?: "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
831 (modify-syntax-entry ?\; "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
832 (modify-syntax-entry ?& "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
833 (modify-syntax-entry ?\| "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
834 (modify-syntax-entry ?+ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
835 (modify-syntax-entry ?* "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
836 (modify-syntax-entry ?/ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
837 (modify-syntax-entry ?= "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
838 (modify-syntax-entry ?< "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
839 (modify-syntax-entry ?> "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
840 (modify-syntax-entry ?$ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
841 (modify-syntax-entry ?\[ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
842 (modify-syntax-entry ?\] "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
843 (modify-syntax-entry ?\{ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
844 (modify-syntax-entry ?\} "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
845 (modify-syntax-entry ?. "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
846 (modify-syntax-entry ?\\ "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
847 (modify-syntax-entry ?\' "." ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
848 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
849 ;; 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
|
850 (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
|
851 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
852 ;; 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
|
853 ;; 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
|
854 (if (featurep 'xemacs) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
855 (modify-syntax-entry ?# "<" ada-mode-syntax-table) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
856 (modify-syntax-entry ?# "$" ada-mode-syntax-table)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
857 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
858 ;; and \f and \n end a comment |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
859 (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
|
860 (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
|
861 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
862 ;; define what belongs in Ada symbols |
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 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
865 ;; define parentheses to match |
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 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
869 (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
|
870 (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
|
871 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
872 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
873 ;; 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
|
874 ;; of the section on Grammar related functions). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
875 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
876 (if (featurep 'xemacs) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
877 (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
|
878 "Handles special character constants and gnatprep statements." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
879 (let (change) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
880 (if (< to from) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
881 (let ((tmp from)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
882 (setq from to to tmp))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
883 (save-excursion |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
884 (goto-char from) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
885 (while (re-search-forward "'\\([(\")#]\\)'" to t) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
886 (setq change (cons (list (match-beginning 1) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
887 1 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
888 (match-string 1)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
889 change)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
890 (replace-match "'A'")) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
891 (goto-char from) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
892 (while (re-search-forward "\\(#[0-9a-fA-F]*#\\)" to t) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
893 (setq change (cons (list (match-beginning 1) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
894 (length (match-string 1)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
895 (match-string 1)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
896 change)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
897 (replace-match (make-string (length (match-string 1)) ?@)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
898 ad-do-it |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
899 (save-excursion |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
900 (while change |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
901 (goto-char (caar change)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
902 (delete-char (cadar change)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
903 (insert (caddar change)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
904 (setq change (cdr change))))))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
905 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
906 (defun ada-deactivate-properties () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
907 "Deactivate ada-mode's properties handling. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
908 This would be a duplicate of font-lock if both are used at the same time." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
909 (remove-hook 'after-change-functions 'ada-after-change-function t)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
910 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
911 (defun ada-initialize-properties () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
912 "Initialize some special text properties in the whole buffer. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
913 In particular, character constants are said to be strings, #...# are treated |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
914 as numbers instead of gnatprep comments." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
915 (save-excursion |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
916 (save-restriction |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
917 (widen) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
918 (goto-char (point-min)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
919 (while (re-search-forward "'.'" nil t) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
920 (add-text-properties (match-beginning 0) (match-end 0) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
921 '(syntax-table ("'" . ?\")))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
922 (goto-char (point-min)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
923 (while (re-search-forward "^[ \t]*#" nil t) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
924 (add-text-properties (match-beginning 0) (match-end 0) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
925 '(syntax-table (11 . 10)))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
926 (set-buffer-modified-p nil) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
927 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
928 ;; Setting this only if font-lock is not set won't work |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
929 ;; if the user activates or deactivates font-lock-mode, |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
930 ;; but will make things faster most of the time |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
931 (add-hook 'after-change-functions 'ada-after-change-function nil t) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
932 ))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
933 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
934 (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
|
935 "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
|
936 OLD-LEN indicates what the length of the replaced text was." |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
937 (let ((inhibit-point-motion-hooks t) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
938 (eol (point))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
939 (save-excursion |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
940 (save-match-data |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
941 (beginning-of-line) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
942 (remove-text-properties (point) eol '(syntax-table nil)) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
943 (while (re-search-forward "'.'" eol t) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
944 (add-text-properties (match-beginning 0) (match-end 0) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
945 '(syntax-table ("'" . ?\")))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
946 (beginning-of-line) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
947 (if (looking-at "^[ \t]*#") |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
948 (add-text-properties (match-beginning 0) (match-end 0) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
949 '(syntax-table (11 . 10)))))))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
950 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
951 ;;------------------------------------------------------------------ |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
952 ;; Testing the grammatical context |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
953 ;;------------------------------------------------------------------ |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
954 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
955 (defsubst ada-in-comment-p (&optional parse-result) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
956 "Returns t if inside a comment." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
957 (nth 4 (or parse-result |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
958 (parse-partial-sexp |
50981
b4fef1c0c73b
(ada-in-comment-p, ada-in-string-p)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50812
diff
changeset
|
959 (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
|
960 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
961 (defsubst ada-in-string-p (&optional parse-result) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
962 "Returns t if point is inside a string. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
963 If parse-result is non-nil, use is instead of calling parse-partial-sexp." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
964 (nth 3 (or parse-result |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
965 (parse-partial-sexp |
50981
b4fef1c0c73b
(ada-in-comment-p, ada-in-string-p)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50812
diff
changeset
|
966 (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
|
967 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
968 (defsubst ada-in-string-or-comment-p (&optional parse-result) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
969 "Returns t if inside a comment or string." |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
970 (setq parse-result (or parse-result |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
971 (parse-partial-sexp |
50981
b4fef1c0c73b
(ada-in-comment-p, ada-in-string-p)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50812
diff
changeset
|
972 (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
|
973 (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
|
974 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
975 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
976 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
977 ;; Contextual menus |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
978 ;; The Ada-mode comes with contextual menus, bound by default to the right |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
979 ;; mouse button. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
980 ;; 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
|
981 ;; 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
|
982 ;; 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
|
983 ;;------------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
984 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
985 (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
|
986 "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
|
987 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
|
988 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
989 (funcall function) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
990 (setq 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
|
991 (list (point) (current-buffer)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
992 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
993 (defun ada-popup-menu (position) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
994 "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
|
995 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
|
996 Sets `ada-contextual-menu-last-point' to the current position before |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
997 displaying the menu. When a function from the menu is called, the point is |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
998 where the mouse button was clicked." |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
999 (interactive "e") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1000 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1001 ;; 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
|
1002 ;; 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
|
1003 ;; transient-mark-mode. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1004 (let ((deactivate-mark nil)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1005 (setq ada-contextual-menu-last-point |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1006 (list (point) (current-buffer))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1007 (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
|
1008 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1009 (setq ada-contextual-menu-on-identifier |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1010 (and (char-after) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1011 (or (= (char-syntax (char-after)) ?w) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1012 (= (char-after) ?_)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1013 (not (ada-in-string-or-comment-p)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1014 (save-excursion (skip-syntax-forward "w") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1015 (not (ada-after-keyword-p))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1016 )) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1017 (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
|
1018 (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
|
1019 (let (choice) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1020 (setq choice (x-popup-menu position ada-contextual-menu)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1021 (if choice |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1022 (funcall (lookup-key ada-contextual-menu (vector (car choice))))))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1023 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1024 (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
|
1025 (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
|
1026 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1027 |
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 ;; Misc functions |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1031 ;;------------------------------------------------------------------ |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1032 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1033 ;;;###autoload |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1034 (defun ada-add-extensions (spec body) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1035 "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
|
1036 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
|
1037 extensions. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1038 SPEC and BODY are two regular expressions that must match against the file |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1039 name" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1040 (let* ((reg (concat (regexp-quote body) "$")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1041 (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
|
1042 (if tmp |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1043 (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
|
1044 (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
|
1045 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1046 (let* ((reg (concat (regexp-quote spec) "$")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1047 (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
|
1048 (if tmp |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1049 (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
|
1050 (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
|
1051 |
41082
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1052 (add-to-list 'auto-mode-alist |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1053 (cons (concat (regexp-quote spec) "\\'") 'ada-mode)) |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1054 (add-to-list 'auto-mode-alist |
6204eb16d008
(ada-add-extensions): Quote regexp special
Andreas Schwab <schwab@suse.de>
parents:
41036
diff
changeset
|
1055 (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
|
1056 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1057 (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
|
1058 (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
|
1059 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1060 ;; 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
|
1061 ;; speedbar) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
1062 (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
|
1063 (progn |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1064 (funcall (symbol-function 'speedbar-add-supported-extension) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1065 spec) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1066 (funcall (symbol-function 'speedbar-add-supported-extension) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1067 body))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1068 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1069 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1070 |
10707 | 1071 ;;;###autoload |
10705 | 1072 (defun ada-mode () |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
1073 "Ada mode is the major mode for editing Ada code. |
88123 | 1074 This version was built on $Date: 2003/05/04 19:52:34 $. |
10705 | 1075 |
1076 Bindings are as follows: (Note: 'LFD' is control-j.) | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1077 \\{ada-mode-map} |
10705 | 1078 |
1079 Indent line '\\[ada-tab]' | |
1080 Indent line, insert newline and indent the new line. '\\[newline-and-indent]' | |
1081 | |
1082 Re-format the parameter-list point is in '\\[ada-format-paramlist]' | |
1083 Indent all lines in region '\\[ada-indent-region]' | |
1084 | |
1085 Adjust case of identifiers and keywords in region '\\[ada-adjust-case-region]' | |
1086 Adjust case of identifiers and keywords in buffer '\\[ada-adjust-case-buffer]' | |
1087 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1088 Fill comment paragraph, justify and append postfix '\\[fill-paragraph]' |
10705 | 1089 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
1090 Next func/proc/task '\\[ada-next-procedure]' Previous func/proc/task '\\[ada-previous-procedure]' |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1091 Next package '\\[ada-next-package]' Previous package '\\[ada-previous-package]' |
10705 | 1092 |
1093 Goto matching start of current 'end ...;' '\\[ada-move-to-start]' | |
1094 Goto end of current block '\\[ada-move-to-end]' | |
1095 | |
1096 Comments are handled using standard GNU Emacs conventions, including: | |
1097 Start a comment '\\[indent-for-comment]' | |
1098 Comment region '\\[comment-region]' | |
1099 Uncomment region '\\[ada-uncomment-region]' | |
1100 Continue comment on next line '\\[indent-new-comment-line]' | |
1101 | |
1102 If you use imenu.el: | |
1103 Display index-menu of functions & procedures '\\[imenu]' | |
1104 | |
1105 If you use find-file.el: | |
1106 Switch to other file (Body <-> Spec) '\\[ff-find-other-file]' | |
1107 or '\\[ff-mouse-find-other-file] | |
1108 Switch to other file in other window '\\[ada-ff-other-window]' | |
1109 or '\\[ff-mouse-find-other-file-other-window] | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1110 If you use this function in a spec and no body is available, it gets created with body stubs. |
10705 | 1111 |
1112 If you use ada-xref.el: | |
1113 Goto declaration: '\\[ada-point-and-xref]' on the identifier | |
1114 or '\\[ada-goto-declaration]' with point on the identifier | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1115 Complete identifier: '\\[ada-complete-identifier]'." |
10705 | 1116 |
1117 (interactive) | |
1118 (kill-all-local-variables) | |
1119 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1120 (set (make-local-variable 'require-final-newline) t) |
10705 | 1121 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1122 ;; 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
|
1123 ;; simply with M-h |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1124 (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
|
1125 (set (make-local-variable 'paragraph-separate) "[ \t\n\f]*$") |
10705 | 1126 |
1127 ;; comment end must be set because it may hold a wrong value if | |
1128 ;; 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
|
1129 (set (make-local-variable 'comment-end) "") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1130 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1131 ;; 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
|
1132 (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
|
1133 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1134 ;; 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
|
1135 ;; 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
|
1136 ;; 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
|
1137 ;; 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
|
1138 ;; 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
|
1139 (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
|
1140 (lambda (&optional soft) (let ((fill-prefix nil)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1141 (indent-new-comment-line soft)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1142 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1143 (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
|
1144 'ada-indent-current-function) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1145 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1146 (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
|
1147 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1148 ;; 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
|
1149 ;; 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
|
1150 ;; 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
|
1151 (unless (featurep 'xemacs) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1152 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1153 (if (ada-check-emacs-version 20 3) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1154 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1155 (set (make-local-variable 'parse-sexp-ignore-comments) t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1156 (set (make-local-variable 'comment-padding) 0))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1157 (set (make-local-variable 'parse-sexp-lookup-properties) t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1158 )) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1159 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1160 (set 'case-fold-search t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1161 (if (boundp 'imenu-case-fold-search) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1162 (set 'imenu-case-fold-search t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1163 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1164 (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
|
1165 'ada-fill-comment-paragraph) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1166 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1167 (set (make-local-variable 'imenu-generic-expression) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1168 ada-imenu-generic-expression) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1169 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1170 ;; Support for compile.el |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1171 ;; 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
|
1172 (add-hook 'compilation-mode-hook |
28995
93c16141d107
(ada-mode, ada-create-case-exception): Don't quote lambdas.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
26225
diff
changeset
|
1173 (lambda() |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1174 (set (make-local-variable 'compile-auto-highlight) 40) |
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1175 ;; 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
|
1176 (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
|
1177 '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
|
1178 (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
|
1179 'ada-compile-goto-error) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1180 (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
|
1181 'ada-compile-goto-error))) |
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1182 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1183 ;; font-lock support : |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1184 ;; We need to set some properties for XEmacs, and define some variables |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1185 ;; for Emacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1186 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1187 (if (featurep 'xemacs) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1188 ;; XEmacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1189 (put 'ada-mode 'font-lock-defaults |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1190 '(ada-font-lock-keywords |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1191 nil t ((?\_ . "w") (?# . ".")) 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
|
1192 ;; Emacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1193 (set (make-local-variable 'font-lock-defaults) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1194 '(ada-font-lock-keywords |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1195 nil t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1196 ((?\_ . "w") (?# . ".")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1197 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
|
1198 (font-lock-syntactic-keywords . ada-font-lock-syntactic-keywords))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1199 ) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1200 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1201 ;; 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
|
1202 (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
|
1203 'ada-other-file-alist) |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1204 (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
|
1205 '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
|
1206 (setq ff-post-load-hook 'ada-set-point-accordingly |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1207 ff-file-created-hook 'ada-make-body) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1208 (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
|
1209 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1210 ;; Some special constructs for find-file.el |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1211 ;; We do not need to add the construction for 'with', which is in the |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1212 ;; standard find-file.el |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1213 (make-local-variable 'ff-special-constructs) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1214 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1215 ;; Go to the parent package : |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1216 (add-to-list 'ff-special-constructs |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1217 (cons (eval-when-compile |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1218 (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1219 "\\(body[ \t]+\\)?" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1220 "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1221 (lambda () |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1222 (if (fboundp 'ff-get-file) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1223 (if (boundp 'fname) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1224 (set 'fname (ff-get-file |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1225 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
|
1226 (ada-make-filename-from-adaname |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1227 (match-string 3)) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1228 ada-spec-suffixes))))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1229 ;; Another special construct for find-file.el : when in a separate clause, |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1230 ;; go to the correct package. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1231 (add-to-list 'ff-special-constructs |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1232 (cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1233 (lambda () |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1234 (if (fboundp 'ff-get-file) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1235 (if (boundp 'fname) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1236 (setq fname (ff-get-file |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1237 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
|
1238 (ada-make-filename-from-adaname |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1239 (match-string 1)) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1240 ada-spec-suffixes))))))) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1241 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1242 ;; Another special construct, that redefines the one in find-file.el. The |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1243 ;; old one can handle only one possible type of extension for Ada files |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1244 ;; remove from the list the standard "with..." that is put by find-file.el, |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1245 ;; since it uses the old ada-spec-suffix variable |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1246 ;; This one needs to replace the standard one defined in find-file.el (with |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1247 ;; Emacs <= 20.4), since that one uses the old variable ada-spec-suffix |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1248 (let ((old-construct |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1249 (assoc "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" ff-special-constructs)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1250 (new-cdr |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1251 (lambda () |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1252 (if (fboundp 'ff-get-file) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1253 (if (boundp 'fname) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1254 (set 'fname (ff-get-file |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1255 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
|
1256 (ada-make-filename-from-adaname |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1257 (match-string 1)) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1258 ada-spec-suffixes))))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1259 (if old-construct |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1260 (setcdr old-construct new-cdr) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1261 (add-to-list 'ff-special-constructs |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1262 (cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1263 new-cdr)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1264 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1265 ;; Support for outline-minor-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1266 (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
|
1267 "\\([ \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
|
1268 (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
|
1269 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1270 ;; Support for imenu : We want a sorted index |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1271 (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
|
1272 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1273 ;; 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
|
1274 (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
|
1275 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1276 ;; Support for align.el <= 2.2, if present |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1277 ;; align.el is distributed with Emacs 21, but not with earlier versions. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1278 (if (boundp 'align-mode-alist) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1279 (add-to-list 'align-mode-alist '(ada-mode . 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
|
1280 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1281 ;; Support for align.el >= 2.8, if present |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1282 (if (boundp 'align-dq-string-modes) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1283 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1284 (add-to-list 'align-dq-string-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
|
1285 (add-to-list 'align-open-comment-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
|
1286 (set (make-variable-buffer-local 'align-region-separate) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1287 ada-align-region-separate) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1288 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1289 ;; Exclude comments alone on line from alignment. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1290 (add-to-list 'align-exclude-rules-list |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1291 '(ada-solo-comment |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1292 (regexp . "^\\(\\s-*\\)--") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1293 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1294 (add-to-list 'align-exclude-rules-list |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1295 '(ada-solo-use |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1296 (regexp . "^\\(\\s-*\\)\\<use\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1297 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1298 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1299 (setq ada-align-modes nil) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1300 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1301 (add-to-list 'ada-align-modes |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1302 '(ada-declaration-assign |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1303 (regexp . "[^:]\\(\\s-*\\):[^:]") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1304 (valid . (lambda() (not (ada-in-comment-p)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1305 (repeat . t) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1306 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1307 (add-to-list 'ada-align-modes |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1308 '(ada-associate |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1309 (regexp . "[^=]\\(\\s-*\\)=>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1310 (valid . (lambda() (not (ada-in-comment-p)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1311 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1312 (add-to-list 'ada-align-modes |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1313 '(ada-comment |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1314 (regexp . "\\(\\s-*\\)--") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1315 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1316 (add-to-list 'ada-align-modes |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1317 '(ada-use |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1318 (regexp . "\\(\\s-*\\)\\<use\\s-") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1319 (valid . (lambda() (not (ada-in-comment-p)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1320 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1321 (add-to-list 'ada-align-modes |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1322 '(ada-at |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1323 (regexp . "\\(\\s-+\\)at\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1324 (modes . '(ada-mode)))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1325 |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1326 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1327 (setq align-mode-rules-list ada-align-modes) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1328 )) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1329 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1330 ;; Set up the contextual menu |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1331 (if ada-popup-key |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1332 (define-key ada-mode-map ada-popup-key 'ada-popup-menu)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1333 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1334 ;; Support for Abbreviations (the user still need to "M-x abbrev-mode" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1335 (define-abbrev-table 'ada-mode-abbrev-table ()) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1336 (setq local-abbrev-table ada-mode-abbrev-table) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1337 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1338 ;; Support for which-function mode |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1339 ;; which-function-mode does not work with nested subprograms, since it is |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1340 ;; based only on the regexps generated by imenu, and thus can only detect the |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1341 ;; beginning of subprograms, not the end. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1342 ;; Fix is: redefine a new function ada-which-function, and call it when the |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1343 ;; major-mode is ada-mode. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1344 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1345 (unless (featurep 'xemacs) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1346 ;; This function do not require that we load which-func now. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1347 ;; This can be done by the user if he decides to use which-func-mode |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1348 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1349 (defadvice which-function (around ada-which-function activate) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1350 "In Ada buffers, should work with overloaded subprograms, and does not |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1351 use imenu." |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1352 (if (equal major-mode 'ada-mode) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1353 (set 'ad-return-value (ada-which-function)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1354 ad-do-it)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1355 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1356 ;; So that we can activate which-func-modes for Ada mode |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1357 (if (and (boundp 'which-func-modes) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1358 (listp which-func-modes)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1359 (add-to-list 'which-func-modes 'ada-mode)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1360 ) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1361 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1362 ;; Support for indent-new-comment-line (Especially for XEmacs) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1363 (setq comment-multi-line nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1364 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1365 (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
|
1366 mode-name "Ada") |
10705 | 1367 |
1368 (use-local-map ada-mode-map) | |
1369 | |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
1370 (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
|
1371 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1372 (set-syntax-table ada-mode-syntax-table) |
10705 | 1373 |
1374 (if ada-clean-buffer-before-saving | |
1375 (progn | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1376 ;; remove all spaces at the end of lines in the whole buffer. |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
1377 (add-hook 'local-write-file-hooks 'delete-trailing-whitespace) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1378 ;; convert all tabs to the correct number of spaces. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1379 (add-hook 'local-write-file-hooks |
28995
93c16141d107
(ada-mode, ada-create-case-exception): Don't quote lambdas.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
26225
diff
changeset
|
1380 (lambda () (untabify (point-min) (point-max)))))) |
10705 | 1381 |
1382 (run-hooks 'ada-mode-hook) | |
1383 | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1384 ;; 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
|
1385 ;; ada-fill-comment-prefix |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1386 (make-local-variable 'comment-start) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1387 (if ada-fill-comment-prefix |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1388 (set 'comment-start ada-fill-comment-prefix) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1389 (set 'comment-start "-- ")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1390 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1391 ;; 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
|
1392 ;; font-lock-mode |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1393 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1394 (unless (featurep 'xemacs) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1395 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1396 (ada-initialize-properties) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1397 (add-hook 'font-lock-mode-hook 'ada-deactivate-properties nil t))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1398 |
10705 | 1399 ;; the following has to be done after running the ada-mode-hook |
1400 ;; because users might want to set the values of these variable | |
1401 ;; inside the hook (MH) | |
1402 | |
1403 (cond ((eq ada-language-version 'ada83) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1404 (setq ada-keywords ada-83-keywords)) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1405 ((eq ada-language-version 'ada95) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1406 (setq ada-keywords ada-95-keywords))) |
10705 | 1407 |
1408 (if ada-auto-case | |
1409 (ada-activate-keys-for-case))) | |
1410 | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1411 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1412 ;; transient-mark-mode and mark-active are not defined in XEmacs |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1413 (defun 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
|
1414 "t if a region has been selected by the user and is still active." |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1415 (or (and (featurep 'xemacs) (funcall (symbol-function 'region-active-p))) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
1416 (and (not (featurep 'xemacs)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1417 (symbol-value 'transient-mark-mode) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1418 (symbol-value 'mark-active)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1419 |
10705 | 1420 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1421 ;;----------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1422 ;; auto-casing |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1423 ;; Since Ada is case-insensitive, the Ada-mode provides an extensive set of |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1424 ;; functions to auto-case identifiers, keywords, ... |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1425 ;; 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
|
1426 ;; `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
|
1427 ;; 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
|
1428 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1429 ;; 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
|
1430 ;; 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
|
1431 ;; 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
|
1432 ;; 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
|
1433 ;;----------------------------------------------------------------- |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1434 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1435 (defun 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
|
1436 "Save the exception lists `ada-case-exception' and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1437 `ada-case-exception-substring' to the file FILE-NAME." |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1438 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1439 ;; Save the list in the file |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1440 (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
|
1441 (erase-buffer) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1442 (mapcar (lambda (x) (insert (car x) "\n")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1443 (sort (copy-sequence 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
|
1444 (lambda(a b) (string< (car a) (car b))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1445 (mapcar (lambda (x) (insert "*" (car x) "\n")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1446 (sort (copy-sequence 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
|
1447 (lambda(a b) (string< (car a) (car b))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1448 (save-buffer) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1449 (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
|
1450 ) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1451 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1452 (defun ada-create-case-exception (&optional word) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1453 "Defines WORD as an exception for the casing system. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1454 If WORD is not given, then the current word in the buffer is used instead. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1455 The new words is added to the first file in `ada-case-exception-file'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1456 The standard casing rules will no longer apply to this word." |
10705 | 1457 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1458 (let ((previous-syntax-table (syntax-table)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1459 file-name |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1460 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1461 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1462 (cond ((stringp ada-case-exception-file) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1463 (setq file-name 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
|
1464 ((listp ada-case-exception-file) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1465 (setq file-name (car 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
|
1466 (t |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1467 (error (concat "No exception file specified. " |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1468 "See variable ada-case-exception-file.")))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1469 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1470 (set-syntax-table ada-mode-symbol-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1471 (unless word |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1472 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1473 (skip-syntax-backward "w") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1474 (setq word (buffer-substring-no-properties |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1475 (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
|
1476 (set-syntax-table previous-syntax-table) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1477 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1478 ;; 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
|
1479 (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
|
1480 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1481 ;; 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
|
1482 ;; we simply want to replace it. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1483 (if (and (not (equal ada-case-exception '())) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1484 (assoc-ignore-case word ada-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
|
1485 (setcar (assoc-ignore-case word ada-case-exception) word) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1486 (add-to-list 'ada-case-exception (cons word t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1487 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1488 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1489 (ada-save-exceptions-to-file file-name) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1490 )) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1491 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1492 (defun ada-create-case-exception-substring (&optional word) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1493 "Defines the substring WORD as an exception for the casing system. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1494 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
|
1495 or the selected region if any is active. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1496 The new words is added to the first file in `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
|
1497 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
|
1498 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
|
1499 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1500 (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
|
1501 (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
|
1502 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
|
1503 ((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
|
1504 (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
|
1505 (t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1506 (error (concat "No exception file specified. " |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1507 "See variable 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
|
1508 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1509 ;; 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
|
1510 ;; 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
|
1511 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1512 (word nil) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1513 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1514 ((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
|
1515 (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
|
1516 (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
|
1517 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1518 (t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1519 (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
|
1520 (unwind-protect |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1521 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1522 (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
|
1523 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1524 (skip-syntax-backward "w") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1525 (set 'word (buffer-substring-no-properties |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1526 (point) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1527 (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
|
1528 (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
|
1529 (syntax-table)))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1530 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1531 ;; 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
|
1532 (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
|
1533 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1534 ;; 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
|
1535 ;; 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
|
1536 (if (and (not (equal 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
|
1537 (assoc-ignore-case word 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
|
1538 (setcar (assoc-ignore-case word ada-case-exception-substring) word) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1539 (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
|
1540 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1541 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1542 (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
|
1543 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1544 (message (concat "Defining " word " as a casing exception")))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1545 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1546 (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
|
1547 "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
|
1548 (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
|
1549 (let ((buffer (current-buffer))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1550 (find-file (expand-file-name file-name)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1551 (set-syntax-table ada-mode-symbol-syntax-table) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1552 (widen) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1553 (goto-char (point-min)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1554 (while (not (eobp)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1555 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1556 ;; If the item is already in the list, even with an other casing, |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1557 ;; do not add it again. This way, the user can easily decide which |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1558 ;; priority should be applied to each casing exception |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1559 (let ((word (buffer-substring-no-properties |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1560 (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
|
1561 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1562 ;; 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
|
1563 (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
|
1564 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1565 (setq word (substring word 1)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1566 (unless (assoc-ignore-case word 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
|
1567 (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
|
1568 (unless (assoc-ignore-case word 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
|
1569 (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
|
1570 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1571 (forward-line 1)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1572 (kill-buffer nil) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1573 (set-buffer buffer))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1574 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1575 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1576 (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
|
1577 "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
|
1578 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1579 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1580 ;; 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
|
1581 (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
|
1582 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
|
1583 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1584 (cond ((stringp ada-case-exception-file) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1585 (ada-case-read-exceptions-from-file ada-case-exception-file)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1586 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1587 ((listp ada-case-exception-file) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1588 (mapcar 'ada-case-read-exceptions-from-file |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1589 ada-case-exception-file)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1590 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1591 (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
|
1592 "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
|
1593 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1594 (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
|
1595 (max (point)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1596 (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
|
1597 (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
|
1598 re) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1599 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1600 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1601 (forward-word -1) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1602 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1603 (unwind-protect |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1604 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1605 (modify-syntax-entry ?_ "." (syntax-table)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1606 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1607 (while substrings |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1608 (setq re (concat "\\b" (regexp-quote (caar substrings)) "\\b")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
1609 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1610 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1611 (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
|
1612 (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
|
1613 (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
|
1614 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1615 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1616 (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
|
1617 ))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1618 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1619 (defun ada-adjust-case-identifier () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1620 "Adjust case of the previous identifier. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1621 The auto-casing is done according to the value of `ada-case-identifier' and |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1622 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
|
1623 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1624 (if (or (equal ada-case-exception '()) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1625 (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
|
1626 (progn |
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-identifier -1) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1628 (ada-adjust-case-substring)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1629 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1630 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1631 (let ((end (point)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1632 (start (save-excursion (skip-syntax-backward "w") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1633 (point))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1634 match) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1635 ;; If we have an exception, replace the word by the correct casing |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1636 (if (setq match (assoc-ignore-case (buffer-substring start end) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1637 ada-case-exception)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1638 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1639 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1640 (delete-region start end) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1641 (insert (car match))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1642 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1643 ;; Else simply re-case the word |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1644 (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
|
1645 (ada-adjust-case-substring)))))) |
10705 | 1646 |
1647 (defun ada-after-keyword-p () | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1648 "Returns t if cursor is after a keyword that is not an attribute." |
10705 | 1649 (save-excursion |
1650 (forward-word -1) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1651 (and (not (and (char-before) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1652 (or (= (char-before) ?_) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1653 (= (char-before) ?'))));; unless we have a _ or ' |
10705 | 1654 (looking-at (concat ada-keywords "[^_]"))))) |
1655 | |
1656 (defun ada-adjust-case (&optional force-identifier) | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1657 "Adjust the case of the word before the just typed character. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1658 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
|
1659 (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
|
1660 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1661 (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
|
1662 (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
|
1663 ;; 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
|
1664 (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
|
1665 (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
|
1666 ;; 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
|
1667 (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
|
1668 ;; 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
|
1669 (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
|
1670 ) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1671 (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
|
1672 (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
|
1673 (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
|
1674 (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
|
1675 (= (following-char) ?')) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1676 (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
|
1677 (if (and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
1678 (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
|
1679 (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
|
1680 (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
|
1681 (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
|
1682 (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
|
1683 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1684 ) |
10705 | 1685 |
1686 (defun ada-adjust-case-interactive (arg) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1687 "Adjust the case of the previous word, and process the character just typed. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1688 ARG is the prefix the user entered with \C-u." |
10705 | 1689 (interactive "P") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1690 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1691 (if ada-auto-case |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1692 (let ((lastk last-command-char) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1693 (previous-syntax-table (syntax-table))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1694 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1695 (unwind-protect |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1696 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1697 (set-syntax-table ada-mode-symbol-syntax-table) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1698 (cond ((or (eq lastk ?\n) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1699 (eq lastk ?\r)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1700 ;; horrible kludge |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1701 (insert " ") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1702 (ada-adjust-case) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1703 ;; horrible dekludge |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1704 (delete-backward-char 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1705 ;; some special keys and their bindings |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1706 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1707 ((eq lastk ?\n) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1708 (funcall ada-lfd-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1709 ((eq lastk ?\r) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1710 (funcall ada-ret-binding)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1711 ((eq lastk ?\C-i) (ada-tab)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1712 ;; Else just insert the character |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1713 ((self-insert-command (prefix-numeric-value arg)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1714 ;; if there is a keyword in front of the underscore |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1715 ;; then it should be part of an identifier (MH) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1716 (if (eq lastk ?_) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1717 (ada-adjust-case t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1718 (ada-adjust-case)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1719 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1720 ;; Restore the syntax table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1721 (set-syntax-table previous-syntax-table)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1722 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1723 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1724 ;; Else, no auto-casing |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1725 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1726 ((eq last-command-char ?\n) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1727 (funcall ada-lfd-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1728 ((eq last-command-char ?\r) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1729 (funcall ada-ret-binding)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1730 (t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1731 (self-insert-command (prefix-numeric-value arg)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1732 )) |
10705 | 1733 |
1734 (defun ada-activate-keys-for-case () | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1735 "Modifies 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
|
1736 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1737 ;; 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
|
1738 ;; when casing is activated. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1739 ;; 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
|
1740 ;; 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
|
1741 (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
|
1742 (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
|
1743 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1744 ;; Call case modifying function after certain keys. |
10705 | 1745 (mapcar (function (lambda(key) (define-key |
1746 ada-mode-map | |
1747 (char-to-string key) | |
1748 'ada-adjust-case-interactive))) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1749 '( ?` ?_ ?# ?% ?& ?* ?( ?) ?- ?= ?+ |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1750 ?| ?\; ?: ?' ?\" ?< ?, ?. ?> ?/ ?\n 32 ?\r ))) |
10705 | 1751 |
1752 (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
|
1753 "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
|
1754 No other letter is modified. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1755 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
|
1756 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1757 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1758 (let ((end (save-excursion (skip-syntax-forward "w") (point))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1759 (first t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1760 (skip-syntax-backward "w") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1761 (while (and (or first (search-forward "_" end t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1762 (< (point) end)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1763 (and first |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1764 (setq first nil)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1765 (insert-char (upcase (following-char)) 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1766 (delete-char 1))))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1767 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1768 (defun ada-no-auto-case (&optional arg) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1769 "Does nothing. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1770 This function can be used for the auto-casing variables in the ada-mode, to |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1771 adapt to unusal auto-casing schemes. Since it does nothing, you can for |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1772 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
|
1773 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
|
1774 See also `ada-auto-case' to disable auto casing altogether." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1775 ) |
10705 | 1776 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1777 (defun ada-capitalize-word (&optional arg) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1778 "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
|
1779 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
|
1780 (interactive) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1781 (let ((end (save-excursion (skip-syntax-forward "w") (point))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1782 (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
|
1783 (modify-syntax-entry ?_ "_") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1784 (capitalize-region begin end) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1785 (modify-syntax-entry ?_ "w"))) |
10705 | 1786 |
1787 (defun ada-adjust-case-region (from to) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1788 "Adjusts the case of all words in the region between FROM and TO. |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1789 Attention: This function might take very long for big regions !" |
10705 | 1790 (interactive "*r") |
1791 (let ((begin nil) | |
1792 (end nil) | |
1793 (keywordp nil) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1794 (attribp nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1795 (previous-syntax-table (syntax-table))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1796 (message "Adjusting case ...") |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1797 (unwind-protect |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1798 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1799 (set-syntax-table ada-mode-symbol-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1800 (goto-char to) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1801 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1802 ;; loop: look for all identifiers, keywords, and attributes |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1803 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1804 (while (re-search-backward "\\<\\(\\sw+\\)\\>" from t) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1805 (setq end (match-end 1)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1806 (setq attribp |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1807 (and (> (point) from) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1808 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1809 (forward-char -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1810 (setq attribp (looking-at "'.[^']"))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1811 (or |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1812 ;; do nothing if it is a string or comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1813 (ada-in-string-or-comment-p) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1814 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1815 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1816 ;; get the identifier or keyword or attribute |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1817 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1818 (setq begin (point)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1819 (setq keywordp (looking-at ada-keywords)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1820 (goto-char end) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1821 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1822 ;; casing according to user-option |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1823 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1824 (if attribp |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1825 (funcall ada-case-attribute -1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1826 (if keywordp |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1827 (funcall ada-case-keyword -1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1828 (ada-adjust-case-identifier))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1829 (goto-char begin)))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1830 (message "Adjusting case ... Done")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1831 (set-syntax-table previous-syntax-table)))) |
10705 | 1832 |
1833 (defun ada-adjust-case-buffer () | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1834 "Adjusts the case of all words in the whole buffer. |
10705 | 1835 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
|
1836 (interactive "*") |
10705 | 1837 (ada-adjust-case-region (point-min) (point-max))) |
1838 | |
1839 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1840 ;;-------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1841 ;; Format Parameter Lists |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1842 ;; 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
|
1843 ;; 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
|
1844 ;; - 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
|
1845 ;; format: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1846 ;; ( (<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
|
1847 ;; ... ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1848 ;; This is done in `ada-scan-paramlist'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1849 ;; - 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
|
1850 ;; `ada-insert-paramlist'. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1851 ;; 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
|
1852 ;; 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
|
1853 ;; 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
|
1854 ;;-------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1855 |
10705 | 1856 (defun ada-format-paramlist () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1857 "Reformats the parameter list point is in." |
10705 | 1858 (interactive) |
1859 (let ((begin nil) | |
1860 (end nil) | |
1861 (delend nil) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1862 (paramlist nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1863 (previous-syntax-table (syntax-table))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1864 (unwind-protect |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1865 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1866 (set-syntax-table ada-mode-symbol-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1867 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1868 ;; check if really inside parameter list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1869 (or (ada-in-paramlist-p) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1870 (error "not in parameter list")) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1871 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1872 ;; find start of current parameter-list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1873 (ada-search-ignore-string-comment |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
1874 (concat ada-subprog-start-re "\\|\\<body\\>" ) t nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1875 (down-list 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1876 (backward-char 1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1877 (setq begin (point)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1878 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1879 ;; find end of parameter-list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1880 (forward-sexp 1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1881 (setq delend (point)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1882 (delete-char -1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1883 (insert "\n") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1884 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1885 ;; find end of last parameter-declaration |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1886 (forward-comment -1000) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1887 (setq end (point)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1888 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1889 ;; build a list of all elements of the parameter-list |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1890 (setq paramlist (ada-scan-paramlist (1+ begin) end)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1891 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1892 ;; delete the original parameter-list |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
1893 (delete-region begin delend) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1894 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1895 ;; insert the new parameter-list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1896 (goto-char begin) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1897 (ada-insert-paramlist paramlist)) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1898 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1899 ;; restore syntax-table |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1900 (set-syntax-table previous-syntax-table) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
1901 ))) |
10705 | 1902 |
1903 (defun ada-scan-paramlist (begin end) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1904 "Scan the parameter list found in between BEGIN and END. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1905 Returns the equivalent internal parameter list." |
10705 | 1906 (let ((paramlist (list)) |
1907 (param (list)) | |
1908 (notend t) | |
1909 (apos nil) | |
1910 (epos nil) | |
1911 (semipos nil) | |
1912 (match-cons nil)) | |
1913 | |
1914 (goto-char begin) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1915 |
10705 | 1916 ;; loop until end of last parameter |
1917 (while notend | |
1918 | |
1919 ;; find first character of parameter-declaration | |
1920 (ada-goto-next-non-ws) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1921 (setq apos (point)) |
10705 | 1922 |
1923 ;; find last character of parameter-declaration | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1924 (if (setq match-cons |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1925 (ada-search-ignore-string-comment "[ \t\n]*;" nil end t)) |
10705 | 1926 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1927 (setq epos (car match-cons)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1928 (setq semipos (cdr match-cons))) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1929 (setq epos end)) |
10705 | 1930 |
1931 ;; read name(s) of parameter(s) | |
1932 (goto-char apos) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1933 (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
|
1934 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1935 (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
|
1936 (ada-search-ignore-string-comment ":" nil epos t 'search-forward) |
10705 | 1937 |
1938 ;; look for 'in' | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1939 (setq apos (point)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1940 (setq param |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1941 (append param |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1942 (list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1943 (consp |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1944 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1945 "in" nil epos t 'word-search-forward))))) |
10705 | 1946 |
1947 ;; look for 'out' | |
1948 (goto-char apos) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1949 (setq param |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1950 (append param |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1951 (list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1952 (consp |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1953 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1954 "out" nil epos t 'word-search-forward))))) |
10705 | 1955 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1956 ;; look for 'access' |
10705 | 1957 (goto-char apos) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1958 (setq param |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1959 (append param |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1960 (list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1961 (consp |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1962 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1963 "access" nil epos t 'word-search-forward))))) |
10705 | 1964 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
1965 ;; skip 'in'/'out'/'access' |
10705 | 1966 (goto-char apos) |
1967 (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
|
1968 (while (looking-at "\\<\\(in\\|out\\|access\\)\\>") |
10705 | 1969 (forward-word 1) |
1970 (ada-goto-next-non-ws)) | |
1971 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1972 ;; 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
|
1973 ;; 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
|
1974 ;; 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
|
1975 (looking-at "\\<\\(\\sw\\|[_.' \t]\\)+\\>") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1976 (setq param |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1977 (append param |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1978 (list (match-string 0)))) |
10705 | 1979 |
1980 ;; read default-expression, if there is one | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1981 (goto-char (setq apos (match-end 0))) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1982 (setq param |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1983 (append param |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1984 (list |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1985 (if (setq match-cons |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1986 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1987 ":=" nil epos t 'search-forward)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1988 (buffer-substring (car match-cons) epos) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
1989 nil)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1990 |
10705 | 1991 ;; add this parameter-declaration to the list |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1992 (setq paramlist (append paramlist (list param))) |
10705 | 1993 |
1994 ;; check if it was the last parameter | |
1995 (if (eq epos end) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
1996 (setq notend nil) |
10705 | 1997 (goto-char semipos)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
1998 ) |
10705 | 1999 (reverse paramlist))) |
2000 | |
2001 (defun ada-insert-paramlist (paramlist) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2002 "Inserts a formatted PARAMLIST in the buffer." |
10705 | 2003 (let ((i (length paramlist)) |
2004 (parlen 0) | |
2005 (typlen 0) | |
2006 (inp nil) | |
2007 (outp nil) | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2008 (accessp nil) |
10705 | 2009 (column nil) |
2010 (firstcol nil)) | |
2011 | |
2012 ;; loop until last parameter | |
2013 (while (not (zerop i)) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2014 (setq i (1- i)) |
10705 | 2015 |
2016 ;; get max length of parameter-name | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2017 (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
|
2018 |
10705 | 2019 ;; get max length of type-name |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2020 (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
|
2021 |
10705 | 2022 ;; is there any 'in' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2023 (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
|
2024 |
10705 | 2025 ;; is there any 'out' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2026 (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
|
2027 |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2028 ;; is there any 'access' ? |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2029 (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
|
2030 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2031 |
10705 | 2032 ;; does paramlist already start on a separate line ? |
2033 (if (save-excursion | |
2034 (re-search-backward "^.\\|[^ \t]" nil t) | |
2035 (looking-at "^.")) | |
2036 ;; yes => re-indent it | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2037 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2038 (ada-indent-current) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2039 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2040 (if (looking-at "\\(is\\|return\\)") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2041 (replace-match " \\1")))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2042 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2043 ;; 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
|
2044 (fixup-whitespace) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2045 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2046 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2047 ((looking-at "[ \t]*\\(\n\\|;\\)") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2048 (replace-match "\\1")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2049 ((looking-at "[ \t]*\\(is\\|return\\)") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2050 (replace-match " \\1")))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2051 (insert " ")) |
10705 | 2052 |
2053 (insert "(") | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2054 (ada-indent-current) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2055 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2056 (setq firstcol (current-column)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2057 (setq i (length paramlist)) |
10705 | 2058 |
2059 ;; loop until last parameter | |
2060 (while (not (zerop i)) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2061 (setq i (1- i)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2062 (setq column firstcol) |
10705 | 2063 |
2064 ;; insert parameter-name, space and colon | |
2065 (insert (nth 0 (nth i paramlist))) | |
2066 (indent-to (+ column parlen 1)) | |
2067 (insert ": ") | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2068 (setq column (current-column)) |
10705 | 2069 |
2070 ;; insert 'in' or space | |
2071 (if (nth 1 (nth i paramlist)) | |
2072 (insert "in ") | |
2073 (if (and | |
2074 (or inp | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2075 accessp) |
10705 | 2076 (not (nth 3 (nth i paramlist)))) |
2077 (insert " "))) | |
2078 | |
2079 ;; insert 'out' or space | |
2080 (if (nth 2 (nth i paramlist)) | |
2081 (insert "out ") | |
2082 (if (and | |
2083 (or outp | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2084 accessp) |
10705 | 2085 (not (nth 3 (nth i paramlist)))) |
2086 (insert " "))) | |
2087 | |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2088 ;; insert 'access' |
10705 | 2089 (if (nth 3 (nth i paramlist)) |
13231
fb78cec8e440
All doc strings changed to comply with standard Emacs conventions.
Richard M. Stallman <rms@gnu.org>
parents:
13160
diff
changeset
|
2090 (insert "access ")) |
10705 | 2091 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2092 (setq column (current-column)) |
10705 | 2093 |
2094 ;; insert type-name and, if necessary, space and default-expression | |
2095 (insert (nth 4 (nth i paramlist))) | |
2096 (if (nth 5 (nth i paramlist)) | |
2097 (progn | |
2098 (indent-to (+ column typlen 1)) | |
2099 (insert (nth 5 (nth i paramlist))))) | |
2100 | |
2101 ;; 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
|
2102 (if (zerop i) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2103 (insert ")") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2104 ;; no => insert ';' and newline and indent |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2105 (insert ";") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2106 (newline) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2107 (indent-to firstcol)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2108 ) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2109 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2110 ;; if anything follows, except semicolon, newline, is or return |
10705 | 2111 ;; 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
|
2112 (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
|
2113 (ada-indent-newline-indent)) |
10705 | 2114 )) |
2115 | |
2116 | |
2117 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2118 ;;;---------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2119 ;; Indentation Engine |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2120 ;; 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
|
2121 ;; - position of reference in the buffer |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2122 ;; - 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
|
2123 ;; that are evaluated) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2124 ;; 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
|
2125 ;; position plus whatever value the evaluation of the second element provides. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2126 ;; This mechanism is used so that the ada-mode can "explain" how the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2127 ;; 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
|
2128 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2129 ;; 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
|
2130 ;; 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
|
2131 ;; 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
|
2132 ;; based on previous lines. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2133 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2134 ;; The relevant functions for indentation are: |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2135 ;; - `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
|
2136 ;; - `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
|
2137 ;; calculation that were done |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2138 ;; - `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
|
2139 ;; - `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
|
2140 ;; based on the context (see above). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2141 ;; - `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
|
2142 ;; 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
|
2143 ;; context. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2144 ;;;---------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2145 |
10705 | 2146 (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
|
2147 "Indent the region between BEG end END." |
10705 | 2148 (interactive "*r") |
2149 (goto-char beg) | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2150 (let ((block-done 0) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2151 (lines-remaining (count-lines beg end)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2152 (msg (format "%%4d out of %4d lines remaining ..." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2153 (count-lines beg end))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2154 (endmark (copy-marker end))) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2155 ;; catch errors while indenting |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2156 (while (< (point) endmark) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2157 (if (> block-done 39) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2158 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2159 (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
|
2160 block-done 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2161 (message msg lines-remaining))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2162 (if (= (char-after) ?\n) nil |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2163 (ada-indent-current)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2164 (forward-line 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2165 (setq block-done (1+ block-done))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2166 (message "indenting ... done"))) |
10705 | 2167 |
2168 (defun ada-indent-newline-indent () | |
2169 "Indents the current line, inserts a newline and then indents the new line." | |
2170 (interactive "*") | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2171 (ada-indent-current) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2172 (newline) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2173 (ada-indent-current)) |
10705 | 2174 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2175 (defun ada-indent-newline-indent-conditional () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2176 "Insert a newline and indent it. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2177 The original line is indented first if `ada-indent-after-return' is non-nil. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2178 This function is intended to be bound to the \C-m and \C-j keys." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2179 (interactive "*") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2180 (if ada-indent-after-return (ada-indent-current)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2181 (newline) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2182 (ada-indent-current)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2183 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2184 (defun ada-justified-indent-current () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2185 "Indent the current line and explains how the calculation was done." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2186 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2187 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2188 (let ((cur-indent (ada-indent-current))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2189 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2190 (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
|
2191 (goto-char (car cur-indent)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2192 (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
|
2193 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2194 (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
|
2195 (message (concat "same indentation as line " (number-to-string line))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2196 (message (mapconcat (lambda(x) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2197 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2198 ((symbolp x) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2199 (symbol-name x)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2200 ((numberp x) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2201 (number-to-string x)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2202 ((listp x) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2203 (concat "- " (symbol-name (cadr x)))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2204 )) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2205 (cdr cur-indent) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2206 " + ")))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2207 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2208 (goto-char (car cur-indent)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2209 (sit-for 1)))) |
10705 | 2210 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2211 (defun ada-batch-reformat () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2212 "Re-indent and re-case all the files found on the command line. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2213 This function should be used from the Unix/Windows command line, with a |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2214 command like: |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2215 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
|
2216 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2217 (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
|
2218 (let ((source (car command-line-args-left))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2219 (message (concat "formating " source)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2220 (find-file source) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2221 (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
|
2222 (ada-adjust-case-buffer) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2223 (write-file source)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2224 (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
|
2225 (message "Done") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2226 (kill-emacs 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2227 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2228 (defsubst ada-goto-previous-word () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2229 "Moves point to the beginning of the previous word of Ada code. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2230 Returns the new position of point or nil if not found." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2231 (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
|
2232 |
10705 | 2233 (defun ada-indent-current () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2234 "Indent current line as Ada code. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2235 Returns the calculation that was done, including the reference point and the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2236 offset." |
10705 | 2237 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2238 (let ((previous-syntax-table (syntax-table)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2239 (orgpoint (point-marker)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2240 cur-indent tmp-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2241 prev-indent) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2242 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2243 (unwind-protect |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2244 (progn |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2245 (set-syntax-table ada-mode-symbol-syntax-table) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2246 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2247 ;; This need to be done here so that the advice is not always |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2248 ;; activated (this might interact badly with other modes) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
2249 (if (featurep 'xemacs) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2250 (ad-activate 'parse-partial-sexp t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2251 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2252 (save-excursion |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2253 (setq cur-indent |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2254 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2255 ;; Not First line in the buffer ? |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2256 (if (save-excursion (zerop (forward-line -1))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2257 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2258 (back-to-indentation) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2259 (ada-get-current-indent)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2260 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2261 ;; first line in the buffer |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2262 (list (point-min) 0)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2263 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2264 ;; Evaluate the list to get the column to indent to |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2265 ;; prev-indent contains the column to indent to |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2266 (if cur-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2267 (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
|
2268 (current-column)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2269 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
|
2270 (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
|
2271 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2272 (while (not (null tmp-indent)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2273 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2274 ((numberp (car tmp-indent)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2275 (setq prev-indent (+ prev-indent (car tmp-indent)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2276 (t |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2277 (setq prev-indent (+ prev-indent (eval (car tmp-indent))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2278 ) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2279 (setq tmp-indent (cdr tmp-indent))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2280 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2281 ;; only re-indent if indentation is different then the current |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2282 (if (= (save-excursion (back-to-indentation) (current-column)) prev-indent) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2283 nil |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2284 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2285 (delete-horizontal-space) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2286 (indent-to prev-indent)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2287 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2288 ;; restore position of point |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2289 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2290 (goto-char orgpoint) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2291 (if (< (current-column) (current-indentation)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2292 (back-to-indentation))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2293 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2294 ;; restore syntax-table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2295 (set-syntax-table previous-syntax-table) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
2296 (if (featurep 'xemacs) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2297 (ad-deactivate 'parse-partial-sexp)) |
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 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2300 cur-indent |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2301 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2302 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2303 (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
|
2304 "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
|
2305 (let (column |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2306 pos |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2307 match-cons |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2308 result |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2309 (orgpoint (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2310 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2311 (forward-comment -10000) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2312 (forward-line 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2313 (point)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2314 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2315 (setq result |
10705 | 2316 (cond |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2317 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2318 ;;----------------------------- |
10705 | 2319 ;; 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
|
2320 ;;----------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2321 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2322 ((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
|
2323 (not (ada-in-paramlist-p)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2324 (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
|
2325 |
10705 | 2326 ;; 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
|
2327 ;; Source_File_Record) |
10705 | 2328 (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
|
2329 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2330 ;; 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
|
2331 (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
|
2332 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2333 (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
|
2334 (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
|
2335 (list (1- (point)) 0)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2336 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2337 (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
|
2338 (= (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
|
2339 (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
|
2340 (= (char-before) ?>)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2341 ;; ??? 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
|
2342 (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
|
2343 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2344 ;; 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
|
2345 ;; (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
|
2346 ;; 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
|
2347 ;; column as the opening parenthesis. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2348 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2349 ;; 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
|
2350 ;; ((B |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2351 ;; 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
|
2352 ;; or else D) -- indenting this line. |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2353 ;; ??? 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
|
2354 ;; ??? the beginning of the statement |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2355 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2356 (if (= (char-before) ?\)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2357 (backward-sexp)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2358 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2359 (if (memq (char-before) '(?, ?\; ?\( ?\))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2360 (list column 0) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2361 (list column 'ada-continuation-indent) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2362 ))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2363 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2364 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2365 ;; at end of buffer |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2366 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2367 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2368 ((not (char-after)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2369 (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
|
2370 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2371 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2372 ;; starting with e |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2373 ;;--------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2374 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2375 ((= (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
|
2376 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2377 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2378 ;; ------- end ------ |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2379 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2380 ((looking-at "end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2381 (let ((label 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2382 limit) |
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) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2385 |
30411
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 ;; 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
|
2388 ;; 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
|
2389 ;; 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
|
2390 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2391 (if (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2392 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2393 (looking-at ".+\\<loop\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2394 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2395 (save-excursion |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2396 (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
|
2397 (if (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2398 (and |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2399 (setq match-cons |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2400 (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
|
2401 (not (looking-at "\\<loop\\>")))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2402 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2403 (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
|
2404 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2405 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2406 (if (looking-at ada-named-block-re) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2407 (setq label (- ada-label-indent)))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2408 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2409 ;; found 'record' => |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2410 ;; 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
|
2411 ;; 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
|
2412 ;; 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
|
2413 ;; 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
|
2414 ;; 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
|
2415 ;; 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
|
2416 (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
|
2417 (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
|
2418 (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
|
2419 (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
|
2420 (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
|
2421 (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
|
2422 (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
|
2423 0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2424 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2425 ;; 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
|
2426 (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
|
2427 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2428 ;; ------ exception ---- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2429 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2430 ((looking-at "exception\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2431 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2432 (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
|
2433 (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
|
2434 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2435 ;; else |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2436 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2437 ((looking-at "else\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2438 (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
|
2439 (looking-at "\\<or\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2440 (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
|
2441 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2442 (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
|
2443 (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
|
2444 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2445 ;; elsif |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2446 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2447 ((looking-at "elsif\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2448 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2449 (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
|
2450 (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
|
2451 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2452 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2453 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2454 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2455 ;; starting with w (when) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2456 ;;--------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2457 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2458 ((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
|
2459 (looking-at "when\\>")) |
10705 | 2460 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2461 (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
|
2462 (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
|
2463 'ada-when-indent))) |
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 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2466 ;; starting with t (then) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2467 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2468 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2469 ((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
|
2470 (looking-at "then\\>")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2471 (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
|
2472 (looking-at "and\\>")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2473 (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
|
2474 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2475 ;; 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
|
2476 (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
|
2477 "\\<\\(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
|
2478 (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
|
2479 'ada-stmt-end-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2480 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2481 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2482 ;; starting with l (loop) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2483 ;;--------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2484 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2485 ((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
|
2486 (looking-at "loop\\>")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2487 (setq pos (point)) |
10705 | 2488 (save-excursion |
2489 (goto-char (match-end 0)) | |
2490 (ada-goto-stmt-start) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2491 (if (looking-at "\\<\\(loop\\|if\\)\\>") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2492 (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
|
2493 (unless (looking-at ada-loop-start-re) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2494 (ada-search-ignore-string-comment ada-loop-start-re |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2495 nil pos)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2496 (if (looking-at "\\<loop\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2497 (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
|
2498 (list (progn (back-to-indentation) (point)) 'ada-stmt-end-indent))))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2499 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2500 ;;---------------------------- |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2501 ;; 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
|
2502 ;;---------------------------- |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2503 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2504 ((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
|
2505 (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
|
2506 (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
|
2507 (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
|
2508 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2509 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2510 (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
|
2511 "\\<\\(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
|
2512 (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
|
2513 (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
|
2514 '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
|
2515 (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
|
2516 '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
|
2517 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2518 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2519 ;; starting with b (begin) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2520 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2521 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2522 ((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
|
2523 (looking-at "begin\\>")) |
10705 | 2524 (save-excursion |
2525 (if (ada-goto-matching-decl-start t) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2526 (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
|
2527 (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
|
2528 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2529 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2530 ;; starting with i (is) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2531 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2532 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2533 ((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
|
2534 (looking-at "is\\>")) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2535 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2536 (if (and ada-indent-is-separate |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2537 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2538 (goto-char (match-end 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2539 (ada-goto-next-non-ws (save-excursion (end-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2540 (point))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2541 (looking-at "\\<abstract\\>\\|\\<separate\\>"))) |
10705 | 2542 (save-excursion |
2543 (ada-goto-stmt-start) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2544 (list (progn (back-to-indentation) (point)) 'ada-indent)) |
10705 | 2545 (save-excursion |
2546 (ada-goto-stmt-start) | |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2547 (if (looking-at "\\<package\\|procedure\\|function\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2548 (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
|
2549 (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
|
2550 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2551 ;;--------------------------- |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2552 ;; 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
|
2553 ;;--------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2554 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2555 ((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
|
2556 (looking-at "re\\(turn\\|names\\)\\>")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2557 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2558 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2559 (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
|
2560 ;; 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
|
2561 (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
|
2562 (let (pos) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2563 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2564 (set 'pos (ada-search-ignore-string-comment ";\\|return\\>" t))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2565 (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
|
2566 (= (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
|
2567 (goto-char (car pos))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2568 (set 'var 'ada-indent-renames))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2569 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2570 (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
|
2571 (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
|
2572 (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
|
2573 (forward-word -1)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2574 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2575 ;; 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
|
2576 ;; 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
|
2577 (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
|
2578 (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
|
2579 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2580 (or (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2581 (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
|
2582 (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
|
2583 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2584 (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
|
2585 (set 'num-back 2) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2586 (looking-at "\\(function\\|procedure\\)\\>"))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2587 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2588 ;; 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
|
2589 (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
|
2590 (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
|
2591 (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
|
2592 var)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2593 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2594 ;; 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
|
2595 ;; 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
|
2596 ;; 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
|
2597 (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
|
2598 (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
|
2599 (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
|
2600 (list (progn (forward-word -1) (point)) var) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2601 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2602 ;; Else... |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2603 (ada-indent-on-previous-lines nil orgpoint orgpoint))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2604 |
30411
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 ;; 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
|
2607 ;; 'or' as statement-start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2608 ;; 'private' as statement-start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2609 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2610 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2611 ((and (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
|
2612 (= (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
|
2613 (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
|
2614 (ada-looking-at-semi-private))) |
10705 | 2615 (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
|
2616 ;; ??? 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
|
2617 (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
|
2618 (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
|
2619 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2620 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2621 ;; starting with 'd' (do) |
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 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2624 ((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
|
2625 (looking-at "do\\>")) |
10705 | 2626 (save-excursion |
2627 (ada-goto-stmt-start) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2628 (list (progn (back-to-indentation) (point)) 'ada-stmt-end-indent))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2629 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2630 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2631 ;; starting with '-' (comment) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2632 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2633 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2634 ((= (char-after) ?-) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2635 (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
|
2636 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2637 ;; 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
|
2638 ;; 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
|
2639 ;; 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
|
2640 (let (pos) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2641 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2642 (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
|
2643 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2644 (forward-line -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2645 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2646 (while (and (not pos) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2647 (search-forward "--" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2648 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2649 (end-of-line) (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2650 t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2651 (unless (ada-in-string-p) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2652 (setq pos (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2653 pos)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2654 (list (- pos 2) 0) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2655 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2656 ;; 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
|
2657 (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
|
2658 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2659 ;; Else same indentation as the previous line |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2660 (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
|
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 ;; starting with '#' (preprocessor line) |
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 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2666 ((and (= (char-after) ?#) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2667 (equal ada-which-compiler 'gnat) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2668 (looking-at "#[ \t]*\\(if\\|els\\(e\\|if\\)\\|end[ \t]*if\\)")) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2669 (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
|
2670 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2671 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2672 ;; 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
|
2673 ;;-------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2674 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2675 ((and (not (eobp)) (= (char-after) ?\))) |
10705 | 2676 (save-excursion |
2677 (forward-char 1) | |
2678 (backward-sexp 1) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2679 (list (point) 0))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2680 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2681 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2682 ;; new/abstract/separate |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2683 ;;--------------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
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 ((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
|
2686 (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
|
2687 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2688 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2689 ;; package/function/procedure |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2690 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2691 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2692 ((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
|
2693 (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
|
2694 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2695 ;; Go up until we find either a generic section, or the end of the |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2696 ;; previous subprogram/package |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2697 (let (found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2698 (while (and (not found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2699 (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
|
2700 "\\<\\(generic\\|end\\|begin\\|package\\|procedure\\|function\\)\\>" t)) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2701 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2702 ;; 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
|
2703 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2704 (forward-word -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2705 (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
|
2706 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2707 (if (looking-at "generic") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2708 (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
|
2709 (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
|
2710 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2711 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2712 ;; label |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2713 ;;--------------------------------- |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
2714 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2715 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2716 (if (ada-in-decl-p) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2717 (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
|
2718 (append (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
|
2719 '(ada-label-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2720 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2721 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2722 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2723 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2724 ;; Other syntaxes |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2725 ;;--------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2726 (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
|
2727 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2728 (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
|
2729 "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
|
2730 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
|
2731 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
|
2732 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
|
2733 (if initial-pos |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2734 (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
|
2735 (let ((oldpoint (point))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2736 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2737 ;; Is inside a parameter-list ? |
10705 | 2738 (if (ada-in-paramlist-p) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2739 (ada-get-indent-paramlist) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2740 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2741 ;; move to beginning of current statement |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2742 (unless nomove |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2743 (ada-goto-stmt-start)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2744 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2745 ;; 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
|
2746 (if (and (eq oldpoint (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2747 (not nomove)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2748 (ada-get-indent-nochange) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2749 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2750 (cond |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2751 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2752 ((and |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2753 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
|
2754 (ada-in-open-paren-p)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2755 (ada-get-indent-open-paren)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2756 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2757 ((looking-at "end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2758 (ada-get-indent-end orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2759 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2760 ((looking-at ada-loop-start-re) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2761 (ada-get-indent-loop orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2762 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2763 ((looking-at ada-subprog-start-re) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2764 (ada-get-indent-subprog orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2765 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2766 ((looking-at ada-block-start-re) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2767 (ada-get-indent-block-start orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2768 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2769 ((looking-at "\\(sub\\)?type\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2770 (ada-get-indent-type orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2771 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2772 ;; "then" has to be included in the case of "select...then abort" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2773 ;; statements, since (goto-stmt-start) at the beginning of |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2774 ;; the current function would leave the cursor on that position |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2775 ((looking-at "\\(\\(els\\)?if\\>\\)\\|then abort\\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2776 (ada-get-indent-if orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2777 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2778 ((looking-at "case\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2779 (ada-get-indent-case orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2780 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2781 ((looking-at "when\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2782 (ada-get-indent-when orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2783 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2784 ((looking-at "\\(\\sw\\|_\\)+[ \t\n]*:[^=]") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2785 (ada-get-indent-label orgpoint)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2786 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2787 ((looking-at "separate\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2788 (ada-get-indent-nochange)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2789 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2790 ;; A label |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2791 ((looking-at "<<") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2792 (list (+ (save-excursion (back-to-indentation) (point)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
2793 (- ada-label-indent)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
2794 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2795 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2796 ((looking-at "with\\>\\|use\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2797 ;; 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
|
2798 ;; the previous one ? |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2799 (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
|
2800 (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
|
2801 (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
|
2802 'ada-with-indent |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2803 'ada-use-indent)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2804 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2805 (t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2806 (ada-get-indent-noindent orgpoint))))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2807 )) |
10705 | 2808 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2809 (defun ada-get-indent-open-paren () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2810 "Calculates 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
|
2811 (list (ada-in-open-paren-p) 0)) |
10705 | 2812 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2813 (defun ada-get-indent-nochange () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2814 "Return the current indentation of the previous line." |
10705 | 2815 (save-excursion |
2816 (forward-line -1) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2817 (back-to-indentation) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2818 (list (point) 0))) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2819 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2820 (defun ada-get-indent-paramlist () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2821 "Calculates the indentation when point is inside a parameter list." |
10705 | 2822 (save-excursion |
2823 (ada-search-ignore-string-comment "[^ \t\n]" t nil t) | |
2824 (cond | |
2825 ;; 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
|
2826 ((= (char-after) ?\() |
10705 | 2827 (goto-char (match-end 0)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2828 (list (point) 0)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2829 |
10705 | 2830 ;; in front of another parameter |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2831 ((= (char-after) ?\;) |
10705 | 2832 (goto-char (cdr (ada-search-ignore-string-comment "(\\|;" t nil t))) |
2833 (ada-goto-next-non-ws) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2834 (list (point) 0)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2835 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2836 ;; 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
|
2837 ;; declaration) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2838 ((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
|
2839 (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
|
2840 (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
|
2841 |
10705 | 2842 ;; inside a parameter declaration |
2843 (t | |
2844 (goto-char (cdr (ada-search-ignore-string-comment "(\\|;" t nil t))) | |
2845 (ada-goto-next-non-ws) | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2846 (list (point) 0))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2847 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2848 (defun ada-get-indent-end (orgpoint) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2849 "Calculates the indentation when point is just before an end_statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2850 ORGPOINT is the limit position used in the calculation." |
10705 | 2851 (let ((defun-name nil) |
2852 (indent nil)) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2853 |
10705 | 2854 ;; is the line already terminated by ';' ? |
2855 (if (save-excursion | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2856 (ada-search-ignore-string-comment ";" nil orgpoint nil |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2857 'search-forward)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2858 |
10705 | 2859 ;; yes, look what's following 'end' |
2860 (progn | |
2861 (forward-word 1) | |
2862 (ada-goto-next-non-ws) | |
2863 (cond | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2864 ((looking-at "\\<\\(loop\\|select\\|if\\|case\\)\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2865 (save-excursion (ada-check-matching-start (match-string 0))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2866 (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
|
2867 |
10705 | 2868 ;; |
2869 ;; loop/select/if/case/record/select | |
2870 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2871 ((looking-at "\\<record\\>") |
10705 | 2872 (save-excursion |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2873 (ada-check-matching-start (match-string 0)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2874 ;; we are now looking at the matching "record" statement |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2875 (forward-word 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2876 (ada-goto-stmt-start) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2877 ;; now on the matching type declaration, or use clause |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2878 (unless (looking-at "\\(for\\|type\\)\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2879 (ada-search-ignore-string-comment "\\<type\\>" t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2880 (list (progn (back-to-indentation) (point)) 0))) |
10705 | 2881 ;; |
2882 ;; a named block end | |
2883 ;; | |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
2884 ((looking-at ada-ident-re) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2885 (setq defun-name (match-string 0)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2886 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2887 (ada-goto-matching-start 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2888 (ada-check-defun-name defun-name)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2889 (list (progn (back-to-indentation) (point)) 0)) |
10705 | 2890 ;; |
2891 ;; a block-end without name | |
2892 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2893 ((= (char-after) ?\;) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2894 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2895 (ada-goto-matching-start 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2896 (if (looking-at "\\<begin\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2897 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2898 (setq indent (list (point) 0)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2899 (if (ada-goto-matching-decl-start t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2900 (list (progn (back-to-indentation) (point)) 0) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2901 indent)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2902 (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
|
2903 ))) |
10705 | 2904 ;; |
2905 ;; anything else - should maybe signal an error ? | |
2906 ;; | |
2907 (t | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2908 (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
|
2909 'ada-broken-indent)))) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2910 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2911 (list (save-excursion (back-to-indentation) (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2912 'ada-broken-indent)))) |
10705 | 2913 |
2914 (defun ada-get-indent-case (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2915 "Calculates the indentation when point is just before a case statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2916 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
|
2917 (let ((match-cons nil) |
10705 | 2918 (opos (point))) |
2919 (cond | |
2920 ;; | |
2921 ;; case..is..when..=> | |
2922 ;; | |
2923 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2924 (setq match-cons (and |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2925 ;; the `=>' must be after the keyword `is'. |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2926 (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2927 "is" nil orgpoint nil 'word-search-forward) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2928 (ada-search-ignore-string-comment |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
2929 "[ \t\n]+=>" nil orgpoint)))) |
10705 | 2930 (save-excursion |
2931 (goto-char (car match-cons)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2932 (unless (ada-search-ignore-string-comment "when" t opos) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2933 (error "missing 'when' between 'case' and '=>'")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2934 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))) |
10705 | 2935 ;; |
2936 ;; case..is..when | |
2937 ;; | |
2938 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2939 (setq match-cons (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2940 "when" nil orgpoint nil 'word-search-forward))) |
10705 | 2941 (goto-char (cdr match-cons)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2942 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
10705 | 2943 ;; |
2944 ;; case..is | |
2945 ;; | |
2946 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2947 (setq match-cons (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2948 "is" nil orgpoint nil 'word-search-forward))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2949 (list (save-excursion (back-to-indentation) (point)) 'ada-when-indent)) |
10705 | 2950 ;; |
2951 ;; incomplete case | |
2952 ;; | |
2953 (t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2954 (list (save-excursion (back-to-indentation) (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2955 'ada-broken-indent))))) |
10705 | 2956 |
2957 (defun ada-get-indent-when (orgpoint) | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2958 "Calculates 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
|
2959 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
|
2960 (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
|
2961 (if (ada-search-ignore-string-comment "[ \t\n]*=>" nil orgpoint) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2962 (list cur-indent 'ada-indent) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2963 (list cur-indent 'ada-broken-indent)))) |
10705 | 2964 |
2965 (defun ada-get-indent-if (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2966 "Calculates the indentation when point is just before an if statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2967 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
|
2968 (let ((cur-indent (save-excursion (back-to-indentation) (point))) |
10705 | 2969 (match-cons nil)) |
2970 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2971 ;; Move to the correct then (ignore all "and then") |
10705 | 2972 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2973 (while (and (setq match-cons (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2974 "\\<\\(then\\|and[ \t]*then\\)\\>" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2975 nil orgpoint)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
2976 (= (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
|
2977 ;; 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
|
2978 (if match-cons |
10705 | 2979 (progn |
2980 ;; | |
2981 ;; 'then' first in separate line ? | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2982 ;; => indent according to 'then', |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2983 ;; => else indent according to 'if' |
10705 | 2984 ;; |
2985 (if (save-excursion | |
2986 (back-to-indentation) | |
2987 (looking-at "\\<then\\>")) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
2988 (setq cur-indent (save-excursion (back-to-indentation) (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2989 ;; skip 'then' |
10705 | 2990 (forward-word 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
2991 (list cur-indent 'ada-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2992 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
2993 (list cur-indent 'ada-broken-indent)))) |
10705 | 2994 |
2995 (defun ada-get-indent-block-start (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2996 "Calculates the indentation when point is at the start of a block. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
2997 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
|
2998 (let ((pos nil)) |
10705 | 2999 (cond |
3000 ((save-excursion | |
3001 (forward-word 1) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3002 (setq pos (ada-goto-next-non-ws orgpoint))) |
10705 | 3003 (goto-char pos) |
3004 (save-excursion | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3005 (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
|
3006 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3007 ;; 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
|
3008 ;; 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
|
3009 ;; 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
|
3010 ;; 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
|
3011 ((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
|
3012 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3013 ;; 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
|
3014 (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
|
3015 (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
|
3016 (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
|
3017 (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
|
3018 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3019 ;; 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
|
3020 (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
|
3021 (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
|
3022 'ada-indent))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3023 |
10705 | 3024 ;; nothing follows the block-start |
3025 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3026 (list (save-excursion (back-to-indentation) (point)) 'ada-indent))))) |
10705 | 3027 |
3028 (defun ada-get-indent-subprog (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3029 "Calculates the indentation when point is just before a subprogram. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3030 ORGPOINT is the limit position used in the calculation." |
10705 | 3031 (let ((match-cons nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3032 (cur-indent (save-excursion (back-to-indentation) (point))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3033 (foundis nil)) |
10705 | 3034 ;; |
3035 ;; is there an 'is' in front of point ? | |
3036 ;; | |
3037 (if (save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3038 (setq match-cons |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3039 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3040 "\\<\\(is\\|do\\)\\>" nil orgpoint))) |
10705 | 3041 ;; |
3042 ;; yes, then skip to its end | |
3043 ;; | |
3044 (progn | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3045 (setq foundis t) |
10705 | 3046 (goto-char (cdr match-cons))) |
3047 ;; | |
3048 ;; no, then goto next non-ws, if there is one in front of point | |
3049 ;; | |
3050 (progn | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3051 (unless (ada-goto-next-non-ws orgpoint) |
10705 | 3052 (goto-char orgpoint)))) |
3053 | |
3054 (cond | |
3055 ;; | |
3056 ;; nothing follows 'is' | |
3057 ;; | |
3058 ((and | |
3059 foundis | |
3060 (save-excursion | |
3061 (not (ada-search-ignore-string-comment | |
3062 "[^ \t\n]" nil orgpoint t)))) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3063 (list cur-indent 'ada-indent)) |
10705 | 3064 ;; |
3065 ;; is abstract/separate/new ... | |
3066 ;; | |
3067 ((and | |
3068 foundis | |
3069 (save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3070 (setq match-cons |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3071 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3072 "\\<\\(separate\\|new\\|abstract\\)\\>" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3073 nil orgpoint)))) |
10705 | 3074 (goto-char (car match-cons)) |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
3075 (ada-search-ignore-string-comment ada-subprog-start-re t) |
10705 | 3076 (ada-get-indent-noindent orgpoint)) |
3077 ;; | |
3078 ;; something follows 'is' | |
3079 ;; | |
3080 ((and | |
3081 foundis | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3082 (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
|
3083 (goto-char match-cons) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3084 (ada-indent-on-previous-lines t orgpoint))) |
10705 | 3085 ;; |
3086 ;; no 'is' but ';' | |
3087 ;; | |
3088 ((save-excursion | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3089 (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
|
3090 (list cur-indent 0)) |
10705 | 3091 ;; |
3092 ;; no 'is' or ';' | |
3093 ;; | |
3094 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3095 (list cur-indent 'ada-broken-indent))))) |
10705 | 3096 |
3097 (defun ada-get-indent-noindent (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3098 "Calculates the indentation when point is just before a 'noindent stmt'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3099 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
|
3100 (let ((label 0)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3101 (save-excursion |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3102 (beginning-of-line) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3103 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3104 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3105 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3106 ;; 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
|
3107 ;; 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
|
3108 ;; the parameter declaration list) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3109 ((ada-in-paramlist-p) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3110 (ada-previous-procedure) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3111 (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
|
3112 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3113 ;; 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
|
3114 ;; 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
|
3115 ((looking-at "[ \t]*\\(\\sw\\|_\\)*[ \t]*,[ \t]*$") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3116 (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
|
3117 'ada-broken-decl-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3118 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3119 ;; This one is called in every over case when indenting a line at the |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3120 ;; top level |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3121 (t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3122 (if (looking-at ada-named-block-re) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3123 (setq label (- ada-label-indent)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3124 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3125 (let (p) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3126 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3127 ;; "with private" or "null record" cases |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3128 (if (or (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3129 (and (ada-search-ignore-string-comment "\\<private\\>" nil orgpoint) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3130 (setq p (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3131 (save-excursion (forward-char -7);; skip back "private" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3132 (ada-goto-previous-word) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3133 (looking-at "with")))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3134 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3135 (and (ada-search-ignore-string-comment "\\<record\\>" nil orgpoint) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3136 (setq p (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3137 (save-excursion (forward-char -6);; skip back "record" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3138 (ada-goto-previous-word) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3139 (looking-at "null"))))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3140 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3141 (goto-char p) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3142 (re-search-backward "\\<\\(type\\|subtype\\)\\>" nil t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3143 (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
|
3144 (if (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3145 (ada-search-ignore-string-comment ";" nil orgpoint nil |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3146 'search-forward)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3147 (list (+ (save-excursion (back-to-indentation) (point)) label) 0) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3148 (list (+ (save-excursion (back-to-indentation) (point)) label) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3149 'ada-broken-indent))))))) |
10705 | 3150 |
3151 (defun ada-get-indent-label (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3152 "Calculates the indentation when before a label or variable declaration. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3153 ORGPOINT is the limit position used in the calculation." |
10705 | 3154 (let ((match-cons nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3155 (cur-indent (save-excursion (back-to-indentation) (point)))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3156 (ada-search-ignore-string-comment ":" nil) |
10705 | 3157 (cond |
3158 ;; loop label | |
3159 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3160 (setq match-cons (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
|
3161 ada-loop-start-re nil orgpoint))) |
10705 | 3162 (goto-char (car match-cons)) |
3163 (ada-get-indent-loop orgpoint)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3164 |
10705 | 3165 ;; declare label |
3166 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3167 (setq match-cons (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
|
3168 "\\<declare\\|begin\\>" nil orgpoint))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3169 (goto-char (car match-cons)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3170 (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
|
3171 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3172 ;; variable declaration |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3173 ((ada-in-decl-p) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3174 (if (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3175 (ada-search-ignore-string-comment ";" nil orgpoint)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3176 (list cur-indent 0) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3177 (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
|
3178 |
10705 | 3179 ;; nothing follows colon |
3180 (t | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3181 (list cur-indent '(- ada-label-indent)))))) |
10705 | 3182 |
3183 (defun ada-get-indent-loop (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3184 "Calculates the indentation when just before a loop or a for ... use. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3185 ORGPOINT is the limit position used in the calculation." |
10705 | 3186 (let ((match-cons nil) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3187 (pos (point)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3188 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3189 ;; If looking at a named block, skip the label |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3190 (label (save-excursion |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3191 (beginning-of-line) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3192 (if (looking-at ada-named-block-re) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3193 (- ada-label-indent) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3194 0)))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3195 |
10705 | 3196 (cond |
3197 | |
3198 ;; | |
3199 ;; statement complete | |
3200 ;; | |
3201 ((save-excursion | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3202 (ada-search-ignore-string-comment ";" nil orgpoint nil |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3203 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3204 (list (+ (save-excursion (back-to-indentation) (point)) label) 0)) |
10705 | 3205 ;; |
3206 ;; simple loop | |
3207 ;; | |
3208 ((looking-at "loop\\>") | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3209 (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
|
3210 (if (equal label 0) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3211 pos |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3212 (list (+ (car pos) label) (cdr pos)))) |
10705 | 3213 |
3214 ;; | |
3215 ;; 'for'- loop (or also a for ... use statement) | |
3216 ;; | |
3217 ((looking-at "for\\>") | |
3218 (cond | |
3219 ;; | |
3220 ;; for ... use | |
3221 ;; | |
3222 ((save-excursion | |
3223 (and | |
3224 (goto-char (match-end 0)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3225 (ada-goto-next-non-ws orgpoint) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3226 (forward-word 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3227 (if (= (char-after) ?') (forward-word 1) t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3228 (ada-goto-next-non-ws orgpoint) |
10705 | 3229 (looking-at "\\<use\\>") |
3230 ;; | |
3231 ;; check if there is a 'record' before point | |
3232 ;; | |
3233 (progn | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3234 (setq match-cons (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3235 "record" nil orgpoint nil 'word-search-forward)) |
10705 | 3236 t))) |
3237 (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
|
3238 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3239 (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
|
3240 (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
|
3241 (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
|
3242 ) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3243 |
10705 | 3244 ;; |
3245 ;; for..loop | |
3246 ;; | |
3247 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3248 (setq match-cons (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3249 "loop" nil orgpoint nil 'word-search-forward))) |
10705 | 3250 (goto-char (car match-cons)) |
3251 ;; | |
3252 ;; indent according to 'loop', if it's first in the line; | |
3253 ;; otherwise to 'for' | |
3254 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3255 (unless (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3256 (back-to-indentation) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3257 (looking-at "\\<loop\\>")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3258 (goto-char pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3259 (list (+ (save-excursion (back-to-indentation) (point)) label) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3260 'ada-indent)) |
10705 | 3261 ;; |
3262 ;; for-statement is broken | |
3263 ;; | |
3264 (t | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3265 (list (+ (save-excursion (back-to-indentation) (point)) label) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3266 'ada-broken-indent)))) |
10705 | 3267 |
3268 ;; | |
3269 ;; 'while'-loop | |
3270 ;; | |
3271 ((looking-at "while\\>") | |
3272 ;; | |
3273 ;; while..loop ? | |
3274 ;; | |
3275 (if (save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3276 (setq match-cons (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3277 "loop" nil orgpoint nil 'word-search-forward))) |
10705 | 3278 |
3279 (progn | |
3280 (goto-char (car match-cons)) | |
3281 ;; | |
3282 ;; indent according to 'loop', if it's first in the line; | |
3283 ;; otherwise to 'while'. | |
3284 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3285 (unless (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3286 (back-to-indentation) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3287 (looking-at "\\<loop\\>")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3288 (goto-char pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3289 (list (+ (save-excursion (back-to-indentation) (point)) label) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3290 'ada-indent)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3291 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3292 (list (+ (save-excursion (back-to-indentation) (point)) label) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3293 'ada-broken-indent)))))) |
10705 | 3294 |
3295 (defun ada-get-indent-type (orgpoint) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3296 "Calculates the indentation when before a type statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3297 ORGPOINT is the limit position used in the calculation." |
10705 | 3298 (let ((match-dat nil)) |
3299 (cond | |
3300 ;; | |
3301 ;; complete record declaration | |
3302 ;; | |
3303 ((save-excursion | |
3304 (and | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3305 (setq match-dat (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3306 "end" nil orgpoint nil 'word-search-forward)) |
10705 | 3307 (ada-goto-next-non-ws) |
3308 (looking-at "\\<record\\>") | |
3309 (forward-word 1) | |
3310 (ada-goto-next-non-ws) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3311 (= (char-after) ?\;))) |
10705 | 3312 (goto-char (car match-dat)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3313 (list (save-excursion (back-to-indentation) (point)) 0)) |
10705 | 3314 ;; |
3315 ;; record type | |
3316 ;; | |
3317 ((save-excursion | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3318 (setq match-dat (ada-search-ignore-string-comment |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3319 "record" nil orgpoint nil 'word-search-forward))) |
10705 | 3320 (goto-char (car match-dat)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3321 (list (save-excursion (back-to-indentation) (point)) 'ada-indent)) |
10705 | 3322 ;; |
3323 ;; complete type declaration | |
3324 ;; | |
3325 ((save-excursion | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3326 (ada-search-ignore-string-comment ";" nil orgpoint nil |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3327 'search-forward)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3328 (list (save-excursion (back-to-indentation) (point)) 0)) |
10705 | 3329 ;; |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
3330 ;; "type ... is", but not "type ... is ...", which is broken |
10705 | 3331 ;; |
3332 ((save-excursion | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3333 (and |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3334 (ada-search-ignore-string-comment "is" nil orgpoint nil |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3335 'word-search-forward) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3336 (not (ada-goto-next-non-ws orgpoint)))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3337 (list (save-excursion (back-to-indentation) (point)) 'ada-broken-indent)) |
10705 | 3338 ;; |
3339 ;; broken statement | |
3340 ;; | |
3341 (t | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3342 (list (save-excursion (back-to-indentation) (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3343 'ada-broken-indent))))) |
10705 | 3344 |
3345 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3346 ;; ----------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3347 ;; -- searching and matching |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3348 ;; ----------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3349 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3350 (defun ada-goto-stmt-start () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3351 "Moves point to the beginning of the statement that point is in or after. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3352 Returns the new position of point. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3353 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
|
3354 open parenthesis." |
10705 | 3355 (let ((match-dat nil) |
3356 (orgpoint (point))) | |
3357 | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3358 (setq match-dat (ada-search-prev-end-stmt)) |
10705 | 3359 (if match-dat |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3360 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3361 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3362 ;; 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
|
3363 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3364 (unless (looking-at "declare") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3365 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3366 (unless (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3367 (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
|
3368 (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
|
3369 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3370 ;; 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
|
3371 ;; 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
|
3372 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3373 (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
|
3374 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3375 ;; 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
|
3376 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3377 (if match-dat |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3378 (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
|
3379 (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
|
3380 )) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3381 |
10705 | 3382 ;; |
3383 ;; no previous end-statement => we are at the beginning of the | |
3384 ;; accessible part of the buffer | |
3385 ;; | |
3386 (progn | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3387 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3388 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3389 ;; skip to the very first statement, if there is one |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3390 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3391 (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
|
3392 (goto-char orgpoint)))) |
10705 | 3393 (point))) |
3394 | |
3395 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3396 (defun ada-search-prev-end-stmt () |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3397 "Moves point to previous end-statement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3398 Returns a cons cell whose car is the beginning and whose cdr the end of the |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3399 match." |
10705 | 3400 (let ((match-dat nil) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3401 (found nil)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3402 |
10705 | 3403 ;; search until found or beginning-of-buffer |
3404 (while | |
3405 (and | |
3406 (not found) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3407 (setq match-dat (ada-search-ignore-string-comment |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3408 ada-end-stmt-re t))) |
10705 | 3409 |
3410 (goto-char (car match-dat)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3411 (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
|
3412 (cond |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3413 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3414 ((and (looking-at |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3415 "\\<\\(record\\|loop\\|select\\|else\\|then\\)\\>") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3416 (save-excursion |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3417 (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3418 (looking-at "\\<\\(end\\|or\\|and\\)\\>[ \t]*[^;]"))) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3419 (forward-word -1)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3420 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3421 ((looking-at "is") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3422 (setq found |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3423 (and (save-excursion (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3424 (ada-goto-previous-word) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3425 (not (looking-at "subtype"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3426 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3427 (save-excursion (goto-char (cdr match-dat)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3428 (ada-goto-next-non-ws) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3429 ;; words that can go after an 'is' |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3430 (not (looking-at |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3431 (eval-when-compile |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3432 (concat "\\<" |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3433 (regexp-opt |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3434 '("separate" "access" "array" |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3435 "abstract" "new") t) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3436 "\\>\\|(")))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3437 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3438 (t |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3439 (setq found t)) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3440 ))) |
10705 | 3441 |
3442 (if found | |
3443 match-dat | |
3444 nil))) | |
3445 | |
3446 | |
3447 (defun ada-goto-next-non-ws (&optional limit) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3448 "Skips white spaces, newlines and comments to next non-ws character. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3449 Stop the search at LIMIT. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3450 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
|
3451 (unless limit |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3452 (setq limit (point-max))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3453 (while (and (<= (point) limit) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3454 (progn (forward-comment 10000) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3455 (if (and (not (eobp)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3456 (save-excursion (forward-char 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3457 (ada-in-string-p))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3458 (progn (forward-sexp 1) t))))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3459 (if (< (point) limit) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3460 (point) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3461 nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3462 ) |
10705 | 3463 |
3464 | |
3465 (defun ada-goto-stmt-end (&optional limit) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3466 "Moves point to the end of the statement that point is in or before. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3467 Returns the new position of point or nil if not found. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3468 Stop the search at LIMIT." |
10705 | 3469 (if (ada-search-ignore-string-comment ada-end-stmt-re nil limit) |
3470 (point) | |
3471 nil)) | |
3472 | |
3473 | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3474 (defun ada-goto-next-word (&optional backward) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3475 "Moves point to the beginning of the next word of Ada code. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3476 If BACKWARD is non-nil, jump to the beginning of the previous word. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3477 Returns the new position of point or nil if not found." |
10705 | 3478 (let ((match-cons nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3479 (orgpoint (point)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3480 (old-syntax (char-to-string (char-syntax ?_)))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3481 (modify-syntax-entry ?_ "w") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3482 (unless backward |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3483 (skip-syntax-forward "w")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3484 (if (setq match-cons |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3485 (if backward |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3486 (ada-search-ignore-string-comment "\\w" t nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3487 (ada-search-ignore-string-comment "\\w" nil nil t))) |
10705 | 3488 ;; |
3489 ;; move to the beginning of the word found | |
3490 ;; | |
3491 (progn | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3492 (goto-char (car match-cons)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3493 (skip-syntax-backward "w") |
10705 | 3494 (point)) |
3495 ;; | |
3496 ;; if not found, restore old position of point | |
3497 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3498 (goto-char orgpoint) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3499 'nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3500 (modify-syntax-entry ?_ old-syntax)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3501 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3502 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3503 |
10705 | 3504 (defun ada-check-matching-start (keyword) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3505 "Signals an error if matching block start is not KEYWORD. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3506 Moves point to the matching block start." |
10705 | 3507 (ada-goto-matching-start 0) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3508 (unless (looking-at (concat "\\<" keyword "\\>")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3509 (error "matching start is not '%s'" keyword))) |
10705 | 3510 |
3511 | |
3512 (defun ada-check-defun-name (defun-name) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3513 "Checks if the name of the matching defun really is DEFUN-NAME. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3514 Assumes point to be already positioned by 'ada-goto-matching-start'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3515 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
|
3516 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3517 ;; named block without a `declare' |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3518 (if (save-excursion |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3519 (ada-goto-previous-word) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3520 (looking-at (concat "\\<" defun-name "\\> *:"))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3521 t ; do nothing |
10705 | 3522 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3523 ;; 'accept' or 'package' ? |
10705 | 3524 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3525 (unless (looking-at ada-subprog-start-re) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3526 (ada-goto-matching-decl-start)) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3527 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3528 ;; '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
|
3529 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3530 (save-excursion |
10705 | 3531 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3532 ;; a named 'declare'-block ? |
10705 | 3533 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3534 (if (looking-at "\\<declare\\>") |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3535 (ada-goto-stmt-start) |
10705 | 3536 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3537 ;; no, => 'procedure'/'function'/'task'/'protected' |
10705 | 3538 ;; |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3539 (progn |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3540 (forward-word 2) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3541 (backward-word 1) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3542 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3543 ;; skip 'body' 'type' |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3544 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3545 (if (looking-at "\\<\\(body\\|type\\)\\>") |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3546 (forward-word 1)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3547 (forward-sexp 1) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3548 (backward-sexp 1))) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3549 ;; |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3550 ;; 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
|
3551 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3552 (unless (looking-at (concat "\\<" defun-name "\\>")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3553 (error "matching defun has different name: %s" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3554 (buffer-substring (point) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3555 (progn (forward-sexp 1) (point)))))))) |
10705 | 3556 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3557 (defun ada-goto-matching-decl-start (&optional noerror recursive) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3558 "Moves point to the matching declaration start of the current 'begin'. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3559 If NOERROR is non-nil, it only returns nil if no match was found." |
10705 | 3560 (let ((nest-count 1) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3561 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3562 ;; 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
|
3563 ;; "begin" we encounter. |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3564 (first (not recursive)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3565 (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
|
3566 (stop-at-when nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3567 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3568 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3569 ;; 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
|
3570 ;; 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
|
3571 ;; when ... => |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3572 ;; begin ... |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3573 ;; exception ... ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3574 (if (looking-at "begin") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3575 (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
|
3576 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3577 (if (or |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3578 (looking-at "\\<\\(package\\|procedure\\|function\\)\\>") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3579 (save-excursion |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3580 (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
|
3581 "\\<\\(package\\|procedure\\|function\\|generic\\)\\>" t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3582 (looking-at "generic"))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3583 (setq count-generic t)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3584 |
10705 | 3585 ;; search backward for interesting keywords |
3586 (while (and | |
3587 (not (zerop nest-count)) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3588 (ada-search-ignore-string-comment ada-matching-decl-start-re t)) |
10705 | 3589 ;; |
3590 ;; calculate nest-depth | |
3591 ;; | |
3592 (cond | |
3593 ;; | |
3594 ((looking-at "end") | |
3595 (ada-goto-matching-start 1 noerror) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3596 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3597 ;; In some case, two begin..end block can follow each other closely, |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3598 ;; which we have to detect, as in |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3599 ;; procedure P is |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3600 ;; procedure Q is |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3601 ;; begin |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3602 ;; end; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3603 ;; begin -- here we should go to procedure, not begin |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3604 ;; end |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3605 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3606 (if (looking-at "begin") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3607 (let ((loop-again t)) |
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 (while loop-again |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3610 ;; If begin was just there as the beginning of a block |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3611 ;; (with no declare) then do nothing, otherwise just |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3612 ;; register that we have to find the statement that |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3613 ;; required the begin |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3614 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3615 (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
|
3616 "\\<\\(declare\\|begin\\|end\\|procedure\\|function\\|task\\|package\\)\\>" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3617 t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3618 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3619 (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
|
3620 (ada-goto-matching-start 1 noerror t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3621 ;; (ada-goto-matching-decl-start noerror t) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3622 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3623 (setq loop-again nil) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3624 (unless (looking-at "begin") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3625 (setq nest-count (1+ nest-count)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3626 )) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3627 ))) |
10705 | 3628 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3629 ((looking-at "generic") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3630 (if count-generic |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3631 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3632 (setq first nil) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3633 (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
|
3634 ;; |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3635 ((looking-at "if") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3636 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3637 (forward-word -1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3638 (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
|
3639 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3640 (setq nest-count (1- nest-count)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3641 (setq first nil))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
3642 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3643 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3644 ((looking-at "declare\\|generic") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3645 (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
|
3646 (setq first t)) |
10705 | 3647 ;; |
3648 ((looking-at "is") | |
12586
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
3649 ;; check if it is only a type definition, but not a protected |
f8bbc7a3b87a
(ada-ident-re): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12053
diff
changeset
|
3650 ;; type definition, which should be handled like a procedure. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3651 (if (or (looking-at "is[ \t]+<>") |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3652 (save-excursion |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3653 (forward-comment -10000) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3654 (forward-char -1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3655 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3656 ;; Detect if we have a closing parenthesis (Could be |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3657 ;; either the end of subprogram parameters or (<>) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3658 ;; in a type definition |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3659 (if (= (char-after) ?\)) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3660 (progn |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3661 (forward-char 1) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3662 (backward-sexp 1) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3663 (forward-comment -10000) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3664 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3665 (skip-chars-backward "a-zA-Z0-9_.'") |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3666 (ada-goto-previous-word) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3667 (and |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3668 (looking-at "\\<\\(sub\\)?type\\|case\\>") |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3669 (save-match-data |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3670 (ada-goto-previous-word) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
3671 (not (looking-at "\\<protected\\>")))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3672 )) ; end of `or' |
10705 | 3673 (goto-char (match-beginning 0)) |
3674 (progn | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3675 (setq nest-count (1- nest-count)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3676 (setq first nil)))) |
10705 | 3677 |
3678 ;; | |
3679 ((looking-at "new") | |
3680 (if (save-excursion | |
3681 (ada-goto-previous-word) | |
3682 (looking-at "is")) | |
3683 (goto-char (match-beginning 0)))) | |
3684 ;; | |
3685 ((and first | |
3686 (looking-at "begin")) | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3687 (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
|
3688 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3689 ((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
|
3690 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3691 (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
|
3692 (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
|
3693 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3694 (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
|
3695 (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
|
3696 )))) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3697 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3698 ((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
|
3699 (setq first nil)) |
10705 | 3700 ;; |
3701 (t | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3702 (setq nest-count (1+ nest-count)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3703 (setq first nil))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3704 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3705 );; end of loop |
10705 | 3706 |
3707 ;; 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
|
3708 (if (and |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3709 (zerop nest-count) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3710 (if (looking-at "is") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3711 (ada-search-ignore-string-comment ada-subprog-start-re t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3712 (looking-at "declare\\|generic"))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3713 t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3714 (if noerror nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3715 (error "no matching proc/func/task/declare/package/protected"))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3716 )) |
10705 | 3717 |
3718 (defun ada-goto-matching-start (&optional nest-level noerror gotothen) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3719 "Moves point to the beginning of a block-start. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3720 Which block depends on the value of NEST-LEVEL, which defaults to zero. If |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3721 NOERROR is non-nil, it only returns nil if no matching start was found. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3722 If GOTOTHEN is non-nil, point moves to the 'then' following 'if'." |
10705 | 3723 (let ((nest-count (if nest-level nest-level 0)) |
3724 (found nil) | |
3725 (pos nil)) | |
3726 | |
3727 ;; | |
3728 ;; search backward for interesting keywords | |
3729 ;; | |
3730 (while (and | |
3731 (not found) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3732 (ada-search-ignore-string-comment ada-matching-start-re t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3733 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3734 (unless (and (looking-at "\\<record\\>") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3735 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3736 (forward-word -1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3737 (looking-at "\\<null\\>"))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3738 (progn |
10705 | 3739 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3740 ;; calculate nest-depth |
10705 | 3741 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3742 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3743 ;; found block end => increase nest depth |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3744 ((looking-at "end") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3745 (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
|
3746 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3747 ;; found loop/select/record/case/if => check if it starts or |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3748 ;; ends a block |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3749 ((looking-at "loop\\|select\\|record\\|case\\|if") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3750 (setq pos (point)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3751 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3752 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3753 ;; check if keyword follows 'end' |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3754 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3755 (ada-goto-previous-word) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3756 (if (looking-at "\\<end\\>[ \t]*[^;]") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3757 ;; it ends a block => increase nest depth |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3758 (setq nest-count (1+ nest-count) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3759 pos (point)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3760 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3761 ;; it starts a block => decrease nest depth |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3762 (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
|
3763 (goto-char pos)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3764 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3765 ;; found package start => check if it really is a block |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3766 ((looking-at "package") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3767 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3768 ;; ignore if this is just a renames statement |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3769 (let ((current (point)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3770 (pos (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3771 "\\<\\(is\\|renames\\|;\\)\\>" nil))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3772 (if pos |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3773 (goto-char (car pos)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3774 (error (concat |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3775 "No matching 'is' or 'renames' for 'package' at" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3776 " line " |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
3777 (number-to-string (count-lines 1 (1+ current))))))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3778 (unless (looking-at "renames") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3779 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3780 (forward-word 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3781 (ada-goto-next-non-ws) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3782 ;; 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
|
3783 ;; 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
|
3784 ;; 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
|
3785 ;; 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
|
3786 ;; for elaboration code (elaboration) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3787 (if (not (looking-at "\\<\\(new\\|separate\\|begin\\)\\>")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3788 (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
|
3789 ;; found task start => check if it has a body |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3790 ((looking-at "task") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3791 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3792 (forward-word 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3793 (ada-goto-next-non-ws) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3794 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3795 ((looking-at "\\<body\\>")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3796 ((looking-at "\\<type\\>") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3797 ;; In that case, do nothing if there is a "is" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3798 (forward-word 2);; skip "type" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3799 (ada-goto-next-non-ws);; skip type name |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3800 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3801 ;; Do nothing if we are simply looking at a simple |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3802 ;; "task type name;" statement with no block |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3803 (unless (looking-at ";") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3804 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3805 ;; Skip the parameters |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3806 (if (looking-at "(") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3807 (ada-search-ignore-string-comment ")" nil)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3808 (let ((tmp (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
|
3809 "\\<\\(is\\|;\\)\\>" nil))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3810 (if tmp |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3811 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3812 (goto-char (car tmp)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3813 (if (looking-at "is") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3814 (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
|
3815 (t |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3816 ;; Check if that task declaration had a block attached to |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3817 ;; it (i.e do nothing if we have just "task name;") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3818 (unless (progn (forward-word 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3819 (looking-at "[ \t]*;")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3820 (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
|
3821 ;; all the other block starts |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3822 (t |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3823 (setq nest-count (1- nest-count)))) ; end of 'cond' |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3824 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3825 ;; match is found, if nest-depth is zero |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3826 ;; |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3827 (setq found (zerop nest-count))))) ; end of loop |
10705 | 3828 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3829 (if (bobp) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3830 (point) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3831 (if found |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3832 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3833 ;; 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
|
3834 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3835 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3836 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3837 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3838 ;; 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
|
3839 ;; 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
|
3840 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3841 ((and |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3842 gotothen |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3843 (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
|
3844 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3845 (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
|
3846 '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
|
3847 (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
|
3848 (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
|
3849 (goto-char (match-beginning 0))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3850 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3851 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3852 ;; found 'do' => skip back to 'accept' |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3853 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3854 ((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
|
3855 (unless (ada-search-ignore-string-comment |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3856 "accept" t nil nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3857 '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
|
3858 (error "missing 'accept' in front of 'do'")))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3859 (point)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3860 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3861 (if noerror |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3862 nil |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3863 (error "no matching start")))))) |
10705 | 3864 |
3865 | |
3866 (defun ada-goto-matching-end (&optional nest-level noerror) | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3867 "Moves point to the end of a block. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3868 Which block depends on the value of NEST-LEVEL, which defaults to zero. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3869 If NOERROR is non-nil, it only returns nil if found no matching start." |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3870 (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
|
3871 (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
|
3872 (concat "\\<" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3873 (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
|
3874 "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
|
3875 "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
|
3876 "\\>"))) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3877 found |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3878 pos |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3879 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3880 ;; 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
|
3881 ;; 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
|
3882 ;; 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
|
3883 (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
|
3884 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3885 ;; 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
|
3886 ;; 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
|
3887 ;; "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
|
3888 ;; keyword |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3889 (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
|
3890 (forward-char 1)) |
10705 | 3891 |
3892 ;; | |
3893 ;; search forward for interesting keywords | |
3894 ;; | |
3895 (while (and | |
3896 (not found) | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3897 (ada-search-ignore-string-comment regex nil)) |
10705 | 3898 |
3899 ;; | |
3900 ;; calculate nest-depth | |
3901 ;; | |
3902 (backward-word 1) | |
3903 (cond | |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3904 ;; 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
|
3905 ;; 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
|
3906 ;; 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
|
3907 ;; A : Boolean; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3908 ;; 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
|
3909 ;; 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
|
3910 ;; null; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3911 ;; 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
|
3912 ;; begin |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3913 ;; 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
|
3914 ;; 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
|
3915 ;; handling. |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3916 ;; 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
|
3917 ;; generic instantion. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3918 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3919 ((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
|
3920 (if first |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3921 (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
|
3922 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3923 (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
|
3924 (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
|
3925 (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
|
3926 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3927 (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
|
3928 (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
|
3929 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3930 (goto-char pos) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3931 (ada-goto-matching-end 0 t))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3932 |
10705 | 3933 ;; found block end => decrease nest depth |
3934 ((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
|
3935 (setq nest-count (1- nest-count) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3936 found (<= nest-count 0)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3937 ;; skip the following keyword |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3938 (if (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3939 (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
|
3940 (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
|
3941 (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
|
3942 (forward-word 1))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3943 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3944 ;; 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
|
3945 ;; in fact a generic instantiation for instance |
10705 | 3946 ((looking-at "\\<package\\>") |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3947 (ada-search-ignore-string-comment "is" nil nil nil |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
3948 'word-search-forward) |
10705 | 3949 (ada-goto-next-non-ws) |
3950 ;; ignore and skip it if it is only a 'new' package | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3951 (if (looking-at "\\<new\\>") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3952 (goto-char (match-end 0)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3953 (setq nest-count (1+ nest-count) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3954 found (<= nest-count 0)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
3955 |
10705 | 3956 ;; all the other block starts |
3957 (t | |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3958 (if (not first) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
3959 (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
|
3960 (setq found (<= nest-count 0)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3961 (forward-word 1))) ; end of 'cond' |
10705 | 3962 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
3963 (setq first nil)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3964 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3965 (if found |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3966 t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3967 (if noerror |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3968 nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3969 (error "no matching end"))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3970 )) |
10705 | 3971 |
3972 | |
3973 (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
|
3974 (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
|
3975 "Regexp-search for SEARCH-RE, ignoring comments, strings. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3976 If PARAMLISTS is nil, ignore parameter lists. Returns a cons cell of |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3977 begin and end of match data or nil, if not found. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3978 The search is done using SEARCH-FUNC, which should search backward if |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3979 BACKWARD is non-nil, forward otherwise. SEARCH-FUNC can be optimized in case |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3980 we are searching for a constant string. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3981 The search stops at pos LIMIT. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
3982 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
|
3983 (let (found |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3984 begin |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3985 end |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3986 parse-result |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3987 (previous-syntax-table (syntax-table))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3988 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3989 (unless search-func |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
3990 (setq search-func (if backward 're-search-backward 're-search-forward))) |
10705 | 3991 |
3992 ;; | |
3993 ;; 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
|
3994 ;; We have to test that we do not look further than limit |
10705 | 3995 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3996 (set-syntax-table ada-mode-symbol-syntax-table) |
10705 | 3997 (while (and (not found) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3998 (or (not limit) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
3999 (or (and backward (<= limit (point))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4000 (>= limit (point)))) |
10705 | 4001 (funcall search-func search-re limit 1)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4002 (setq begin (match-beginning 0)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4003 (setq end (match-end 0)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4004 |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4005 (setq parse-result (parse-partial-sexp |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4006 (save-excursion (beginning-of-line) (point)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4007 (point))) |
10705 | 4008 |
4009 (cond | |
4010 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4011 ;; If inside a string, skip it (and the following comments) |
10705 | 4012 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4013 ((ada-in-string-p parse-result) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4014 (if (featurep 'xemacs) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4015 (search-backward "\"" nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4016 (goto-char (nth 8 parse-result))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4017 (unless backward (forward-sexp 1))) |
10705 | 4018 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4019 ;; If inside a comment, skip it (and the following comments) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4020 ;; There is a special code for comments at the end of the file |
10705 | 4021 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4022 ((ada-in-comment-p parse-result) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4023 (if (featurep 'xemacs) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4024 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4025 (forward-line 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4026 (beginning-of-line) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4027 (forward-comment -1)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4028 (goto-char (nth 8 parse-result))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4029 (unless backward |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4030 ;; at the end of the file, it is not possible to skip a comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4031 ;; so we just go at the end of the line |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4032 (if (forward-comment 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4033 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4034 (forward-comment 1000) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4035 (beginning-of-line)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4036 (end-of-line)))) |
10705 | 4037 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4038 ;; directly in front of a comment => skip it, if searching forward |
10705 | 4039 ;; |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4040 ((and (= (char-after begin) ?-) (= (char-after (1+ begin)) ?-)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4041 (unless backward (progn (forward-char -1) (forward-comment 1000)))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4042 |
10705 | 4043 ;; |
4044 ;; found a parameter-list but should ignore it => skip it | |
4045 ;; | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4046 ((and (not paramlists) (ada-in-paramlist-p)) |
10705 | 4047 (if backward |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4048 (search-backward "(" nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4049 (search-forward ")" nil t))) |
10705 | 4050 ;; |
4051 ;; found what we were looking for | |
4052 ;; | |
4053 (t | |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4054 (setq found t)))) ; end of loop |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4055 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4056 (set-syntax-table previous-syntax-table) |
10705 | 4057 |
4058 (if found | |
4059 (cons begin end) | |
4060 nil))) | |
4061 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4062 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4063 ;; -- Testing the position of the cursor |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4064 ;; ------------------------------------------------------- |
10705 | 4065 |
4066 (defun ada-in-decl-p () | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4067 "Returns t if point is inside a declarative part. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4068 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
|
4069 (or (ada-in-paramlist-p) |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4070 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4071 (ada-goto-matching-decl-start t)))) |
10705 | 4072 |
4073 | |
4074 (defun ada-looking-at-semi-or () | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4075 "Returns t if looking-at an 'or' following a semicolon." |
10705 | 4076 (save-excursion |
4077 (and (looking-at "\\<or\\>") | |
4078 (progn | |
4079 (forward-word 1) | |
4080 (ada-goto-stmt-start) | |
4081 (looking-at "\\<or\\>"))))) | |
4082 | |
4083 | |
4084 (defun ada-looking-at-semi-private () | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4085 "Returns t if looking at the start of a private section in a package. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4086 Returns 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
|
4087 'private package A is...' (this can only happen at top level)." |
10705 | 4088 (save-excursion |
4089 (and (looking-at "\\<private\\>") | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4090 (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
|
4091 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4092 ;; 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
|
4093 ;; 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
|
4094 ;; 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
|
4095 ;; |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4096 ;; 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
|
4097 ;; 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
|
4098 ;; 'private procedure ...' |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4099 (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
|
4100 (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
|
4101 (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
|
4102 (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
|
4103 (looking-at "\\<package\\>")))))))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4104 |
10705 | 4105 |
4106 (defun ada-in-paramlist-p () | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4107 "Returns t if point is inside a parameter-list." |
10705 | 4108 (save-excursion |
4109 (and | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4110 (ada-search-ignore-string-comment "(\\|)" t nil t) |
10705 | 4111 ;; inside parentheses ? |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4112 (= (char-after) ?\() |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4113 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4114 ;; 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
|
4115 ;; operator definition: function "." ( |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4116 ;; subprogram definition: procedure .... ( |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4117 ;; 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
|
4118 (progn |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4119 (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
|
4120 (if (= (char-before) ?\") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4121 (backward-char 3) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4122 (backward-word 1)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4123 t) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4124 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4125 ;; 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
|
4126 (backward-word 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4127 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4128 ;; 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
|
4129 ;; comment (for instance, when we have: |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4130 ;; -- .... package |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4131 ;; Test (A) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4132 ;; we should return nil |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4133 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4134 (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
|
4135 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4136 ;; right keyword two words before parenthesis ? |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4137 ;; Type is in this list because of discriminants |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4138 (looking-at (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4139 (concat "\\<\\(" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4140 "procedure\\|function\\|body\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4141 "task\\|entry\\|accept\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4142 "access[ \t]+procedure\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4143 "access[ \t]+function\\|" |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4144 "pragma\\|" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4145 "type\\)\\>")))))) |
10705 | 4146 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4147 (defun ada-search-ignore-complex-boolean (regexp backwardp) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4148 "Like `ada-search-ignore-string-comment', except that it also ignores |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4149 boolean expressions 'and then' and 'or else'." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4150 (let (result) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4151 (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
|
4152 (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
|
4153 (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
|
4154 result)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4155 |
10705 | 4156 (defun ada-in-open-paren-p () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4157 "Returns the position of the first non-ws behind the last unclosed |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4158 parenthesis, or nil." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4159 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4160 (let ((parse (parse-partial-sexp |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4161 (point) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4162 (or (car (ada-search-ignore-complex-boolean |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4163 "\\<\\(;\\|is\\|then\\|loop\\|begin\\|else\\)\\>" |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4164 t)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4165 (point-min))))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4166 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4167 (if (nth 1 parse) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4168 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4169 (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
|
4170 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4171 ;; 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
|
4172 ;; See: |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4173 ;; 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
|
4174 ;; Value_1); |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4175 ;; 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
|
4176 ;; Value_2); |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4177 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4178 (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
|
4179 (not (looking-at "[ \t]+--"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4180 (skip-chars-forward " \t")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4181 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4182 (point)))))) |
10705 | 4183 |
4184 | |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4185 ;; ----------------------------------------------------------- |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4186 ;; -- Behavior Of TAB Key |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4187 ;; ----------------------------------------------------------- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4188 |
10705 | 4189 (defun ada-tab () |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4190 "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
|
4191 In Transient Mark mode, if the mark is active, operate on the contents |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4192 of the region. Otherwise, operates only on the current line." |
10705 | 4193 (interactive) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4194 (cond ((eq ada-tab-policy 'indent-rigidly) (ada-tab-hard)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4195 ((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
|
4196 (if (ada-region-selected) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4197 (ada-indent-region (region-beginning) (region-end)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4198 (ada-indent-current))) |
10705 | 4199 ((eq ada-tab-policy 'always-tab) (error "not implemented")) |
4200 )) | |
4201 | |
4202 (defun ada-untab (arg) | |
4203 "Delete leading indenting according to `ada-tab-policy'." | |
4204 (interactive "P") | |
4205 (cond ((eq ada-tab-policy 'indent-rigidly) (ada-untab-hard)) | |
4206 ((eq ada-tab-policy 'indent-auto) (error "not implemented")) | |
4207 ((eq ada-tab-policy 'always-tab) (error "not implemented")) | |
4208 )) | |
4209 | |
4210 (defun ada-indent-current-function () | |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4211 "Ada mode version of the indent-line-function." |
10705 | 4212 (interactive "*") |
4213 (let ((starting-point (point-marker))) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4214 (beginning-of-line) |
10705 | 4215 (ada-tab) |
4216 (if (< (point) starting-point) | |
4217 (goto-char starting-point)) | |
4218 (set-marker starting-point nil) | |
4219 )) | |
4220 | |
4221 (defun ada-tab-hard () | |
4222 "Indent current line to next tab stop." | |
4223 (interactive) | |
4224 (save-excursion | |
4225 (beginning-of-line) | |
4226 (insert-char ? ada-indent)) | |
4227 (if (save-excursion (= (point) (progn (beginning-of-line) (point)))) | |
4228 (forward-char ada-indent))) | |
4229 | |
4230 (defun ada-untab-hard () | |
4231 "indent current line to previous tab stop." | |
4232 (interactive) | |
4233 (let ((bol (save-excursion (progn (beginning-of-line) (point)))) | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4234 (eol (save-excursion (progn (end-of-line) (point))))) |
10705 | 4235 (indent-rigidly bol eol (- 0 ada-indent)))) |
4236 | |
4237 | |
4238 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4239 ;; ------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4240 ;; -- Miscellaneous |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4241 ;; ------------------------------------------------------------ |
10705 | 4242 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4243 ;; 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
|
4244 ;; compatibility |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4245 (defun ada-remove-trailing-spaces () |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4246 "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
|
4247 (interactive) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4248 (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
|
4249 (save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4250 (save-restriction |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4251 (widen) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4252 (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
|
4253 (while (re-search-forward "[ \t]+$" (point-max) t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4254 (replace-match "" nil nil)))))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4255 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4256 (defun ada-gnat-style () |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4257 "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
|
4258 (interactive) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4259 (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
|
4260 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4261 ;; 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
|
4262 ;; simply ignored. |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4263 (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
|
4264 (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
|
4265 (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
|
4266 (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
|
4267 (beginning-of-line)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4268 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4269 (goto-char (point-min)) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4270 (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
|
4271 (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
|
4272 (replace-match " ("))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4273 (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
|
4274 (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
|
4275 (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
|
4276 (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
|
4277 (replace-match "; --"))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4278 (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
|
4279 (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
|
4280 (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
|
4281 (replace-match "("))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4282 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4283 (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
|
4284 (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
|
4285 (replace-match "))"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4286 (goto-char (point-min)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4287 (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
|
4288 (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
|
4289 (replace-match " :"))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4290 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4291 ;; 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
|
4292 ;; 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
|
4293 ;; 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
|
4294 (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
|
4295 (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
|
4296 (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
|
4297 (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
|
4298 (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
|
4299 (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
|
4300 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4301 ;; 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
|
4302 (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
|
4303 (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
|
4304 "[ \t]*\\(/=\\|\\*\\*\\|:=\\|\\.\\.\\|[-:+*/]\\)[ \t]*" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4305 nil t) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4306 (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
|
4307 (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
|
4308 (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
|
4309 (progn |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4310 (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
|
4311 (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
|
4312 (cond |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4313 ((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
|
4314 (replace-match " /= ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4315 ((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
|
4316 (replace-match " .. ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4317 ((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
|
4318 (replace-match " ** ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4319 ((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
|
4320 (replace-match " := ")) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4321 (t |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4322 (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
|
4323 (forward-char 1))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4324 )) |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4325 |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
4326 |
10705 | 4327 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4328 ;; ------------------------------------------------------------- |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4329 ;; -- Moving To Procedures/Packages/Statements |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4330 ;; ------------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4331 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4332 (defun ada-move-to-start () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4333 "Moves point to the matching start of the current Ada structure." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4334 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4335 (let ((pos (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4336 (previous-syntax-table (syntax-table))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4337 (unwind-protect |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4338 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4339 (set-syntax-table ada-mode-symbol-syntax-table) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4340 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4341 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4342 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4343 ;; do nothing if in string or comment or not on 'end ...;' |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4344 ;; or if an error occurs during processing |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4345 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4346 (or |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4347 (ada-in-string-or-comment-p) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4348 (and (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4349 (or (looking-at "[ \t]*\\<end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4350 (backward-word 1)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4351 (or (looking-at "[ \t]*\\<end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4352 (backward-word 1)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4353 (or (looking-at "[ \t]*\\<end\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4354 (error "not on end ...;"))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4355 (ada-goto-matching-start 1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4356 (setq pos (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4357 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4358 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4359 ;; on 'begin' => go on, according to user option |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4360 ;; |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4361 ada-move-to-declaration |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4362 (looking-at "\\<begin\\>") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4363 (ada-goto-matching-decl-start) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4364 (setq pos (point)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4365 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4366 ) ; end of save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4367 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4368 ;; now really move to the found position |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4369 (goto-char pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4370 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4371 ;; restore syntax-table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4372 (set-syntax-table previous-syntax-table)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4373 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4374 (defun ada-move-to-end () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4375 "Moves point to the matching end of the block around point. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4376 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
|
4377 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4378 (let ((pos (point)) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4379 decl-start |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4380 (previous-syntax-table (syntax-table))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4381 (unwind-protect |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4382 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4383 (set-syntax-table ada-mode-symbol-syntax-table) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4384 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4385 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4386 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4387 (cond |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4388 ;; Go to the beginning of the current word, and check if we are |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4389 ;; directly on 'begin' |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4390 ((save-excursion |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4391 (skip-syntax-backward "w") |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4392 (looking-at "\\<begin\\>")) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4393 (ada-goto-matching-end 1) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4394 ) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4395 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4396 ;; on first line of subprogram body |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4397 ;; Do nothing for specs or generic instantion, since these are |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4398 ;; handled as the general case (find the enclosing block) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4399 ;; We also need to make sure that we ignore nested subprograms |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4400 ((save-excursion |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4401 (and (skip-syntax-backward "w") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4402 (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
|
4403 (ada-search-ignore-string-comment "is\\|;") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4404 (not (= (char-before) ?\;)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4405 )) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4406 (skip-syntax-backward "w") |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4407 (ada-goto-matching-end 0 t)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4408 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4409 ;; on first line of task declaration |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4410 ((save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4411 (and (ada-goto-stmt-start) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4412 (looking-at "\\<task\\>" ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4413 (forward-word 1) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4414 (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
|
4415 (looking-at "\\<body\\>"))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4416 (ada-search-ignore-string-comment "begin" nil nil nil |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4417 'word-search-forward)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4418 ;; accept block start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4419 ((save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4420 (and (ada-goto-stmt-start) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4421 (looking-at "\\<accept\\>" ))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4422 (ada-goto-matching-end 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4423 ;; package start |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4424 ((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
|
4425 (setq decl-start (and (ada-goto-matching-decl-start t) (point))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4426 (and decl-start (looking-at "\\<package\\>"))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4427 (ada-goto-matching-end 1)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4428 |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4429 ;; On a "declare" keyword |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4430 ((save-excursion |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4431 (skip-syntax-backward "w") |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4432 (looking-at "\\<declare\\>")) |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4433 (ada-goto-matching-end 0 t)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4434 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4435 ;; inside a 'begin' ... 'end' block |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4436 (decl-start |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4437 (goto-char decl-start) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4438 (ada-goto-matching-end 0 t)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4439 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4440 ;; (hopefully ;-) everything else |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4441 (t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4442 (ada-goto-matching-end 1))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4443 (setq pos (point)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4444 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4445 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4446 ;; now really move to the position found |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4447 (goto-char pos)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4448 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4449 ;; restore syntax-table |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4450 (set-syntax-table previous-syntax-table)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4451 |
10705 | 4452 (defun ada-next-procedure () |
4453 "Moves point to next procedure." | |
4454 (interactive) | |
4455 (end-of-line) | |
4456 (if (re-search-forward ada-procedure-start-regexp 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
|
4457 (goto-char (match-beginning 2)) |
10705 | 4458 (error "No more functions/procedures/tasks"))) |
4459 | |
4460 (defun ada-previous-procedure () | |
4461 "Moves point to previous procedure." | |
4462 (interactive) | |
4463 (beginning-of-line) | |
4464 (if (re-search-backward ada-procedure-start-regexp 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
|
4465 (goto-char (match-beginning 2)) |
10705 | 4466 (error "No more functions/procedures/tasks"))) |
4467 | |
4468 (defun ada-next-package () | |
4469 "Moves point to next package." | |
4470 (interactive) | |
4471 (end-of-line) | |
4472 (if (re-search-forward ada-package-start-regexp nil t) | |
4473 (goto-char (match-beginning 1)) | |
4474 (error "No more packages"))) | |
4475 | |
4476 (defun ada-previous-package () | |
4477 "Moves point to previous package." | |
4478 (interactive) | |
4479 (beginning-of-line) | |
4480 (if (re-search-backward ada-package-start-regexp nil t) | |
4481 (goto-char (match-beginning 1)) | |
4482 (error "No more packages"))) | |
4483 | |
4484 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4485 ;; ------------------------------------------------------------ |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4486 ;; -- Define keymap and menus for Ada |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4487 ;; ------------------------------------------------------------- |
10705 | 4488 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4489 (defun ada-create-keymap () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4490 "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
|
4491 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4492 ;; Indentation and Formatting |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4493 (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
|
4494 (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
|
4495 (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
|
4496 (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
|
4497 (define-key ada-mode-map "\C-c\C-l" 'ada-indent-region) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4498 (if (featurep 'xemacs) |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4499 (define-key ada-mode-map '(shift tab) 'ada-untab) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4500 (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
|
4501 (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
|
4502 ;; 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
|
4503 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4504 ;; Movement |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4505 (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
|
4506 (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
|
4507 (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
|
4508 (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
|
4509 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4510 ;; Compilation |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4511 (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
|
4512 (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
|
4513 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4514 ;; Casing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4515 (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
|
4516 (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
|
4517 (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
|
4518 (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
|
4519 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4520 ;; 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
|
4521 ;; 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
|
4522 ;; account |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4523 (if (boundp 'delete-key-deletes-forward) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4524 (define-key ada-mode-map [backspace] 'backward-delete-char-untabify) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4525 (define-key ada-mode-map "\177" 'backward-delete-char-untabify)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4526 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4527 ;; Make body |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4528 (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
|
4529 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4530 ;; 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
|
4531 (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
|
4532 (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
|
4533 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4534 ;; 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
|
4535 ;; 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
|
4536 ;; and activated only if the right compiler is used |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4537 (if (featurep 'xemacs) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4538 (progn |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4539 (define-key ada-mode-map '(shift button3) '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
|
4540 (define-key ada-mode-map '(control tab) 'ada-complete-identifier)) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4541 (define-key ada-mode-map [C-tab] 'ada-complete-identifier) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4542 (define-key ada-mode-map [S-mouse-3] '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
|
4543 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4544 (define-key ada-mode-map "\C-co" '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
|
4545 (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
|
4546 (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
|
4547 (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
|
4548 (define-key ada-mode-map "\C-c\C-c" 'ada-compile-application) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4549 (define-key ada-mode-map "\C-cc" 'ada-change-prj) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4550 (define-key ada-mode-map "\C-cd" 'ada-set-default-project-file) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4551 (define-key ada-mode-map "\C-cg" 'ada-gdb-application) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4552 (define-key ada-mode-map "\C-cr" 'ada-run-application) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4553 (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
|
4554 (define-key ada-mode-map "\C-c\C-r" 'ada-find-references) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4555 (define-key ada-mode-map "\C-cl" '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
|
4556 (define-key ada-mode-map "\C-c\C-v" 'ada-check-current) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4557 (define-key ada-mode-map "\C-cf" 'ada-find-file) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4558 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4559 (define-key ada-mode-map "\C-cu" 'ada-prj-edit) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4560 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4561 ;; 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
|
4562 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4563 (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
|
4564 (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
|
4565 (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
|
4566 (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
|
4567 (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
|
4568 (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
|
4569 (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
|
4570 (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
|
4571 (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
|
4572 (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
|
4573 (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
|
4574 (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
|
4575 (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
|
4576 (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
|
4577 (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
|
4578 (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
|
4579 (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
|
4580 (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
|
4581 (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
|
4582 (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
|
4583 (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
|
4584 (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
|
4585 (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
|
4586 (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
|
4587 (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
|
4588 (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
|
4589 (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
|
4590 (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
|
4591 (define-key map "x" 'ada-exit) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4592 (define-key ada-mode-map "\C-ct" map)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4593 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4594 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4595 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4596 (defun ada-create-menu () |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4597 "Create the ada menu as shown in the menu bar." |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4598 (let ((m '("Ada" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4599 ("Help" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4600 ["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
|
4601 ["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
|
4602 (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
|
4603 ["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
|
4604 (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
|
4605 ["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
|
4606 (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
|
4607 ["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
|
4608 (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
|
4609 ["Ada95 Reference Manual" (info "arm95") |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4610 (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
|
4611 ("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
|
4612 ["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
|
4613 :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
|
4614 ["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
|
4615 (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
|
4616 :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
|
4617 ["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
|
4618 (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
|
4619 :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
|
4620 :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
|
4621 ["Confirm Commands" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4622 (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
|
4623 :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
|
4624 :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
|
4625 ["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
|
4626 (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
|
4627 :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
|
4628 :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
|
4629 ["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
|
4630 (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
|
4631 :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
|
4632 :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
|
4633 ["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
|
4634 :included (fboundp 'customize-group)] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4635 ["Check file" ada-check-current (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
|
4636 ["Compile file" ada-compile-current (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
|
4637 ["Build" ada-compile-application |
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 ["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
|
4640 ["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
|
4641 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4642 ("Project" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4643 :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
|
4644 ["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
|
4645 ["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
|
4646 ["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
|
4647 ("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
|
4648 ["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
|
4649 (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
|
4650 ["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
|
4651 (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
|
4652 ["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
|
4653 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
|
4654 (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
|
4655 ["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
|
4656 (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
|
4657 ["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
|
4658 (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
|
4659 ["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
|
4660 (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
|
4661 ["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
|
4662 (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
|
4663 ["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
|
4664 (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
|
4665 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4666 ["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
|
4667 ["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
|
4668 ["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
|
4669 ["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
|
4670 ["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
|
4671 ["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
|
4672 ["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
|
4673 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4674 ["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
|
4675 ["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
|
4676 ("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
|
4677 ["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
|
4678 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4679 ["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
|
4680 ["-----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4681 ["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
|
4682 ["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
|
4683 ["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
|
4684 ["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
|
4685 (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
|
4686 ["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
|
4687 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4688 ["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
|
4689 ["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
|
4690 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4691 ["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
|
4692 ["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
|
4693 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
|
4694 ["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
|
4695 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
|
4696 ["---" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4697 ["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
|
4698 ["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
|
4699 ["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
|
4700 ["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
|
4701 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
|
4702 ["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
|
4703 ["----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4704 ["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
|
4705 ["-----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4706 ["Narrow to subprogram" ada-narrow-to-defun t]) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4707 ("Templates" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4708 :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
|
4709 ["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
|
4710 ["-" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4711 ["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
|
4712 ["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
|
4713 ["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
|
4714 ["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
|
4715 ["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
|
4716 ["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
|
4717 ["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
|
4718 ["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
|
4719 ["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
|
4720 ["--" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4721 ["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
|
4722 ["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
|
4723 ["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
|
4724 ["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
|
4725 ["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
|
4726 ["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
|
4727 ["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
|
4728 ["---" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4729 ["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
|
4730 ["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
|
4731 ["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
|
4732 ["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
|
4733 ["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
|
4734 ["----" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4735 ["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
|
4736 ["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
|
4737 ["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
|
4738 ["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
|
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 ["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
|
4741 ["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
|
4742 ["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
|
4743 ["------" nil nil] |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4744 ["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
|
4745 ["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
|
4746 ["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
|
4747 ))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
4748 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4749 (easy-menu-define ada-mode-menu ada-mode-map "Menu keymap for Ada mode" m) |
38446
f63fbebe03fb
(ada-mode): Avoid unneeded version checks.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
4750 (easy-menu-add ada-mode-menu ada-mode-map) |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4751 (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
|
4752 (progn |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4753 (define-key ada-mode-map [menu-bar] ada-mode-menu) |
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4754 (set 'mode-popup-menu (cons "Ada mode" ada-mode-menu)))))) |
10705 | 4755 |
4756 | |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4757 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4758 ;; Commenting/Uncommenting code |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4759 ;; 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
|
4760 ;; 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
|
4761 ;; 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
|
4762 ;; 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
|
4763 ;; |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4764 ;; 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
|
4765 ;; function for justifying the comments. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4766 ;; ------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4767 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4768 (defadvice comment-region (before ada-uncomment-anywhere disable) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4769 (if (and arg |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4770 (listp arg) ;; a prefix with \C-u is of the form '(4), whereas |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4771 ;; \C-u 2 sets arg to '2' (fixed by S.Leake) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4772 (string= mode-name "Ada")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4773 (save-excursion |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4774 (let ((cs (concat "^[ \t]*" (regexp-quote comment-start)))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4775 (goto-char beg) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4776 (while (re-search-forward cs end t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4777 (replace-match comment-start)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4778 )))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4779 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4780 (defun ada-uncomment-region (beg end &optional arg) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4781 "Delete `comment-start' at the beginning of a line in the region." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4782 (interactive "r\nP") |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4783 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4784 ;; 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
|
4785 ;; 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
|
4786 (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
|
4787 (progn |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4788 (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
|
4789 (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
|
4790 (ad-deactivate 'comment-region)) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4791 (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
|
4792 (ada-indent-region beg end))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4793 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4794 (defun ada-fill-comment-paragraph-justify () |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4795 "Fills current comment paragraph and justifies each line as well." |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4796 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4797 (ada-fill-comment-paragraph 'full)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4798 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4799 (defun ada-fill-comment-paragraph-postfix () |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4800 "Fills current comment paragraph and justifies each line as well. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4801 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
|
4802 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4803 (ada-fill-comment-paragraph 'full t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4804 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4805 (defun ada-fill-comment-paragraph (&optional justify postfix) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4806 "Fills the current comment paragraph. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4807 If JUSTIFY is non-nil, each line is justified as well. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4808 If POSTFIX and JUSTIFY are non-nil, `ada-fill-comment-postfix' is appended |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4809 to each filled and justified line. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4810 The paragraph is indented on the first line." |
10705 | 4811 (interactive "P") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4812 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4813 ;; 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
|
4814 (if (and (not (ada-in-comment-p)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4815 (not (looking-at "[ \t]*--"))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4816 (error "not inside comment")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4817 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4818 (let* (indent from to |
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4819 (opos (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4820 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4821 ;; Sets this variable to nil, otherwise it prevents |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4822 ;; fill-region-as-paragraph to work on Emacs <= 20.2 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4823 (parse-sexp-lookup-properties nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4824 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4825 fill-prefix |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4826 (fill-column (current-fill-column))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4827 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4828 ;; Find end of paragraph |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4829 (back-to-indentation) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4830 (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
|
4831 (forward-line 1) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4832 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4833 ;; 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
|
4834 ;; 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
|
4835 (if (eobp) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4836 (insert "\n") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4837 (back-to-indentation))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4838 (beginning-of-line) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4839 (setq to (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4840 (goto-char opos) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4841 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4842 ;; 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
|
4843 (back-to-indentation) |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4844 (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
|
4845 (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
|
4846 (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
|
4847 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
4848 ;; 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
|
4849 ;; 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
|
4850 (unless (bobp) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4851 (forward-line 1)) |
41036
aaa6f44a1b96
(ada-fill-comment-prefix): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
41012
diff
changeset
|
4852 (beginning-of-line) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4853 (setq from (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4854 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4855 ;; 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
|
4856 (back-to-indentation) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4857 (setq indent (current-column)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4858 ;; 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
|
4859 (delete-region from (point)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4860 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4861 ;; Remove the old postfixes |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4862 (goto-char from) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4863 (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
|
4864 (replace-match "\n")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4865 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4866 (goto-char (1- to)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4867 (setq to (point-marker)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4868 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4869 ;; Indent and justify the paragraph |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4870 (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
|
4871 (set-left-margin from to indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4872 (if postfix |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4873 (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
|
4874 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4875 (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
|
4876 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4877 ;; Add the postfixes if required |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4878 (if postfix |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4879 (save-restriction |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4880 (goto-char from) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4881 (narrow-to-region from to) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4882 (while (not (eobp)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4883 (end-of-line) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4884 (insert-char ? (- fill-column (current-column))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4885 (insert ada-fill-comment-postfix) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4886 (forward-line)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4887 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4888 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4889 ;; 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
|
4890 ;; 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
|
4891 (if (or (featurep 'xemacs) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4892 (<= emacs-major-version 19) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4893 (and (= emacs-major-version 20) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4894 (<= emacs-minor-version 2))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4895 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4896 (goto-char to) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4897 (end-of-line) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4898 (delete-char 1))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4899 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4900 (goto-char opos))) |
10705 | 4901 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4902 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4903 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4904 ;; support for find-file.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4905 ;; 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
|
4906 ;; 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
|
4907 ;; file (body or spec). |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4908 ;; 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
|
4909 ;; cursor at the correct position. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4910 ;; 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
|
4911 ;; so some of these functions can only be a good approximation. However, they |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4912 ;; are also overriden in `ada-xref'.el when we know that the user is using |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4913 ;; GNAT. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4914 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4915 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4916 ;; Overriden when we work with GNAT, to use gnatkrunch |
10705 | 4917 (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
|
4918 "Determine the filename in which ADANAME is found. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4919 This is a generic function, independent from any compiler." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4920 (while (string-match "\\." adaname) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4921 (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
|
4922 (downcase adaname) |
10705 | 4923 ) |
4924 | |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4925 (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
|
4926 "Return the name of the other file. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4927 The name returned is the body if current-buffer is the spec, or the spec |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4928 otherwise." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4929 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4930 (let ((is-spec nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4931 (is-body nil) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4932 (suffixes ada-spec-suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4933 (name (buffer-file-name))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4934 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4935 ;; 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
|
4936 ;; 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
|
4937 ;; file-name-extension |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4938 (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
|
4939 suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4940 (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
|
4941 (setq is-spec t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4942 name (match-string 1 name))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4943 (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
|
4944 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4945 (if (not is-spec) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4946 (progn |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4947 (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
|
4948 (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
|
4949 suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4950 (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
|
4951 (setq is-body t |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4952 name (match-string 1 name))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4953 (setq suffixes (cdr suffixes))))) |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4954 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4955 ;; 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
|
4956 (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
|
4957 name |
33786
9f63b158eb6b
* simple.el (delete-trailing-whitespace): New interactive function.
Sam Steingold <sds@gnu.org>
parents:
33716
diff
changeset
|
4958 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4959 ;; 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
|
4960 (if is-spec |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4961 (setq suffixes ada-body-suffixes) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4962 (setq suffixes ada-spec-suffixes)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4963 (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
|
4964 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4965 (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
|
4966 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4967 ;; 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
|
4968 ;; the possible src directories. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
4969 |
50812
15929fed5553
(ada-xemacs): Variable removed, since it's better to use (featurep 'xemacs).
Juanma Barranquero <lekktu@gmail.com>
parents:
50736
diff
changeset
|
4970 (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
|
4971 (let ((other |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4972 (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
|
4973 (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
|
4974 (if other |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4975 (set 'is-spec other))) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4976 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
4977 ;; 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
|
4978 (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
|
4979 (setq is-spec (concat name (car suffixes))))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4980 (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
|
4981 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4982 is-spec))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
4983 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
4984 (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
|
4985 "Return the name of the function whose definition/declaration point is in. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
4986 Redefines the function `ff-which-function-are-we-in'." |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4987 (setq ff-function-name nil) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
4988 (save-excursion |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4989 (end-of-line);; make sure we get the complete name |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4990 (if (or (re-search-backward ada-procedure-start-regexp nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4991 (re-search-backward ada-package-start-regexp nil t)) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
4992 (setq ff-function-name (match-string 0))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
4993 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
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 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4996 (defvar ada-last-which-function-line -1 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4997 "Last on which ada-which-function was called") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4998 (defvar ada-last-which-function-subprog 0 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
4999 "Last subprogram name returned by ada-which-function") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5000 (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
|
5001 (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
|
5002 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5003 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5004 (defun ada-which-function () |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5005 "Returns the name of the function whose body the point is in. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5006 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
|
5007 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
|
5008 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
|
5009 |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5010 (let ((line (count-lines 1 (point))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5011 (pos (point)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5012 end-pos |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5013 func-name indent |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5014 found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5015 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5016 ;; 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
|
5017 (if (= line 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
|
5018 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
|
5019 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5020 (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5021 ;; In case the current line is also the beginning of the body |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5022 (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
|
5023 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5024 ;; 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
|
5025 (skip-chars-forward " \t\n(") |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5026 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5027 (condition-case nil |
45931
a4c8d672ccbe
* progmodes/ada-mode.el: Update copyright notice.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
44933
diff
changeset
|
5028 (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
|
5029 (error nil)) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5030 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5031 (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
|
5032 (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
|
5033 (progn |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5034 (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
|
5035 (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
|
5036 (skip-chars-forward "a-zA-Z0-9_'"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5037 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5038 ;; Can't simply do forward-word, in case the "is" is not on the |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5039 ;; same line as the closing parenthesis |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5040 (skip-chars-forward "is \t\n") |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5041 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5042 ;; No look for the closest subprogram body that has not ended yet. |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5043 ;; Not that we expect all the bodies to be finished by "end <name>", |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5044 ;; or a simple "end;" indented in the same column as the start of |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5045 ;; 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
|
5046 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5047 (while (and (not found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5048 (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
|
5049 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5050 ;; 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
|
5051 ;; the face in the modeline on Emacs 21 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5052 (setq func-name (match-string-no-properties 2)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5053 (if (and (not (ada-in-comment-p)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5054 (not (save-excursion |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5055 (goto-char (match-end 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5056 (looking-at "[ \t\n]*new")))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5057 (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
|
5058 (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
|
5059 (setq indent (current-column)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5060 (if (ada-search-ignore-string-comment |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5061 (concat "end[ \t]+" func-name "[ \t]*;\\|^" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5062 (make-string indent ? ) "end;")) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5063 (setq end-pos (point)) |
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5064 (setq end-pos (point-max))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5065 (if (>= end-pos pos) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5066 (setq found func-name)))) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5067 ) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5068 (setq ada-last-which-function-line line |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5069 ada-last-which-function-subprog found) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5070 found)))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5071 |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5072 (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
|
5073 "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
|
5074 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5075 (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
|
5076 (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
|
5077 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5078 (defun ada-set-point-accordingly () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5079 "Move to the function declaration that was set by |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5080 `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
|
5081 (if ff-function-name |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5082 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5083 (goto-char (point-min)) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5084 (unless (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
|
5085 (concat ff-function-name "\\b") nil) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5086 (goto-char (point-min)))))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5087 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5088 (defun ada-get-body-name (&optional spec-name) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5089 "Returns the file name for the body of SPEC-NAME. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5090 If SPEC-NAME is nil, returns the body for the current package. |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5091 Returns nil if no body was found." |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5092 (interactive) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5093 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5094 (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
|
5095 |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5096 ;; 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
|
5097 ;; 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
|
5098 ;; 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
|
5099 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5100 (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
|
5101 end) |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5102 (while suffixes |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5103 (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
|
5104 (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
|
5105 (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
|
5106 (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
|
5107 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5108 ;; 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
|
5109 (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
|
5110 (ff-get-file-name ada-search-directories-internal |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5111 (ada-make-filename-from-adaname |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5112 (file-name-nondirectory |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5113 (file-name-sans-extension spec-name))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5114 ada-body-suffixes) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5115 ;; 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
|
5116 (concat (ada-make-filename-from-adaname |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5117 (file-name-nondirectory |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5118 (file-name-sans-extension spec-name))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5119 ".adb"))) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5120 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5121 |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5122 ;; --------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5123 ;; 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
|
5124 ;; 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
|
5125 ;; 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
|
5126 ;; 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
|
5127 ;; 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
|
5128 ;; 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
|
5129 ;; |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5130 ;; 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
|
5131 ;; 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
|
5132 ;; ---------------------------------------------------- |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5133 |
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5134 (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
|
5135 ;; Mark single quotes as having string quote syntax in 'c' instances. |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5136 ;; As a special case, ''' will not be highlighted, but if we do not |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5137 ;; set this special case, then the rest of the buffer is highlighted as |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5138 ;; a string |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5139 ;; This sets the properties of the characters, so that ada-in-string-p |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5140 ;; correctly handles '"' too... |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5141 '(("[^a-zA-Z0-9)]\\('\\)[^'\n]\\('\\)" (1 (7 . ?')) (2 (7 . ?'))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5142 ("^[ \t]*\\(#\\(if\\|else\\|elsif\\|end\\)\\)" (1 (11 . ?\n))) |
10705 | 5143 )) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5144 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5145 (defvar ada-font-lock-keywords |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5146 (eval-when-compile |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5147 (list |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5148 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5149 ;; 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
|
5150 (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
|
5151 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5152 ;; preprocessor line |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5153 (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
|
5154 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5155 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5156 ;; 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
|
5157 ;; pragma, procedure, task (body) plus name. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5158 (list (concat |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5159 "\\<\\(" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5160 "accept\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5161 "entry\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5162 "function\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5163 "package[ \t]+body\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5164 "package\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5165 "pragma\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5166 "procedure\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5167 "protected[ \t]+body\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5168 "protected[ \t]+type\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5169 "protected\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5170 "task[ \t]+body\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5171 "task[ \t]+type\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5172 "task" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5173 "\\)\\>[ \t]*" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5174 "\\(\\sw+\\(\\.\\sw*\\)*\\)?") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5175 '(1 font-lock-keyword-face) '(2 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
|
5176 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5177 ;; 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
|
5178 (list (concat ; ":[ \t]*" |
44465
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5179 "\\<\\(access[ \t]+all\\|access[ \t]+constant\\|access\\|constant\\|in[ \t]+reverse\\|\\|in[ \t]+out\\|in\\|out\\)\\>" |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5180 "[ \t]*" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5181 "\\(\\sw+\\(\\.\\sw*\\)*\\)?") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5182 '(1 font-lock-keyword-face nil t) '(2 font-lock-type-face nil t)) |
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 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5185 ;; 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
|
5186 (concat "\\<" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5187 (regexp-opt |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5188 '("abort" "abs" "abstract" "accept" "access" "aliased" "all" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5189 "and" "array" "at" "begin" "case" "declare" "delay" "delta" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5190 "digits" "do" "else" "elsif" "entry" "exception" "exit" "for" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5191 "generic" "if" "in" "is" "limited" "loop" "mod" "not" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5192 "null" "or" "others" "private" "protected" "raise" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5193 "range" "record" "rem" "renames" "requeue" "return" "reverse" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5194 "select" "separate" "tagged" "task" "terminate" "then" "until" |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5195 "when" "while" "with" "xor") t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5196 "\\>") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5197 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5198 ;; 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
|
5199 '("\\<\\(end\\)\\>\\([ \t]+\\)?\\(\\(\\sw\\|[_.]\\)+\\)?" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5200 (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
|
5201 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5202 ;; 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
|
5203 (list (concat "\\<\\(" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5204 "new\\|of\\|subtype\\|type" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5205 "\\)\\>[ \t]*\\(\\sw+\\(\\.\\sw*\\)*\\)?[ \t]*\\((\\)?") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5206 '(1 font-lock-keyword-face) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5207 '(2 (if (match-beginning 4) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5208 font-lock-function-name-face |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5209 font-lock-type-face) nil t)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5210 ;; |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5211 ;; 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
|
5212 ;; 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
|
5213 ;; 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
|
5214 (list (concat "\\<\\(goto\\|raise\\|use\\|with\\)" |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5215 "[ \t]+\\([a-zA-Z0-9_., \t]+\\)\\W") |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5216 '(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
|
5217 |
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 ;; Goto tags. |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5220 '("<<\\(\\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
|
5221 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5222 ;; 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
|
5223 (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
|
5224 |
0a0f75d152df
(ada-case-exception-file, ada-indent-handle-comment-special): New variables.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42619
diff
changeset
|
5225 ;; 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
|
5226 (list "\\W\\([-+]?[0-9._]+\\)\\>" '(1 font-lock-constant-face)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45931
diff
changeset
|
5227 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5228 )) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5229 "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
|
5230 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5231 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5232 ;; --------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5233 ;; Support for outline.el |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5234 ;; --------------------------------------------------------- |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5235 |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5236 (defun ada-outline-level () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5237 "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
|
5238 ;; 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
|
5239 (let (buffer-invisibility-spec) |
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5240 (save-excursion |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5241 (back-to-indentation) |
24446
25556de3fe49
(ada-outline-level): Bind buffer-invisibility-spec.
Dave Love <fx@gnu.org>
parents:
24325
diff
changeset
|
5242 (current-column)))) |
17914
e5e2ef0dd5ab
(ada-krunch-args): Use gnatkr instead of gnatk8.
Richard M. Stallman <rms@gnu.org>
parents:
14415
diff
changeset
|
5243 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5244 ;; --------------------------------------------------------- |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5245 ;; 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
|
5246 ;; --------------------------------------------------------- |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5247 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5248 (defun ada-narrow-to-defun (&optional arg) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5249 "make text outside current subprogram invisible. |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5250 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
|
5251 Optional ARG is ignored. |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5252 Use `M-x widen' to go back to the full visibility for the buffer" |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5253 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5254 (interactive) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5255 (save-excursion |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5256 (let (end) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5257 (widen) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5258 (forward-line 1) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5259 (ada-previous-procedure) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5260 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5261 (save-excursion |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5262 (beginning-of-line) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5263 (setq end (point))) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5264 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5265 (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
|
5266 (end-of-line) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5267 (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
|
5268 (message |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5269 "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
|
5270 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5271 ;; --------------------------------------------------------- |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5272 ;; Automatic generation of code |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5273 ;; The Ada-mode has a set of function to automatically generate a subprogram |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5274 ;; or package body from its spec. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5275 ;; 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
|
5276 ;; lot of improvement. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5277 ;; 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
|
5278 ;; body. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5279 ;; ---------------------------------------------------------- |
10705 | 5280 |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5281 (defun ada-gen-treat-proc (match) |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5282 "Make dummy body of a procedure/function specification. |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5283 MATCH is a cons cell containing the start and end location of the last search |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5284 for ada-procedure-start-regexp." |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5285 (goto-char (car match)) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5286 (let (func-found procname functype) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5287 (cond |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5288 ((or (looking-at "^[ \t]*procedure") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5289 (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
|
5290 ;; treat it as a proc/func |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5291 (forward-word 2) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5292 (forward-word -1) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5293 (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
|
5294 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5295 ;; goto end of procname |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5296 (goto-char (cdr match)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5297 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5298 ;; skip over parameterlist |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5299 (unless (looking-at "[ \t\n]*\\(;\\|return\\)") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5300 (forward-sexp)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5301 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5302 ;; 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
|
5303 (if func-found |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5304 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5305 (forward-word 1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5306 (skip-chars-forward " \t\n") |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5307 (setq functype (buffer-substring (point) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5308 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5309 (skip-chars-forward |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5310 "a-zA-Z0-9_\.") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5311 (point)))))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5312 ;; look for next non WS |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5313 (cond |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5314 ((looking-at "[ \t]*;") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5315 (delete-region (match-beginning 0) (match-end 0));; delete the ';' |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5316 (ada-indent-newline-indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5317 (insert "is") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5318 (ada-indent-newline-indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5319 (if func-found |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5320 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5321 (insert "Result : " functype ";") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5322 (ada-indent-newline-indent))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5323 (insert "begin") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5324 (ada-indent-newline-indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5325 (if func-found |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5326 (insert "return Result;") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5327 (insert "null;")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5328 (ada-indent-newline-indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5329 (insert "end " procname ";") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5330 (ada-indent-newline-indent) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5331 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5332 ;; else |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5333 ((looking-at "[ \t\n]*is") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5334 ;; do nothing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5335 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5336 ((looking-at "[ \t\n]*rename") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5337 ;; do nothing |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5338 ) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5339 (t |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5340 (message "unknown syntax")))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5341 (t |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5342 (if (looking-at "^[ \t]*task") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5343 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5344 (message "Task conversion is not yet implemented") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5345 (forward-word 2) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5346 (if (looking-at "[ \t]*;") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5347 (forward-line) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5348 (ada-move-to-end)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5349 )))))) |
12039
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5350 |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5351 (defun ada-make-body () |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5352 "Create an Ada package body in the current buffer. |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5353 The potential old buffer contents is deleted first, then we copy the |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5354 spec buffer in here and modify it to make it a body. |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5355 This function typically is to be hooked into `ff-file-created-hooks'." |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5356 (interactive) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5357 (delete-region (point-min) (point-max)) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5358 (insert-buffer (car (cdr (buffer-list)))) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5359 (ada-mode) |
a75524689022
(initial comments): Copyright 1995; don't speak
Karl Heuer <kwzh@gnu.org>
parents:
11869
diff
changeset
|
5360 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5361 (let (found ada-procedure-or-package-start-regexp) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5362 (if (setq found |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5363 (ada-search-ignore-string-comment ada-package-start-regexp nil)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5364 (progn (goto-char (cdr found)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5365 (insert " body") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5366 ) |
10705 | 5367 (error "No package")) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5368 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5369 (setq ada-procedure-or-package-start-regexp |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5370 (concat ada-procedure-start-regexp |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5371 "\\|" |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5372 ada-package-start-regexp)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5373 |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5374 (while (setq found |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5375 (ada-search-ignore-string-comment |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5376 ada-procedure-or-package-start-regexp nil)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5377 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5378 (goto-char (car found)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5379 (if (looking-at ada-package-start-regexp) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5380 (progn (goto-char (cdr found)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5381 (insert " body")) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5382 (ada-gen-treat-proc found)))))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5383 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5384 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5385 (defun ada-make-subprogram-body () |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5386 "Make one dummy subprogram body from spec surrounding point." |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5387 (interactive) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5388 (let* ((found (re-search-backward ada-procedure-start-regexp nil t)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5389 (spec (match-beginning 0)) |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5390 body-file) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5391 (if found |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5392 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5393 (goto-char spec) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5394 (if (and (re-search-forward "(\\|;" nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5395 (= (char-before) ?\()) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5396 (progn |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5397 (ada-search-ignore-string-comment ")" nil) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5398 (ada-search-ignore-string-comment ";" nil))) |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5399 (setq spec (buffer-substring spec (point))) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5400 |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5401 ;; If find-file.el was available, use its functions |
33716
c55ff055c68a
(ada-mode): `set '' -> `setq'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32300
diff
changeset
|
5402 (setq body-file (ada-get-body-name)) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5403 (if body-file |
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5404 (find-file body-file) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5405 (error "No body found for the package. Create it first.")) |
30411
41f228350eca
Got rid of all byte-compiler warnings on Emacs Load
Gerd Moellmann <gerd@gnu.org>
parents:
28995
diff
changeset
|
5406 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5407 (save-restriction |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5408 (widen) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5409 (goto-char (point-max)) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5410 (forward-comment -10000) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5411 (re-search-backward "\\<end\\>" nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5412 ;; Move to the beginning of the elaboration part, if any |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5413 (re-search-backward "^begin" nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5414 (newline) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5415 (forward-char -1) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5416 (insert spec) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5417 (re-search-backward ada-procedure-start-regexp nil t) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5418 (ada-gen-treat-proc (cons (match-beginning 0) (match-end 0))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5419 )) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5420 (error "Not in subprogram spec")))) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5421 |
26225
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5422 ;; -------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5423 ;; Global initializations |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5424 ;; -------------------------------------------------------- |
91cb7b3bae3c
Changed format of years in copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents:
25903
diff
changeset
|
5425 |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5426 ;; 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
|
5427 ;; 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
|
5428 ;; every time |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5429 (ada-create-keymap) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5430 (ada-create-menu) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5431 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5432 ;; 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
|
5433 (ada-create-syntax-table) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5434 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5435 ;; 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
|
5436 (ada-add-extensions ".ads" ".adb") |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5437 ;; 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
|
5438 (if (equal ada-which-compiler 'gnat) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5439 (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
|
5440 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5441 ;; Read the special cases for exceptions |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5442 (ada-case-read-exceptions) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5443 |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5444 ;; Setup auto-loading of the other ada-mode files. |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5445 (if (equal ada-which-compiler 'gnat) |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5446 (progn |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5447 (autoload 'ada-change-prj "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5448 (autoload 'ada-check-current "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5449 (autoload 'ada-compile-application "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5450 (autoload 'ada-compile-current "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5451 (autoload 'ada-complete-identifier "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5452 (autoload 'ada-find-file "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5453 (autoload 'ada-find-any-references "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5454 (autoload 'ada-find-src-file-in-dir "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5455 (autoload 'ada-find-local-references "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5456 (autoload 'ada-find-references "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5457 (autoload 'ada-gdb-application "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5458 (autoload 'ada-goto-declaration "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5459 (autoload 'ada-goto-declaration-other-frame "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5460 (autoload 'ada-goto-parent "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5461 (autoload 'ada-make-body-gnatstub "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5462 (autoload 'ada-point-and-xref "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5463 (autoload 'ada-reread-prj-file "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5464 (autoload 'ada-run-application "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5465 (autoload 'ada-set-default-project-file "ada-xref" nil nil) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5466 (autoload 'ada-set-default-project-file "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5467 (autoload 'ada-xref-goto-previous-reference "ada-xref" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5468 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5469 (autoload 'ada-customize "ada-prj" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5470 (autoload 'ada-prj-edit "ada-prj" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5471 (autoload 'ada-prj-new "ada-prj" nil t) |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5472 (autoload 'ada-prj-save "ada-prj" nil t) |
25903
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5473 )) |
50736
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5474 |
b0ce71ab9c28
(ada-search-directories): Take into account ADA_INCLUDE_PATH for better
Juanma Barranquero <lekktu@gmail.com>
parents:
49598
diff
changeset
|
5475 (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
|
5476 (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
|
5477 (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
|
5478 (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
|
5479 (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
|
5480 (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
|
5481 (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
|
5482 (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
|
5483 (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
|
5484 (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
|
5485 (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
|
5486 (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
|
5487 (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
|
5488 (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
|
5489 (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
|
5490 (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
|
5491 (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
|
5492 (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
|
5493 (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
|
5494 (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
|
5495 (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
|
5496 (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
|
5497 (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
|
5498 (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
|
5499 (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
|
5500 (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
|
5501 (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
|
5502 (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
|
5503 |
812005e9c20e
(ada-get-indent-*, ada-indent-current, ada-goto-*,
Gerd Moellmann <gerd@gnu.org>
parents:
25420
diff
changeset
|
5504 ;;; provide ourselves |
10705 | 5505 (provide 'ada-mode) |
5506 | |
10707 | 5507 ;;; ada-mode.el ends here |