annotate lisp/hi-lock.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 1d1d5d9bd884
children e0fba251c544
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: 36708
diff changeset
1 ;;; hi-lock.el --- minor mode for interactive automatic highlighting
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2
100550
ad593a3ba97e Header format fix.
Glenn Morris <rgm@gnu.org>
parents: 97422
diff changeset
3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105933
diff changeset
4 ;; 2008, 2009, 2010 Free Software Foundation, Inc.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5
100550
ad593a3ba97e Header format fix.
Glenn Morris <rgm@gnu.org>
parents: 97422
diff changeset
6 ;; Author: David M. Koppelman <koppel@ece.lsu.edu>
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7 ;; Keywords: faces, minor-mode, matching, display
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
8
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
10
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93434
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93434
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93434
diff changeset
14 ;; (at your option) any later version.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
15
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
20
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93434
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
23
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 36708
diff changeset
24 ;;; Commentary:
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48256
diff changeset
25 ;;
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
26 ;; With the hi-lock commands text matching interactively entered
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
27 ;; regexp's can be highlighted. For example, `M-x highlight-regexp
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
28 ;; RET clearly RET RET' will highlight all occurrences of `clearly'
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
29 ;; using a yellow background face. New occurrences of `clearly' will
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30 ;; be highlighted as they are typed. `M-x unhighlight-regexp RET'
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 ;; will remove the highlighting. Any existing face can be used for
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32 ;; highlighting and a set of appropriate faces is provided. The
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
33 ;; regexps can be written into the current buffer in a form that will
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
34 ;; be recognized the next time the corresponding file is read (when
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
35 ;; file patterns is turned on).
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
36 ;;
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
37 ;; Applications:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
38 ;;
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 ;; In program source code highlight a variable to quickly see all
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
40 ;; places it is modified or referenced:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
41 ;; M-x highlight-regexp ground_contact_switches_closed RET RET
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 ;;
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
43 ;; In a shell or other buffer that is showing lots of program
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
44 ;; output, highlight the parts of the output you're interested in:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45 ;; M-x highlight-regexp Total execution time [0-9]+ RET hi-blue-b RET
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
46 ;;
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
47 ;; In buffers displaying tables, highlight the lines you're interested in:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48 ;; M-x highlight-lines-matching-regexp January 2000 RET hi-black-b RET
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 ;;
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
50 ;; When writing text, highlight personal cliches. This can be
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
51 ;; amusing.
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
52 ;; M-x highlight-phrase as can be seen RET RET
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
53 ;;
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
54 ;; Setup:
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
55 ;;
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
56 ;; Put the following code in your .emacs file. This turns on
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
57 ;; hi-lock mode and adds a "Regexp Highlighting" entry
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
58 ;; to the edit menu.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
59 ;;
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
60 ;; (global-hi-lock-mode 1)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48256
diff changeset
61 ;;
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
62 ;; To enable the use of patterns found in files (presumably placed
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
63 ;; there by hi-lock) include the following in your .emacs file:
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
64 ;;
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
65 ;; (setq hi-lock-file-patterns-policy 'ask)
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
66 ;;
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
67 ;; If you get tired of being asked each time a file is loaded replace
77420
0e63897240ee (hi-lock-file-patterns-policy): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 77384
diff changeset
68 ;; `ask' with a function that returns t if patterns should be read.
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
69 ;;
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
70 ;; You might also want to bind the hi-lock commands to more
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
71 ;; finger-friendly sequences:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
72
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
73 ;; (define-key hi-lock-map "\C-z\C-h" 'highlight-lines-matching-regexp)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
74 ;; (define-key hi-lock-map "\C-zi" 'hi-lock-find-patterns)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
75 ;; (define-key hi-lock-map "\C-zh" 'highlight-regexp)
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
76 ;; (define-key hi-lock-map "\C-zp" 'highlight-phrase)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
77 ;; (define-key hi-lock-map "\C-zr" 'unhighlight-regexp)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
78 ;; (define-key hi-lock-map "\C-zb" 'hi-lock-write-interactive-patterns))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
79
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
80 ;; See the documentation for hi-lock-mode `C-h f hi-lock-mode' for
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
81 ;; additional instructions.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
83 ;; Sample file patterns:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
85 ; Hi-lock: (("^;;; .*" (0 (quote hi-black-hb) t)))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
86 ; Hi-lock: ( ("make-variable-buffer-\\(local\\)" (0 font-lock-keyword-face)(1 'italic append)))))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
87 ; Hi-lock: end
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
88
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
89 ;;; Code:
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
90
30584
b823f1c83a00 (toplevel): Require font-lock.
Eli Zaretskii <eliz@gnu.org>
parents: 30565
diff changeset
91 (eval-and-compile
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
92 (require 'font-lock))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
93
66960
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
94 (defgroup hi-lock nil
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
95 "Interactively add and remove font-lock patterns for highlighting text."
66960
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
96 :link '(custom-manual "(emacs)Highlight Interactively")
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
97 :group 'font-lock)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
98
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
99 (defcustom hi-lock-file-patterns-range 10000
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
100 "Limit of search in a buffer for hi-lock patterns.
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
101 When a file is visited and hi-lock mode is on, patterns starting
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
102 up to this limit are added to font-lock's patterns. See documentation
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103 of functions `hi-lock-mode' and `hi-lock-find-patterns'."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 :type 'integer
66960
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
105 :group 'hi-lock)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
106
67765
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
107 (defcustom hi-lock-highlight-range 200000
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
108 "Size of area highlighted by hi-lock when font-lock not active.
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
109 Font-lock is not active in buffers that do their own highlighting,
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
110 such as the buffer created by `list-colors-display'. In those buffers
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
111 hi-lock patterns will only be applied over a range of
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
112 `hi-lock-highlight-range' characters. If font-lock is active then
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
113 highlighting will be applied throughout the buffer."
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
114 :type 'integer
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
115 :group 'hi-lock)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
116
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117 (defcustom hi-lock-exclude-modes
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 '(rmail-mode mime/viewer-mode gnus-article-mode)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119 "List of major modes in which hi-lock will not run.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
120 For security reasons since font lock patterns can specify function
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
121 calls."
35215
2be11f207ca8 (hi-lock-exclude-modes): Fix :type.
Dave Love <fx@gnu.org>
parents: 33974
diff changeset
122 :type '(repeat symbol)
66960
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
123 :group 'hi-lock)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
124
77553
871bc98458d9 (hi-lock-file-patterns-policy): Default to `ask'.
Richard M. Stallman <rms@gnu.org>
parents: 77420
diff changeset
125 (defcustom hi-lock-file-patterns-policy 'ask
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
126 "Specify when hi-lock should use patterns found in file.
77420
0e63897240ee (hi-lock-file-patterns-policy): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 77384
diff changeset
127 If `ask', prompt when patterns found in buffer; if bound to a function,
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
128 use patterns when function returns t (function is called with patterns
77420
0e63897240ee (hi-lock-file-patterns-policy): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 77384
diff changeset
129 as first argument); if nil or `never' or anything else, don't use file
77384
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
130 patterns."
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
131 :type '(choice (const :tag "Do not use file patterns" never)
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
132 (const :tag "Ask about file patterns" ask)
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
133 (function :tag "Function to check file patterns"))
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
134 :group 'hi-lock
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
135 :version "22.1")
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
136
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
137 ;; It can have a function value.
4c5740f0be2c (hi-lock-file-patterns-policy): Make it a defcustom, and give it the
Glenn Morris <rgm@gnu.org>
parents: 77343
diff changeset
138 (put 'hi-lock-file-patterns-policy 'risky-local-variable t)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
140 (defgroup hi-lock-faces nil
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
141 "Faces for hi-lock."
66960
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
142 :group 'hi-lock
29560f2ff8ed (hi-lock): Rename this defgroup from
Juri Linkov <juri@jurta.org>
parents: 66833
diff changeset
143 :group 'faces)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
144
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145 (defface hi-yellow
61398
499e1a6b0822 (hi-green): Fix face spec.
Kim F. Storm <storm@cua.dk>
parents: 61394
diff changeset
146 '((((min-colors 88) (background dark))
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
147 (:background "yellow1" :foreground "black"))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
148 (((background dark)) (:background "yellow" :foreground "black"))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
149 (((min-colors 88)) (:background "yellow1"))
30896
ca514eff4924 (hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents: 30590
diff changeset
150 (t (:background "yellow")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151 "Default face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
153
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
154 (defface hi-pink
33780
00803fb0f58e (hi-lock-refontify): Don't call non-existent
Gerd Moellmann <gerd@gnu.org>
parents: 31745
diff changeset
155 '((((background dark)) (:background "pink" :foreground "black"))
30896
ca514eff4924 (hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents: 30590
diff changeset
156 (t (:background "pink")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
157 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
158 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
159
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
160 (defface hi-green
61398
499e1a6b0822 (hi-green): Fix face spec.
Kim F. Storm <storm@cua.dk>
parents: 61394
diff changeset
161 '((((min-colors 88) (background dark))
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
162 (:background "green1" :foreground "black"))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
163 (((background dark)) (:background "green" :foreground "black"))
61398
499e1a6b0822 (hi-green): Fix face spec.
Kim F. Storm <storm@cua.dk>
parents: 61394
diff changeset
164 (((min-colors 88)) (:background "green1"))
30896
ca514eff4924 (hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents: 30590
diff changeset
165 (t (:background "green")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
166 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
167 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
168
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
169 (defface hi-blue
33780
00803fb0f58e (hi-lock-refontify): Don't call non-existent
Gerd Moellmann <gerd@gnu.org>
parents: 31745
diff changeset
170 '((((background dark)) (:background "light blue" :foreground "black"))
30896
ca514eff4924 (hi-yellow, hi-pink, hi-green, hi-blue): Force the foreground color to
Miles Bader <miles@gnu.org>
parents: 30590
diff changeset
171 (t (:background "light blue")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
172 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
173 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
174
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
175 (defface hi-black-b
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
176 '((t (:weight bold)))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
177 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
178 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
179
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
180 (defface hi-blue-b
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
181 '((((min-colors 88)) (:weight bold :foreground "blue1"))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
182 (t (:weight bold :foreground "blue")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
183 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
184 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
185
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
186 (defface hi-green-b
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
187 '((((min-colors 88)) (:weight bold :foreground "green1"))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
188 (t (:weight bold :foreground "green")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
189 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
190 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
191
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
192 (defface hi-red-b
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
193 '((((min-colors 88)) (:weight bold :foreground "red1"))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 60902
diff changeset
194 (t (:weight bold :foreground "red")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
195 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
196 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
197
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
198 (defface hi-black-hb
31745
d311d1655d29 (hi-black-hb):
Miles Bader <miles@gnu.org>
parents: 30896
diff changeset
199 '((t (:weight bold :height 1.67 :inherit variable-pitch)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
200 "Face for hi-lock mode."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
201 :group 'hi-lock-faces)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
202
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
203 (defvar hi-lock-file-patterns nil
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
204 "Patterns found in file for hi-lock. Should not be changed.")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
205
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
206 (defvar hi-lock-interactive-patterns nil
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
207 "Patterns provided to hi-lock by user. Should not be changed.")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
208
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
209 (defvar hi-lock-face-defaults
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
210 '("hi-yellow" "hi-pink" "hi-green" "hi-blue" "hi-black-b"
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
211 "hi-blue-b" "hi-red-b" "hi-green-b" "hi-black-hb")
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
212 "Default faces for hi-lock interactive functions.")
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
213
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
214 ;(dolist (f hi-lock-face-defaults) (unless (facep f) (error "%s not a face" f)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
215
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
216 (define-obsolete-variable-alias 'hi-lock-face-history
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
217 'hi-lock-face-defaults
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
218 "23.1")
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
219
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
220 (define-obsolete-variable-alias 'hi-lock-regexp-history
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
221 'regexp-history
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
222 "23.1")
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
223
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
224 (defvar hi-lock-file-patterns-prefix "Hi-lock"
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
225 "Search target for finding hi-lock patterns at top of file.")
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
226
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
227 (defvar hi-lock-archaic-interface-message-used nil
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
228 "True if user alerted that `global-hi-lock-mode' is now the global switch.
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
229 Earlier versions of hi-lock used `hi-lock-mode' as the global switch;
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
230 the message is issued if it appears that `hi-lock-mode' is used assuming
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
231 that older functionality. This variable avoids multiple reminders.")
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
232
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
233 (defvar hi-lock-archaic-interface-deduce nil
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
234 "If non-nil, sometimes assume that `hi-lock-mode' means `global-hi-lock-mode'.
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
235 Assumption is made if `hi-lock-mode' used in the *scratch* buffer while
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
236 a library is being loaded.")
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
237
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
238 (make-variable-buffer-local 'hi-lock-interactive-patterns)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
239 (put 'hi-lock-interactive-patterns 'permanent-local t)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
240 (make-variable-buffer-local 'hi-lock-file-patterns)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
241 (put 'hi-lock-file-patterns 'permanent-local t)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
242
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
243 (defvar hi-lock-menu (make-sparse-keymap "Hi Lock")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
244 "Menu for hi-lock mode.")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
245
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
246 (define-key-after hi-lock-menu [highlight-regexp]
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
247 '(menu-item "Highlight Regexp..." highlight-regexp
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
248 :help "Highlight text matching PATTERN (a regexp)."))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
249
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
250 (define-key-after hi-lock-menu [highlight-phrase]
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
251 '(menu-item "Highlight Phrase..." highlight-phrase
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
252 :help "Highlight text matching PATTERN (a regexp processed to match phrases)."))
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
253
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
254 (define-key-after hi-lock-menu [highlight-lines-matching-regexp]
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
255 '(menu-item "Highlight Lines..." highlight-lines-matching-regexp
105275
b78ceb253d15 * speedbar.el (speedbar-item-delete):
Juanma Barranquero <lekktu@gmail.com>
parents: 103056
diff changeset
256 :help "Highlight lines containing match of PATTERN (a regexp)."))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
257
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
258 (define-key-after hi-lock-menu [unhighlight-regexp]
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
259 '(menu-item "Remove Highlighting..." unhighlight-regexp
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
260 :help "Remove previously entered highlighting pattern."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
261 :enable hi-lock-interactive-patterns))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
262
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
263 (define-key-after hi-lock-menu [hi-lock-write-interactive-patterns]
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
264 '(menu-item "Patterns to Buffer" hi-lock-write-interactive-patterns
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
265 :help "Insert interactively added REGEXPs into buffer at point."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
266 :enable hi-lock-interactive-patterns))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
267
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
268 (define-key-after hi-lock-menu [hi-lock-find-patterns]
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
269 '(menu-item "Patterns from Buffer" hi-lock-find-patterns
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
270 :help "Use patterns (if any) near top of buffer."))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
271
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
272 (defvar hi-lock-map (make-sparse-keymap "Hi Lock")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
273 "Key map for hi-lock.")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
274
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
275 (define-key hi-lock-map "\C-xwi" 'hi-lock-find-patterns)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
276 (define-key hi-lock-map "\C-xwl" 'highlight-lines-matching-regexp)
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
277 (define-key hi-lock-map "\C-xwp" 'highlight-phrase)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
278 (define-key hi-lock-map "\C-xwh" 'highlight-regexp)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
279 (define-key hi-lock-map "\C-xwr" 'unhighlight-regexp)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
280 (define-key hi-lock-map "\C-xwb" 'hi-lock-write-interactive-patterns)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
281
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
282 ;; Visible Functions
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
283
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
284 ;;;###autoload
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
285 (define-minor-mode hi-lock-mode
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
286 "Toggle minor mode for interactively adding font-lock highlighting patterns.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
287
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
288 If ARG positive, turn hi-lock on. Issuing a hi-lock command will also
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
289 turn hi-lock on. To turn hi-lock on in all buffers use
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
290 `global-hi-lock-mode' or in your .emacs file (global-hi-lock-mode 1).
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
291 When hi-lock is turned on, a \"Regexp Highlighting\" submenu is added
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
292 to the \"Edit\" menu. The commands in the submenu, which can be
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
293 called interactively, are:
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
294
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
295 \\[highlight-regexp] REGEXP FACE
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
296 Highlight matches of pattern REGEXP in current buffer with FACE.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
297
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
298 \\[highlight-phrase] PHRASE FACE
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
299 Highlight matches of phrase PHRASE in current buffer with FACE.
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
300 (PHRASE can be any REGEXP, but spaces will be replaced by matches
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
301 to whitespace and initial lower-case letters will become case insensitive.)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48256
diff changeset
302
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
303 \\[highlight-lines-matching-regexp] REGEXP FACE
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
304 Highlight lines containing matches of REGEXP in current buffer with FACE.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
305
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
306 \\[unhighlight-regexp] REGEXP
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
307 Remove highlighting on matches of REGEXP in current buffer.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
308
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
309 \\[hi-lock-write-interactive-patterns]
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
310 Write active REGEXPs into buffer as comments (if possible). They may
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
311 be read the next time file is loaded or when the \\[hi-lock-find-patterns] command
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
312 is issued. The inserted regexps are in the form of font lock keywords.
84872
b39ee0f351f1 (hi-lock-write-interactive-patterns): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents: 82857
diff changeset
313 (See `font-lock-keywords'.) They may be edited and re-loaded with \\[hi-lock-find-patterns],
93434
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
314 any valid `font-lock-keywords' form is acceptable. When a file is
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
315 loaded the patterns are read if `hi-lock-file-patterns-policy' is
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
316 'ask and the user responds y to the prompt, or if
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
317 `hi-lock-file-patterns-policy' is bound to a function and that
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
318 function returns t.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
319
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
320 \\[hi-lock-find-patterns]
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
321 Re-read patterns stored in buffer (in the format produced by \\[hi-lock-write-interactive-patterns]).
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
322
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
323 When hi-lock is started and if the mode is not excluded or patterns
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
324 rejected, the beginning of the buffer is searched for lines of the
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
325 form:
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
326 Hi-lock: FOO
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
327 where FOO is a list of patterns. These are added to the font lock
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
328 keywords already present. The patterns must start before position
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
329 \(number of characters into buffer) `hi-lock-file-patterns-range'.
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
330 Patterns will be read until
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
331 Hi-lock: end
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
332 is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'."
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
333 :group 'hi-lock
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
334 :lighter (:eval (if (or hi-lock-interactive-patterns
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
335 hi-lock-file-patterns)
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
336 " Hi" ""))
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
337 :global nil
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
338 :keymap hi-lock-map
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
339 (when (and (equal (buffer-name) "*scratch*")
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
340 load-in-progress
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 105275
diff changeset
341 (not (called-interactively-p 'interactive))
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
342 (not hi-lock-archaic-interface-message-used))
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
343 (setq hi-lock-archaic-interface-message-used t)
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
344 (if hi-lock-archaic-interface-deduce
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
345 (global-hi-lock-mode hi-lock-mode)
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
346 (warn
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
347 "Possible archaic use of (hi-lock-mode).
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
348 Use (global-hi-lock-mode 1) in .emacs to enable hi-lock for all buffers,
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
349 use (hi-lock-mode 1) for individual buffers. For compatibility with Emacs
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
350 versions before 22 use the following in your .emacs file:
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
351
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
352 (if (functionp 'global-hi-lock-mode)
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
353 (global-hi-lock-mode 1)
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
354 (hi-lock-mode 1))
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
355 ")))
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
356 (if hi-lock-mode
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
357 ;; Turned on.
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
358 (progn
67115
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
359 (unless font-lock-mode (font-lock-mode 1))
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
360 (define-key-after menu-bar-edit-menu [hi-lock]
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
361 (cons "Regexp Highlighting" hi-lock-menu))
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
362 (hi-lock-find-patterns)
67115
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
363 (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook nil t))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
364 ;; Turned off.
67115
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
365 (when (or hi-lock-interactive-patterns
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
366 hi-lock-file-patterns)
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
367 (when hi-lock-interactive-patterns
67115
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
368 (font-lock-remove-keywords nil hi-lock-interactive-patterns)
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
369 (setq hi-lock-interactive-patterns nil))
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
370 (when hi-lock-file-patterns
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
371 (font-lock-remove-keywords nil hi-lock-file-patterns)
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
372 (setq hi-lock-file-patterns nil))
67765
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
373 (remove-overlays nil nil 'hi-lock-overlay t)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
374 (when font-lock-fontified (font-lock-fontify-buffer)))
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
375 (define-key-after menu-bar-edit-menu [hi-lock] nil)
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
376 (remove-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook t)))
66833
efab878cd2e1 * hi-lock.el (hi-lock-mode): Set the default value of
Chong Yidong <cyd@stupidchicken.com>
parents: 65582
diff changeset
377
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
378 ;;;###autoload
75642
a27300a96e36 (global-hi-lock-mode): define-global-minor-mode changed to
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
379 (define-globalized-minor-mode global-hi-lock-mode
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
380 hi-lock-mode turn-on-hi-lock-if-enabled
67114
440072194b4b Fix typo.
Chong Yidong <cyd@stupidchicken.com>
parents: 67113
diff changeset
381 :group 'hi-lock)
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
382
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
383 (defun turn-on-hi-lock-if-enabled ()
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
384 (setq hi-lock-archaic-interface-message-used t)
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
385 (unless (memq major-mode hi-lock-exclude-modes)
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
386 (hi-lock-mode 1)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
387
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
388 ;;;###autoload
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
389 (defalias 'highlight-lines-matching-regexp 'hi-lock-line-face-buffer)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
390 ;;;###autoload
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
391 (defun hi-lock-line-face-buffer (regexp &optional face)
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
392 "Set face of all lines containing a match of REGEXP to FACE.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
393
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
394 Interactively, prompt for REGEXP then FACE. Buffer-local history
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
395 list maintained for regexps, global history maintained for faces.
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
396 \\<minibuffer-local-map>Use \\[previous-history-element] to retrieve previous history items,
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
397 and \\[next-history-element] to retrieve default values.
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
398 \(See info node `Minibuffer History'.)"
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
399 (interactive
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
400 (list
97083
e4097ac146ee (hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents: 96436
diff changeset
401 (hi-lock-regexp-okay
e4097ac146ee (hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents: 96436
diff changeset
402 (read-regexp "Regexp to highlight line" (car regexp-history)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
403 (hi-lock-read-face-name)))
67208
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
404 (or (facep face) (setq face 'hi-yellow))
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
405 (unless hi-lock-mode (hi-lock-mode 1))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
406 (hi-lock-set-pattern
36708
0e09b49d21b8 (hi-lock-line-face-buffer): Wrap the regexp in a group
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 36357
diff changeset
407 ;; The \\(?:...\\) grouping construct ensures that a leading ^, +, * or ?
0e09b49d21b8 (hi-lock-line-face-buffer): Wrap the regexp in a group
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 36357
diff changeset
408 ;; or a trailing $ in REGEXP will be interpreted correctly.
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
409 (concat "^.*\\(?:" regexp "\\).*$") face))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
410
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
411
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
412 ;;;###autoload
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
413 (defalias 'highlight-regexp 'hi-lock-face-buffer)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
414 ;;;###autoload
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
415 (defun hi-lock-face-buffer (regexp &optional face)
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
416 "Set face of each match of REGEXP to FACE.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
417
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
418 Interactively, prompt for REGEXP then FACE. Buffer-local history
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
419 list maintained for regexps, global history maintained for faces.
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
420 \\<minibuffer-local-map>Use \\[previous-history-element] to retrieve previous history items,
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
421 and \\[next-history-element] to retrieve default values.
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
422 \(See info node `Minibuffer History'.)"
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
423 (interactive
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
424 (list
97083
e4097ac146ee (hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents: 96436
diff changeset
425 (hi-lock-regexp-okay
e4097ac146ee (hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents: 96436
diff changeset
426 (read-regexp "Regexp to highlight" (car regexp-history)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
427 (hi-lock-read-face-name)))
67208
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
428 (or (facep face) (setq face 'hi-yellow))
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
429 (unless hi-lock-mode (hi-lock-mode 1))
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
430 (hi-lock-set-pattern regexp face))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
431
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
432 ;;;###autoload
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
433 (defalias 'highlight-phrase 'hi-lock-face-phrase-buffer)
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
434 ;;;###autoload
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
435 (defun hi-lock-face-phrase-buffer (regexp &optional face)
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
436 "Set face of each match of phrase REGEXP to FACE.
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
437
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
438 Whitespace in REGEXP converted to arbitrary whitespace and initial
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
439 lower-case letters made case insensitive."
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
440 (interactive
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
441 (list
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
442 (hi-lock-regexp-okay
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
443 (hi-lock-process-phrase
97083
e4097ac146ee (hi-lock-line-face-buffer, hi-lock-face-buffer)
Juri Linkov <juri@jurta.org>
parents: 96436
diff changeset
444 (read-regexp "Phrase to highlight" (car regexp-history))))
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
445 (hi-lock-read-face-name)))
67208
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
446 (or (facep face) (setq face 'hi-yellow))
67474
a75f6e2ee182 (hi-lock-mode) Renamed from hi-lock-buffer-mode; react if global-hi-lock-mode
Eli Zaretskii <eliz@gnu.org>
parents: 67208
diff changeset
447 (unless hi-lock-mode (hi-lock-mode 1))
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
448 (hi-lock-set-pattern regexp face))
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
449
105933
8f110099da5c Update x-popup-menu declaration.
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
450 (declare-function x-popup-menu "menu.c" (position menu))
97422
6e551caf98f6 Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents: 97083
diff changeset
451
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
452 ;;;###autoload
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
453 (defalias 'unhighlight-regexp 'hi-lock-unface-buffer)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
454 ;;;###autoload
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
455 (defun hi-lock-unface-buffer (regexp)
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
456 "Remove highlighting of each match to REGEXP set by hi-lock.
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
457
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
458 Interactively, prompt for REGEXP. Buffer-local history of inserted
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
459 regexp's maintained. Will accept only regexps inserted by hi-lock
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
460 interactive functions. \(See `hi-lock-interactive-patterns'.\)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
461 \\<minibuffer-local-must-match-map>Use \\[minibuffer-complete] to complete a partially typed regexp.
30590
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
462 \(See info node `Minibuffer History'.\)"
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
463 (interactive
82857
2a4d4f565ad8 (hi-lock-unface-buffer): Show a x-menu only if the mouse was used.
Michaël Cadilhac <michael.cadilhac@lrde.org>
parents: 78236
diff changeset
464 (if (and (display-popup-menus-p) (not last-nonmenu-event))
30590
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
465 (catch 'snafu
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
466 (or
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
467 (x-popup-menu
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
468 t
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
469 (cons
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
470 `keymap
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
471 (cons "Select Pattern to Unhighlight"
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
472 (mapcar (lambda (pattern)
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
473 (list (car pattern)
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
474 (format
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
475 "%s (%s)" (car pattern)
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
476 (symbol-name
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
477 (car
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
478 (cdr (car (cdr (car (cdr pattern))))))))
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
479 (cons nil nil)
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
480 (car pattern)))
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
481 hi-lock-interactive-patterns))))
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
482 ;; If the user clicks outside the menu, meaning that they
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
483 ;; change their mind, x-popup-menu returns nil, and
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
484 ;; interactive signals a wrong number of arguments error.
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
485 ;; To prevent that, we return an empty string, which will
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
486 ;; effectively disable the rest of the function.
63a24eff41fe (hi-lock-unface-buffer): If a menu of regexps is
Eli Zaretskii <eliz@gnu.org>
parents: 30584
diff changeset
487 (throw 'snafu '(""))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
488 (let ((history-list (mapcar (lambda (p) (car p))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
489 hi-lock-interactive-patterns)))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
490 (unless hi-lock-interactive-patterns
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
491 (error "No highlighting to remove"))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
492 (list
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
493 (completing-read "Regexp to unhighlight: "
36357
06ff4f3266f8 (hi-lock-unface-buffer): Use nil rather than t for
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 36062
diff changeset
494 hi-lock-interactive-patterns nil t
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
495 (car (car hi-lock-interactive-patterns))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
496 (cons 'history-list 1))))))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
497 (let ((keyword (assoc regexp hi-lock-interactive-patterns)))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
498 (when keyword
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
499 (font-lock-remove-keywords nil (list keyword))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
500 (setq hi-lock-interactive-patterns
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
501 (delq keyword hi-lock-interactive-patterns))
67765
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
502 (remove-overlays
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
503 nil nil 'hi-lock-overlay-regexp (hi-lock-string-serialize regexp))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
504 (when font-lock-fontified (font-lock-fontify-buffer)))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
505
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
506 ;;;###autoload
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
507 (defun hi-lock-write-interactive-patterns ()
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
508 "Write interactively added patterns, if any, into buffer at point.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
509
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
510 Interactively added patterns are those normally specified using
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
511 `highlight-regexp' and `highlight-lines-matching-regexp'; they can
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
512 be found in variable `hi-lock-interactive-patterns'."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
513 (interactive)
67208
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
514 (if (null hi-lock-interactive-patterns)
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
515 (error "There are no interactive patterns"))
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
516 (let ((beg (point)))
84872
b39ee0f351f1 (hi-lock-write-interactive-patterns): Use `mapc' rather than `mapcar'.
Juanma Barranquero <lekktu@gmail.com>
parents: 82857
diff changeset
517 (mapc
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
518 (lambda (pattern)
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
519 (insert (format "%s: (%s)\n"
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
520 hi-lock-file-patterns-prefix
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
521 (prin1-to-string pattern))))
67208
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
522 hi-lock-interactive-patterns)
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
523 (comment-region beg (point)))
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
524 (when (> (point) hi-lock-file-patterns-range)
af4b92018fde * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
Chong Yidong <cyd@stupidchicken.com>
parents: 67115
diff changeset
525 (warn "Inserted keywords not close enough to top of file")))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
526
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
527 ;; Implementation Functions
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
528
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
529 (defun hi-lock-process-phrase (phrase)
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
530 "Convert regexp PHRASE to a regexp that matches phrases.
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
531
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
532 Blanks in PHRASE replaced by regexp that matches arbitrary whitespace
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
533 and initial lower-case letters made case insensitive."
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
534 (let ((mod-phrase nil))
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
535 (setq mod-phrase
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
536 (replace-regexp-in-string
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
537 "\\<[a-z]" (lambda (m) (format "[%s%s]" (upcase m) m)) phrase))
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
538 (setq mod-phrase
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
539 (replace-regexp-in-string
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
540 "\\s-+" "[ \t\n]+" mod-phrase nil t))))
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
541
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
542 (defun hi-lock-regexp-okay (regexp)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
543 "Return REGEXP if it appears suitable for a font-lock pattern.
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
544
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
545 Otherwise signal an error. A pattern that matches the null string is
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
546 not suitable."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
547 (if (string-match regexp "")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
548 (error "Regexp cannot match an empty string")
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
549 regexp))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
550
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
551 (defun hi-lock-read-face-name ()
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
552 "Read face name from minibuffer with completion and history."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
553 (intern (completing-read
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
554 "Highlight using face: "
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
555 obarray 'facep t
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
556 (cons (car hi-lock-face-defaults)
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
557 (let ((prefix
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
558 (try-completion
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
559 (substring (car hi-lock-face-defaults) 0 1)
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
560 hi-lock-face-defaults)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
561 (if (and (stringp prefix)
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
562 (not (equal prefix (car hi-lock-face-defaults))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
563 (length prefix) 0)))
96436
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
564 'face-name-history
de00a663995a (hi-lock-regexp-history): Make it an obsolete alias
Juri Linkov <juri@jurta.org>
parents: 94678
diff changeset
565 (cdr hi-lock-face-defaults))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
566
103056
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
567 (defvar hi-lock--inhibit-font-lock-hook nil
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
568 "Inhibit the action of `hi-lock-font-lock-hook'.
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
569 This is used by `hi-lock-set-pattern'.")
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
570
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
571 (defun hi-lock-set-pattern (regexp face)
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
572 "Highlight REGEXP with face FACE."
103056
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
573 (let ((pattern (list regexp (list 0 (list 'quote face) t)))
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
574 ;; The call to `font-lock-add-keywords' below might disable
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
575 ;; and re-enable font-lock mode. If so, we don't want
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
576 ;; `hi-lock-font-lock-hook' to run. This can be removed once
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
577 ;; Bug#635 is fixed. -- cyd
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
578 (hi-lock--inhibit-font-lock-hook t))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
579 (unless (member pattern hi-lock-interactive-patterns)
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
580 (font-lock-add-keywords nil (list pattern) t)
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
581 (push pattern hi-lock-interactive-patterns)
67765
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
582 (if font-lock-fontified
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
583 (font-lock-fontify-buffer)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
584 (let* ((serial (hi-lock-string-serialize regexp))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
585 (range-min (- (point) (/ hi-lock-highlight-range 2)))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
586 (range-max (+ (point) (/ hi-lock-highlight-range 2)))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
587 (search-start
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
588 (max (point-min)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
589 (- range-min (max 0 (- range-max (point-max))))))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
590 (search-end
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
591 (min (point-max)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
592 (+ range-max (max 0 (- (point-min) range-min))))))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
593 (save-excursion
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
594 (goto-char search-start)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
595 (while (re-search-forward regexp search-end t)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
596 (let ((overlay (make-overlay (match-beginning 0) (match-end 0))))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
597 (overlay-put overlay 'hi-lock-overlay t)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
598 (overlay-put overlay 'hi-lock-overlay-regexp serial)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
599 (overlay-put overlay 'face face))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
600 (goto-char (match-end 0)))))))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
601
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
602 (defun hi-lock-set-file-patterns (patterns)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
603 "Replace file patterns list with PATTERNS and refontify."
35926
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
604 (when (or hi-lock-file-patterns patterns)
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
605 (font-lock-remove-keywords nil hi-lock-file-patterns)
d2997845573f (hi-lock-mode): Toggling hi-lock-mode now affects all
Gerd Moellmann <gerd@gnu.org>
parents: 35779
diff changeset
606 (setq hi-lock-file-patterns patterns)
67768
edd5b99fd103 (hi-lock-archaic-interface-message-used)
Juri Linkov <juri@jurta.org>
parents: 67765
diff changeset
607 (font-lock-add-keywords nil hi-lock-file-patterns t)
67115
152403ad207b * hi-lock.el (hi-lock-buffer-mode): Turn on font-lock.
Chong Yidong <cyd@stupidchicken.com>
parents: 67114
diff changeset
608 (font-lock-fontify-buffer)))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
609
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
610 (defun hi-lock-find-patterns ()
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
611 "Find patterns in current buffer for hi-lock."
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
612 (interactive)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
613 (unless (memq major-mode hi-lock-exclude-modes)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
614 (let ((all-patterns nil)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
615 (target-regexp (concat "\\<" hi-lock-file-patterns-prefix ":")))
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
616 (save-excursion
43052
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
617 (save-restriction
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
618 (widen)
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
619 (goto-char (point-min))
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
620 (re-search-forward target-regexp
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
621 (+ (point) hi-lock-file-patterns-range) t)
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
622 (beginning-of-line)
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
623 (while (and (re-search-forward target-regexp (+ (point) 100) t)
4037178317df *** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39065
diff changeset
624 (not (looking-at "\\s-*end")))
64117
8ad318b132eb (hi-lock-find-patterns): Protect also against invalid values for the pattern
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
625 (condition-case nil
8ad318b132eb (hi-lock-find-patterns): Protect also against invalid values for the pattern
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
626 (setq all-patterns (append (read (current-buffer)) all-patterns))
8ad318b132eb (hi-lock-find-patterns): Protect also against invalid values for the pattern
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
627 (error (message "Invalid pattern list expression at %d"
67112
146389d32df6 * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'.
Chong Yidong <cyd@stupidchicken.com>
parents: 66960
diff changeset
628 (line-number-at-pos)))))))
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
629 (when (and all-patterns
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
630 hi-lock-mode
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
631 (cond
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
632 ((eq this-command 'hi-lock-find-patterns) t)
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
633 ((functionp hi-lock-file-patterns-policy)
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
634 (funcall hi-lock-file-patterns-policy all-patterns))
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
635 ((eq hi-lock-file-patterns-policy 'ask)
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
636 (y-or-n-p "Add patterns from this buffer to hi-lock? "))
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
637 (t nil)))
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
638 (hi-lock-set-file-patterns all-patterns)
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 105275
diff changeset
639 (if (called-interactively-p 'interactive)
77343
f8ec7356b88a (hi-lock-file-patterns-policy): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 75642
diff changeset
640 (message "Hi-lock added %d patterns." (length all-patterns)))))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
641
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
642 (defun hi-lock-font-lock-hook ()
68559
695ee8cc49c1 (hi-lock-mode, hi-lock-line-face-buffer, hi-lock-face-buffer,
Juanma Barranquero <lekktu@gmail.com>
parents: 67768
diff changeset
643 "Add hi-lock patterns to font-lock's."
103056
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
644 (unless hi-lock--inhibit-font-lock-hook
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
645 (if font-lock-mode
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
646 (progn
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
647 (font-lock-add-keywords nil hi-lock-file-patterns t)
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
648 (font-lock-add-keywords nil hi-lock-interactive-patterns t))
b6361d016a5a * hi-lock.el (hi-lock--inhibit-font-lock-hook): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
649 (hi-lock-mode -1))))
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
650
67765
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
651 (defvar hi-lock-string-serialize-hash
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
652 (make-hash-table :test 'equal)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
653 "Hash table used to assign unique numbers to strings.")
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
654
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
655 (defvar hi-lock-string-serialize-serial 1
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
656 "Number assigned to last new string in call to `hi-lock-string-serialize'.
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
657 A string is considered new if it had not previously been used in a call to
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
658 `hi-lock-string-serialize'.")
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
659
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
660 (defun hi-lock-string-serialize (string)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
661 "Return unique serial number for STRING."
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
662 (interactive)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
663 (let ((val (gethash string hi-lock-string-serialize-hash)))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
664 (if val val
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
665 (puthash string
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
666 (setq hi-lock-string-serialize-serial
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
667 (1+ hi-lock-string-serialize-serial))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
668 hi-lock-string-serialize-hash)
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
669 hi-lock-string-serialize-serial)))
fd7c898ab005 (hi-lock-highlight-range): New variable.
Juri Linkov <juri@jurta.org>
parents: 67474
diff changeset
670
93434
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
671 (defun hi-lock-unload-function ()
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
672 "Unload the Hi-Lock library."
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
673 (global-hi-lock-mode -1)
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
674 ;; continue standard unloading
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
675 nil)
d3e8f7c16304 (hi-lock-mode): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
676
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
677 (provide 'hi-lock)
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
678
60902
7160fe3a7ef1 find-file-hooks -> find-file-hook.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 59873
diff changeset
679 ;; arch-tag: d2e8fd07-4cc9-4c6f-a200-1e729bc54066
30565
338238ca63ce *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
680 ;;; hi-lock.el ends here