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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
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
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
4
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
5 ;; Author: Dave Love <fx@gnu.org>
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
6 ;; Keywords: languages
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
7
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
9
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
13 ;; any later version.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
14
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
19
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
24
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
26
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
27 ;; Provides fairly minimal font-lock, imenu and indentation support
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
28 ;; for editing configure.in files. Only Autoconf syntax is processed.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
29 ;; There is no attempt to deal with shell text -- probably that will
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
30 ;; always lose.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
31
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
32 ;; This is specialized for configure.in files. It doesn't inherit the
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
33 ;; general M4 stuff from M4 mode.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
34
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
35 ;; There is also an autoconf-mode.el in existence. That appears to be
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
36 ;; for editing the Autoconf M4 source, rather than configure.in files.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
37
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
38 ;;; Code:
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
39
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
40 (defvar autoconf-mode-map (make-sparse-keymap))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
41
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
42 (defvar autoconf-mode-hook nil
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
43 "Hook run by `autoconf-mode'.")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
44
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
45 (defconst autoconf-font-lock-syntactic-keywords
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
46 '(("\\<dnl\\>" 0 '(11))))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
47
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
48 (defconst autoconf-definition-regexp
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
49 "AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\(\\sw+\\)")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
50
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
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
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
53 (,autoconf-definition-regexp
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
54 3 font-lock-function-name-face)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
55 ;; Are any other M4 keywords really appropriate for configure.in,
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
56 ;; given that we do `dnl'?
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
57 ("changequote" . font-lock-keyword-face)))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
58
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
59 (defvar autoconf-mode-syntax-table
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
60 (let ((table (make-syntax-table)))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
61 (modify-syntax-entry ?\" "." table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
62 (modify-syntax-entry ?\n ">" table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
63 (modify-syntax-entry ?# "<" table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
64 table))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
65
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
66 (defvar autoconf-imenu-generic-expression
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
67 (list (list nil autoconf-definition-regexp 3)))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
68
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
69 ;; It's not clear how best to implement this.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
70 (defun autoconf-current-defun-function ()
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
71 "Function to use for `add-log-current-defun-function' in Autoconf mode.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
72 This version looks back for an AC_DEFINE or AC_SUBST. It will stop
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
73 searching backwards at another AC_... command."
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
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
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
76 (modify-syntax-entry ?_ "w")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
77 (if (re-search-backward autoconf-definition-regexp
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
78 (save-excursion (beginning-of-defun) (point))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
79 t)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
80 (match-string-no-properties 3)))))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
81
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
82 ;;;###autoload
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
83 (defun autoconf-mode ()
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
84 "Major mode for editing Autoconf configure.in files."
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
85 (interactive)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
86 (kill-all-local-variables)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
87 (use-local-map autoconf-mode-map)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
88 (setq major-mode 'autoconf-mode)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
89 (setq mode-name "Autoconf")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
90 (set-syntax-table autoconf-mode-syntax-table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
91 (set (make-local-variable 'parens-require-spaces) nil) ; for M4 arg lists
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
92 (set (make-local-variable 'defun-prompt-regexp)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
93 "^[ \t]*A[CM]_\\(\\sw\\|\\s_\\)+")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
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
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
96 (set (make-local-variable 'font-lock-syntactic-keywords)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
97 autoconf-font-lock-syntactic-keywords)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
98 (set (make-local-variable 'font-lock-defaults)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
99 `(autoconf-font-lock-keywords nil nil (("_" . "w"))))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
100 (set (make-local-variable 'imenu-generic-expression)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
101 autoconf-imenu-generic-expression)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
102 (set (make-local-variable 'imenu-syntax-alist) '(("_" . "w")))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
103 (set (make-local-variable 'indent-line-function) #'indent-relative)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
104 (set (make-local-variable 'add-log-current-defun-function)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
105 #'autoconf-current-defun-function)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
106 (run-hooks 'autoconf-mode-hook))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
107
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
108 (provide 'autoconf-mode)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
109
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 50982
diff changeset
110 ;;; arch-tag: 4f44778f-2ab3-49a1-a103-f0acb9df2de4
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
111 ;;; autoconf.el ends here