[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#14427: closed (24.3.50; Highlight symbol at point)

From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#14427: closed (24.3.50; Highlight symbol at point)
Date: Mon, 03 Jun 2013 08:58:02 +0000

Your message dated Mon, 03 Jun 2013 11:54:05 +0300
with message-id <address@hidden>
and subject line Re: bug#14427: 24.3.50; Highlight symbol at point
has caused the debbugs.gnu.org bug report #14427,
regarding 24.3.50; Highlight symbol at point
to be marked as done.

(If you believe you have received this mail in error, please contact

14427: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14427
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.3.50; Highlight symbol at point Date: Tue, 21 May 2013 01:54:34 +0300 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)
This feature request mostly doesn't depend on the outcome of bug#14405.
I don't know why Jambunathan didn't propose this feature earlier, but it
logically follows from his other improvements in hi-lock.el, i.e. the
feature that doesn't ask for a face and automatically uses the next face
from the list of available faces suggests also a command that doesn't ask
for a symbol and automatically uses the symbol at point:

=== modified file 'lisp/hi-lock.el'
--- lisp/hi-lock.el     2013-03-31 13:34:35 +0000
+++ lisp/hi-lock.el     2013-05-20 22:52:54 +0000
@@ -483,6 +461,27 @@ (defun hi-lock-face-phrase-buffer (regex
   (unless hi-lock-mode (hi-lock-mode 1))
   (hi-lock-set-pattern regexp face))
+(defalias 'highlight-symbol-at-point 'hi-lock-face-symbol-at-point)
+(defun hi-lock-face-symbol-at-point ()
+  "Set face of each match of the symbol at point.
+Use `find-tag-default-as-symbol-regexp' to retrieve the symbol at point.
+Use non-nil `hi-lock-auto-select-face' to retrieve the next face
+from `hi-lock-face-defaults' automatically.
+Use Font lock mode, if enabled, to highlight symbol at point.
+Otherwise, use overlays for highlighting.  If overlays are used,
+the highlighting will not update as you type."
+  (interactive)
+  (let* ((regexp (hi-lock-regexp-okay
+                 (find-tag-default-as-symbol-regexp)))
+        (hi-lock-auto-select-face t)
+        (face (hi-lock-read-face-name)))
+    (or (facep face) (setq face 'hi-yellow))
+    (unless hi-lock-mode (hi-lock-mode 1))
+    (hi-lock-set-pattern regexp face)))
 (defun hi-lock-keyword->face (keyword)
   (cadr (cadr (cadr keyword))))    ; Keyword looks like (REGEXP (0 'FACE) ...).

--- End Message ---
--- Begin Message --- Subject: Re: bug#14427: 24.3.50; Highlight symbol at point Date: Mon, 03 Jun 2013 11:54:05 +0300 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)
>> If you could commit this change, I can start using it right away.

Thanks for the reminder, this is installed now.

> Small note.  I haven't tested the isearch portions of the patch.

Isearch integration with hi-lock is far from ideal yet.
The limiting factor is that hi-lock is based on font-lock
when font-lock is enabled.  Otherwise, it is plain search-based.

Perhaps we should check in `isearch-highlight-regexp'
whether font-lock is active in the current buffer,
and when font-lock is disabled then let-bind all relevant
search variables like `lax-whitespace', `search-invisible',
filters, etc.  So search-based hi-lock will be able to highlight
correctly the same matches as isearch.

This will provide the correct conversion of the search parameters
to hi-lock (at least partly for the case when font-lock is disabled
and hi-lock is search-based).

--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]