[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master b1a1953 67/78: Customize extra chars for avy-goto-subword-
From: |
Oleh Krehel |
Subject: |
[elpa] master b1a1953 67/78: Customize extra chars for avy-goto-subword-1 |
Date: |
Sat, 23 Jan 2016 14:00:22 +0000 |
branch: master
commit b1a1953e1c20578b0d866d538b6045b42f4de4ef
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
Customize extra chars for avy-goto-subword-1
* avy.el (avy-subword-extra-word-chars): New defcustom.
(avy-goto-subword-0): Modify the syntax table temporarily using
`avy-subword-extra-word-chars'.
Fixes #116
---
avy.el | 33 +++++++++++++++++++++------------
1 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/avy.el b/avy.el
index bd04228..4426a22 100644
--- a/avy.el
+++ b/avy.el
@@ -955,6 +955,11 @@ The window scope is determined by `avy-all-windows' (ARG
negates it)."
(declare-function subword-backward "subword")
(defvar subword-backward-regexp)
+(defcustom avy-subword-extra-word-chars '(?{ ?= ?} ?* ?: ?> ?<)
+ "A list of characters that should temporarily match \"\\w\".
+This variable is used by `avy-goto-subword-0' and `avy-goto-subword-1'."
+ :type '(repeat character))
+
;;;###autoload
(defun avy-goto-subword-0 (&optional arg predicate)
"Jump to a word or subword start.
@@ -971,18 +976,22 @@ should return true."
"\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([!-/:@`~[:upper:]]+\\W*\\)\\|\\W\\w+\\)")
candidates)
(avy-dowindows arg
- (let ((ws (window-start))
- window-cands)
- (save-excursion
- (goto-char (window-end (selected-window) t))
- (subword-backward)
- (while (> (point) ws)
- (when (or (null predicate)
- (and predicate (funcall predicate)))
- (unless (get-char-property (point) 'invisible)
- (push (cons (point) (selected-window)) window-cands)))
- (subword-backward)))
- (setq candidates (nconc candidates window-cands))))
+ (let ((syn-tbl (copy-syntax-table)))
+ (dolist (char avy-subword-extra-word-chars)
+ (modify-syntax-entry char "w" syn-tbl))
+ (with-syntax-table syn-tbl
+ (let ((ws (window-start))
+ window-cands)
+ (save-excursion
+ (goto-char (window-end (selected-window) t))
+ (subword-backward)
+ (while (> (point) ws)
+ (when (or (null predicate)
+ (and predicate (funcall predicate)))
+ (unless (get-char-property (point) 'invisible)
+ (push (cons (point) (selected-window)) window-cands)))
+ (subword-backward)))
+ (setq candidates (nconc candidates window-cands))))))
(avy--process candidates (avy--style-fn avy-style)))))
;;;###autoload
- [elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowindows, (continued)
- [elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowindows, Oleh Krehel, 2016/01/23
- [elpa] master 9ae4413 56/78: Fix overlays at end-of-line with visual-line-mode, Oleh Krehel, 2016/01/23
- [elpa] master f341c2f 59/78: avy.el (avy--find-visible-regions): Add bounds safety, Oleh Krehel, 2016/01/23
- [elpa] master a041429 62/78: avy.el (avy-copy-region): Obey avy-line-insert-style, Oleh Krehel, 2016/01/23
- [elpa] master 54074c7 65/78: avy.el (avy-all-windows-alt): New defcustom, Oleh Krehel, 2016/01/23
- [elpa] master 54fb4d6 61/78: avy.el (avy-line-insert-style): Customize avy-copy-line, avy-move-line, Oleh Krehel, 2016/01/23
- [elpa] master 4a23a0d 60/78: Fix De Bruijn "No catch for tag" error, Oleh Krehel, 2016/01/23
- [elpa] master 4132dd6 63/78: avy.el (avy-goto-line-above): Work in a single window, Oleh Krehel, 2016/01/23
- [elpa] master a45159a 64/78: avy.el (avy-goto-line-above): Exclude the current line, Oleh Krehel, 2016/01/23
- [elpa] master fa6d1e1 66/78: avy.el (avy-copy-region): Fix for multi-buffer use, Oleh Krehel, 2016/01/23
- [elpa] master b1a1953 67/78: Customize extra chars for avy-goto-subword-1,
Oleh Krehel <=
- [elpa] master bae6fb1 71/78: avy.el (avy-copy-region): Keep same selectors for the second pass, Oleh Krehel, 2016/01/23
- [elpa] master 72ecbfa 68/78: avy.el (avy-goto-line): fix for narrowed regions, Oleh Krehel, 2016/01/23
- [elpa] master 9d18bf9 70/78: avy.el (avy--overlay): Fix overlays at point-max, Oleh Krehel, 2016/01/23
- [elpa] master 47035cf 69/78: avy.el (avy--line): Don't modify avy-action, Oleh Krehel, 2016/01/23
- [elpa] master 808bb80 72/78: avy.el (avy--regex-candidates): Modify case-fold-search condition, Oleh Krehel, 2016/01/23
- [elpa] master 212a132 74/78: Don't shorten selector string for visual-line-mode and bolp, Oleh Krehel, 2016/01/23
- [elpa] master dd80749 73/78: Add case fold search to avy-goto-char-timer, Oleh Krehel, 2016/01/23
- [elpa] master 15d0679 75/78: copy/move line to an initial window, Oleh Krehel, 2016/01/23
- [elpa] master 369af59 76/78: avy.el (avy--overlay): Fix interaction with goto-address-mode, Oleh Krehel, 2016/01/23
- [elpa] master 11fbd70 77/78: Bump version, Oleh Krehel, 2016/01/23