Mercurial > emacs
annotate lisp/progmodes/autoconf.el @ 56905:661d52db56de
(isearch-toggle-regexp): Set `isearch-success' and `isearch-adjusted' to `t'.
(isearch-toggle-case-fold): Set `isearch-success' to `t'.
(isearch-message-prefix): Add "pending" for isearch-adjusted.
(isearch-other-meta-char): Restore isearch-point unconditionally.
(isearch-query-replace): Add new arg `regexp-flag' and use it.
Set point to start of match if region is not active in transient
mark mode (to include the current match to region boundaries).
Push the search string to `query-replace-from-history-variable'.
Add prompt "Query replace regexp" for isearch-regexp.
Add region beginning/end as last arguments of `perform-replace.'
(isearch-query-replace-regexp): Replace code by the call to
`isearch-query-replace' with arg `t'.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Fri, 03 Sep 2004 20:32:57 +0000 |
parents | e8824c4f5f7e |
children | a32d053617ec 8e5779acd195 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
28028
diff
changeset
|
1 ;;; autoconf.el --- mode for editing Autoconf configure.in files |
28028 | 2 |
53013
764a1df5b26c
(autoconf-font-lock-keywords): Also highlight AH_*.
Andreas Schwab <schwab@suse.de>
parents:
52401
diff
changeset
|
3 ;; Copyright (C) 2000, 2003 Free Software Foundation, Inc. |
28028 | 4 |
5 ;; Author: Dave Love <fx@gnu.org> | |
6 ;; Keywords: languages | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
24 | |
25 ;;; Commentary: | |
26 | |
27 ;; Provides fairly minimal font-lock, imenu and indentation support | |
28 ;; for editing configure.in files. Only Autoconf syntax is processed. | |
29 ;; There is no attempt to deal with shell text -- probably that will | |
30 ;; always lose. | |
31 | |
32 ;; This is specialized for configure.in files. It doesn't inherit the | |
33 ;; general M4 stuff from M4 mode. | |
34 | |
35 ;; There is also an autoconf-mode.el in existence. That appears to be | |
36 ;; for editing the Autoconf M4 source, rather than configure.in files. | |
37 | |
38 ;;; Code: | |
39 | |
40 (defvar autoconf-mode-map (make-sparse-keymap)) | |
41 | |
42 (defvar autoconf-mode-hook nil | |
43 "Hook run by `autoconf-mode'.") | |
44 | |
45 (defconst autoconf-font-lock-syntactic-keywords | |
46 '(("\\<dnl\\>" 0 '(11)))) | |
47 | |
48 (defconst autoconf-definition-regexp | |
49 "AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\(\\sw+\\)") | |
50 | |
51 (defvar autoconf-font-lock-keywords | |
53013
764a1df5b26c
(autoconf-font-lock-keywords): Also highlight AH_*.
Andreas Schwab <schwab@suse.de>
parents:
52401
diff
changeset
|
52 `(("A[CHM]_\\sw+" . font-lock-keyword-face) |
28028 | 53 (,autoconf-definition-regexp |
54 3 font-lock-function-name-face) | |
55 ;; Are any other M4 keywords really appropriate for configure.in, | |
56 ;; given that we do `dnl'? | |
57 ("changequote" . font-lock-keyword-face))) | |
58 | |
59 (defvar autoconf-mode-syntax-table | |
60 (let ((table (make-syntax-table))) | |
61 (modify-syntax-entry ?\" "." table) | |
62 (modify-syntax-entry ?\n ">" table) | |
63 (modify-syntax-entry ?# "<" table) | |
64 table)) | |
65 | |
66 (defvar autoconf-imenu-generic-expression | |
67 (list (list nil autoconf-definition-regexp 3))) | |
68 | |
69 ;; It's not clear how best to implement this. | |
70 (defun autoconf-current-defun-function () | |
71 "Function to use for `add-log-current-defun-function' in Autoconf mode. | |
72 This version looks back for an AC_DEFINE or AC_SUBST. It will stop | |
73 searching backwards at another AC_... command." | |
74 (save-excursion | |
50982
5ba37a8fa075
(autoconf-current-defun-function): Copy the syntax table before modifying it.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40538
diff
changeset
|
75 (with-syntax-table (copy-syntax-table autoconf-mode-syntax-table) |
28028 | 76 (modify-syntax-entry ?_ "w") |
77 (if (re-search-backward autoconf-definition-regexp | |
78 (save-excursion (beginning-of-defun) (point)) | |
79 t) | |
80 (match-string-no-properties 3))))) | |
81 | |
82 ;;;###autoload | |
83 (defun autoconf-mode () | |
84 "Major mode for editing Autoconf configure.in files." | |
85 (interactive) | |
86 (kill-all-local-variables) | |
87 (use-local-map autoconf-mode-map) | |
88 (setq major-mode 'autoconf-mode) | |
89 (setq mode-name "Autoconf") | |
90 (set-syntax-table autoconf-mode-syntax-table) | |
91 (set (make-local-variable 'parens-require-spaces) nil) ; for M4 arg lists | |
92 (set (make-local-variable 'defun-prompt-regexp) | |
93 "^[ \t]*A[CM]_\\(\\sw\\|\\s_\\)+") | |
94 (set (make-local-variable 'comment-start) "dnl ") | |
40538
4b57ae8d5508
(autoconf-mode): Fix comment-start-skip.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38436
diff
changeset
|
95 (set (make-local-variable 'comment-start-skip) "\\(?:\\<dnl\\|#\\) +") |
28028 | 96 (set (make-local-variable 'font-lock-syntactic-keywords) |
97 autoconf-font-lock-syntactic-keywords) | |
98 (set (make-local-variable 'font-lock-defaults) | |
99 `(autoconf-font-lock-keywords nil nil (("_" . "w")))) | |
100 (set (make-local-variable 'imenu-generic-expression) | |
101 autoconf-imenu-generic-expression) | |
102 (set (make-local-variable 'imenu-syntax-alist) '(("_" . "w"))) | |
103 (set (make-local-variable 'indent-line-function) #'indent-relative) | |
104 (set (make-local-variable 'add-log-current-defun-function) | |
105 #'autoconf-current-defun-function) | |
106 (run-hooks 'autoconf-mode-hook)) | |
107 | |
108 (provide 'autoconf-mode) | |
109 | |
52401 | 110 ;;; arch-tag: 4f44778f-2ab3-49a1-a103-f0acb9df2de4 |
28028 | 111 ;;; autoconf.el ends here |