[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/symbol-overlay 068c6c801a 053/152: narrow to paragraph whe
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/symbol-overlay 068c6c801a 053/152: narrow to paragraph when scope is not found |
Date: |
Thu, 7 Jul 2022 12:04:12 -0400 (EDT) |
branch: elpa/symbol-overlay
commit 068c6c801af9e49d0f8ca0587f402f127abe7ac7
Author: wolray <290061869@qq.com>
Commit: wolray <290061869@qq.com>
narrow to paragraph when scope is not found
---
readme.md | 9 ++++----
symbol-overlay.el | 61 +++++++++++++++++++++++++++++++++++--------------------
2 files changed, 44 insertions(+), 26 deletions(-)
diff --git a/readme.md b/readme.md
index 2e91f15660..703dc7773c 100644
--- a/readme.md
+++ b/readme.md
@@ -62,20 +62,21 @@ To use `symbol-overlay` in your Emacs, you need only to
bind these keys:
(global-set-key (kbd "M-i") 'symbol-overlay-put)
(global-set-key (kbd "M-u") 'symbol-overlay-switch-backward)
(global-set-key (kbd "M-o") 'symbol-overlay-switch-forward)
- (global-set-key (kbd "<f8>") 'symbol-overlay-mode)
+ (global-set-key (kbd "<f7>") 'symbol-overlay-mode)
+ (global-set-key (kbd "<f8>") 'symbol-overlay-remove-all)
Default key-bindings defined in `symbol-overlay-map`:
"i" -> symbol-overlay-put
"u" -> symbol-overlay-jump-prev
"o" -> symbol-overlay-jump-next
- "k" -> symbol-overlay-remove-all
"w" -> symbol-overlay-save-symbol
+ "t" -> symbol-overlay-toggle-in-scope
"e" -> symbol-overlay-echo-mark
"d" -> symbol-overlay-jump-to-definition
- "t" -> symbol-overlay-toggle-in-scope
+ "s" -> symbol-overlay-isearch-literally
"q" -> symbol-overlay-query-replace
- "SPC" -> symbol-overlay-rename
+ "r" -> symbol-overlay-rename
You can re-bind the commands to any keys you prefer by simply writing
diff --git a/symbol-overlay.el b/symbol-overlay.el
index 917ef47d13..4bd0e77fe7 100644
--- a/symbol-overlay.el
+++ b/symbol-overlay.el
@@ -68,7 +68,8 @@
;; (global-set-key (kbd "M-i") 'symbol-overlay-put)
;; (global-set-key (kbd "M-u") 'symbol-overlay-switch-backward)
;; (global-set-key (kbd "M-o") 'symbol-overlay-switch-forward)
-;; (global-set-key (kbd "<f8>") 'symbol-overlay-mode)
+;; (global-set-key (kbd "<f7>") 'symbol-overlay-mode)
+;; (global-set-key (kbd "<f8>") 'symbol-overlay-remove-all)
;; Default key-bindings are defined in `symbol-overlay-map'.
;; You can re-bind the commands to any keys you prefer by simply writing
@@ -84,14 +85,13 @@
(define-key map (kbd "i") 'symbol-overlay-put)
(define-key map (kbd "u") 'symbol-overlay-jump-prev)
(define-key map (kbd "o") 'symbol-overlay-jump-next)
- (define-key map (kbd "k") 'symbol-overlay-remove-all)
(define-key map (kbd "w") 'symbol-overlay-save-symbol)
(define-key map (kbd "t") 'symbol-overlay-toggle-in-scope)
(define-key map (kbd "e") 'symbol-overlay-echo-mark)
(define-key map (kbd "d") 'symbol-overlay-jump-to-definition)
(define-key map (kbd "s") 'symbol-overlay-isearch-literally)
(define-key map (kbd "q") 'symbol-overlay-query-replace)
- (define-key map (kbd "SPC") 'symbol-overlay-rename)
+ (define-key map (kbd "r") 'symbol-overlay-rename)
map)
"Keymap automatically activated inside overlays.
You can re-bind the commands to any keys you prefer.")
@@ -161,23 +161,38 @@ If NOERROR is non-nil, just return nil when no symbol is
found."
(defun symbol-overlay-narrow (scope &optional window)
"Narrow to a specific region.
Region might be current scope or displayed window or a specific one,
-depending on `symbol-overlay-temp-in-scope', `symbol-overlay-temp-symbol',
+depending on `symbol-overlay-temp-symbol', `symbol-overlay-temp-in-scope',
SCOPE, `symbol-overlay-narrow-function' and WINDOW."
- (if (or scope (and symbol-overlay-temp-in-scope symbol-overlay-temp-symbol))
+ (if (or scope (and symbol-overlay-temp-symbol symbol-overlay-temp-in-scope))
(let ((f symbol-overlay-narrow-function)
- region)
- (if (not f) (narrow-to-defun)
- (setq region (funcall f))
- (narrow-to-region (car region) (cdr region))))
+ (pt (point))
+ region min max p)
+ (save-excursion
+ (if f (progn (setq region (funcall f))
+ (narrow-to-region (car region) (cdr region)))
+ (if (eq scope 'scope) (narrow-to-defun)
+ (if (eq scope 'paragraph) (setq p t)
+ (save-excursion
+ (save-restriction
+ (narrow-to-defun)
+ (setq min (point-min)
+ max (point-max)
+ p (/= pt (point))))))
+ (and p (setq min (progn (backward-paragraph) (point))
+ max (progn (forward-paragraph) (point))))
+ (narrow-to-region min max))))
+ (setq scope (if p 'paragraph 'scope)))
(when window
(let ((lines (round (window-screen-lines)))
(pt (point))
beg)
- (forward-line (- lines))
- (setq beg (point))
- (goto-char pt)
- (forward-line lines)
- (narrow-to-region beg (point))))))
+ (save-excursion
+ (forward-line (- lines))
+ (setq beg (point))
+ (goto-char pt)
+ (forward-line lines)
+ (narrow-to-region beg (point))))))
+ scope)
(defvar symbol-overlay-temp-face
'((:background "gray70")
@@ -265,19 +280,18 @@ If KEYWORD is non-nil, use its color on new overlays."
(let* ((case-fold-search nil)
(limit (length symbol-overlay-colors))
(color (or (cddr keyword) (elt symbol-overlay-colors (random limit))))
- (colors (mapcar 'cddr symbol-overlay-keywords-alist))
+ (alist symbol-overlay-keywords-alist)
+ (colors (mapcar 'cddr alist))
(pt (point))
p)
- (if (< (length symbol-overlay-keywords-alist) limit)
+ (if (< (length alist) limit)
(while (seq-position colors color)
(setq color (elt symbol-overlay-colors (random limit))))
- (setq color (symbol-overlay-remove
- (car (last symbol-overlay-keywords-alist)))))
+ (setq color (symbol-overlay-remove (car (last alist)))))
(and symbol-overlay-temp-symbol (symbol-overlay-remove-temp))
(save-excursion
(save-restriction
- (symbol-overlay-narrow scope)
- (and scope (/= pt (point)) (user-error "Wrong scope"))
+ (setq scope (symbol-overlay-narrow scope))
(goto-char (point-min))
(while (re-search-forward symbol nil t)
(symbol-overlay-put-one symbol color)
@@ -292,12 +306,15 @@ If KEYWORD is non-nil, use its color on new overlays."
If SHOW-COLOR is non-nil, display the color used by current overlay."
(when keyword
(let* ((symbol (car keyword))
+ (scope (cadr keyword))
(before (symbol-overlay-get-list symbol 'car))
(after (symbol-overlay-get-list symbol 'cdr))
(count (length before)))
(message (concat (substring symbol 3 -3)
": %d/%d"
- (and keyword (cadr keyword) " in scope")
+ (and scope
+ (concat " in " (if (eq scope 'scope) "scope"
+ "paragraph (scope not found)")))
(and show-color (format " (%s)" (cddr keyword))))
(+ count 1)
(+ count (length after))))))
@@ -481,7 +498,7 @@ DIR must be 1 or -1."
(interactive)
(symbol-overlay-replace-call
'(lambda (symbol scope)
- (and scope (user-error "Query-replace is invalid in scope"))
+ (and scope (user-error "Query-replace invalid in narrowed region"))
(let* ((txt (read-string "Replacement: "))
(defaults (cons symbol txt))
(new (symbol-overlay-get-symbol txt)))
- [nongnu] elpa/symbol-overlay 4a70f6d999 075/152: When renaming, don't add coloured highlight if there wasn't previously one, (continued)
- [nongnu] elpa/symbol-overlay 4a70f6d999 075/152: When renaming, don't add coloured highlight if there wasn't previously one, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 305ef1d283 080/152: fix bug caused by last merge, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay f3046beeae 085/152: better not to use box as faces, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 39a2ad8ba5 104/152: Add "h" binding for help in symbol-overlay-map, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay dd7f126217 112/152: update readme, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 11f91ce5b6 110/152: Merge pull request #34 from tarsiiformes/preserve-highlighting, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 66eaaefb8c 134/152: Check liveness of buffer in timer callback, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay e40a7c407f 121/152: Use non-regex symbols internally, and only convert to regexp when needed, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 50a2bd6480 125/152: Merge pull request #47 from langston-barrett/master, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 4a2d6b0e0a 010/152: edit the summary, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 068c6c801a 053/152: narrow to paragraph when scope is not found,
ELPA Syncer <=
- [nongnu] elpa/symbol-overlay 1c40cd921d 072/152: add symbol-overlay-remove-all to before-revert-hook, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 909ea9074b 070/152: Add missing parens in face definition, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 7d77f2e962 091/152: Declare symbol-overlay-ignore-functions's custom type, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay ccf791377a 109/152: Preserve highlighting after buffer was reverted, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 8b8888c8b2 123/152: Merge pull request #54 from dakra/ignore-java, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 39f772b531 137/152: Prefer to check for selected window in timer callback, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay f2734ce633 132/152: Merge pull request #60 from cireu/fix-percentage-prefix-symbol, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay a6683f1089 003/152: init, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay 0a03aecead 041/152: fix errors when renaming in scope, ELPA Syncer, 2022/07/07
- [nongnu] elpa/symbol-overlay e19f7adcdf 062/152: Merge pull request #7 from Bad-ptr/patch-1, ELPA Syncer, 2022/07/07