[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/sweeprolog 8d13f21c0d 162/166: ADDED: new command sweeprol
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/sweeprolog 8d13f21c0d 162/166: ADDED: new command sweeprolog-highlight-variable |
Date: |
Fri, 30 Sep 2022 04:59:35 -0400 (EDT) |
branch: elpa/sweeprolog
commit 8d13f21c0d7ac84ddd47014bc1f70019beab71b5
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>
ADDED: new command sweeprolog-highlight-variable
* (sweeprolog-highlight-variable): New command
* (sweeprolog-cursor-sensor-functions): use it
---
sweeprolog.el | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/sweeprolog.el b/sweeprolog.el
index 794e0aa7b1..a824d5ffae 100644
--- a/sweeprolog.el
+++ b/sweeprolog.el
@@ -2143,6 +2143,37 @@ Interactively, POINT is set to the current point."
(cons car (line-beginning-position))))
(cdr sol)))))
+(defun sweeprolog-highlight-variable (var)
+ "Highlight occurences of the variable VAR in the current clause.
+
+If VAR is nil, clear variable highlighting in the current clause
+instead.
+
+Interactively, if a prefix argument is specificed, clear variable
+highlighting in the current clause. Otherwise prompt for VAR,
+defaulting to the variable at point, if any."
+ (interactive (unless current-prefix-arg
+ (let ((v (symbol-at-point)))
+ (list (read-string "Highlight variable: "
+ nil nil
+ (and v
+ (save-match-data
+ (let ((case-fold-search nil))
+ (string-match
+ (rx bos upper)
+ (symbol-name v))))
+ (symbol-name v))))))
+ sweeprolog-mode sweeprolog-top-level-mode)
+ (let ((sweeprolog--variable-at-point var))
+ (font-lock-fontify-region (point) (point))))
+
+(defun sweeprolog-cursor-sensor-functions (var)
+ (list
+ (lambda (_win old dir)
+ (if (eq dir 'entered)
+ (sweeprolog-highlight-variable var)
+ (sweeprolog-highlight-variable nil)))))
+
(defvar-local sweeprolog--timer nil)
(defvar-local sweeprolog--colourise-buffer-duration 0.2)
- [nongnu] elpa/sweeprolog 7327016d15 095/166: FIXED: sweep_predicates_collection/2: include preds defined in user, (continued)
- [nongnu] elpa/sweeprolog 7327016d15 095/166: FIXED: sweep_predicates_collection/2: include preds defined in user, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog a70a730f48 087/166: PORT: don't use the 2nd arg to looking-at, added only in Emacs 29, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog d1a2913f75 115/166: ENHANCED: Update semantic highlighting on idle timer in sweep-mode, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog b168465391 098/166: FIXED: sweep_load_buffer/3: load files in the context of "user", ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog db7ef44a61 083/166: DOC: add manual section about setting Prolog flags, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 521a4bfde5 132/166: BUILD: replaced Makefile with CMakeLists.txt, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog ecf601dd54 133/166: FIXED: indentation error when typing at end of buffer, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 7bca15bd1e 141/166: DOC: fix copy-paste error in README.org, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 83bbd58031 153/166: ADDED: new command sweeprolog-restart for resetting sweep, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog a369e46143 160/166: ENHANCED: underline occurrences of the variable at point, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 8d13f21c0d 162/166: ADDED: new command sweeprolog-highlight-variable,
ELPA Syncer <=
- [nongnu] elpa/sweeprolog 3d5d0deda5 161/166: ADDED: new user option sweeprolog-enable-cursor-sensor, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog 8f0e4a644d 164/166: FIXED: error on interactively removing variable highlighting, ELPA Syncer, 2022/09/30
- [nongnu] elpa/sweeprolog b43b6019ff 154/166: DOC: document the newly added sweeprolog-restart command, ELPA Syncer, 2022/09/30