[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/el-search 29ec302 012/332: avoid looking-back in el-sea
From: |
Stefan Monnier |
Subject: |
[elpa] externals/el-search 29ec302 012/332: avoid looking-back in el-search--goto-next-sexp |
Date: |
Tue, 1 Dec 2020 15:48:01 -0500 (EST) |
branch: externals/el-search
commit 29ec302fa7dfd618a3849c11fbb3d7d14d654960
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
avoid looking-back in el-search--goto-next-sexp
because it extremely slows it down
---
el-search.el | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/el-search.el b/el-search.el
index 3c7af29..cf9a23e 100644
--- a/el-search.el
+++ b/el-search.el
@@ -244,7 +244,11 @@ expression."
Don't move if already at beginning of a sexp."
(let ((not-done t) res)
(while not-done
- (let ((stop-here nil) syntax-here)
+ (let ((stop-here nil) syntax-here
+ (looking-at-from-back (lambda (regexp n)
+ (save-excursion
+ (backward-char n)
+ (looking-at regexp)))))
(while (not stop-here)
(cond
((eobp) (signal 'end-of-buffer nil))
@@ -257,10 +261,10 @@ Don't move if already at beginning of a sexp."
;; FIXME: can the rest be done more generically?
((and (looking-at (rx (or (syntax symbol) (syntax word))))
(not (looking-at "\\_<"))
- (not (looking-back ",@" 2)))
+ (not (funcall looking-at-from-back ",@" 2)))
(forward-symbol 1))
- ((or (and (looking-at "'") (looking-back "#" 1))
- (and (looking-at "@") (looking-back "," 1)))
+ ((or (and (looking-at "'") (funcall looking-at-from-back "#" 1))
+ (and (looking-at "@") (funcall looking-at-from-back "," 1)))
(forward-char))
(t (setq stop-here t)))))
(condition-case nil
- [elpa] externals/el-search 2e6622c 005/332: el-search: fix comment styles, (continued)
- [elpa] externals/el-search 2e6622c 005/332: el-search: fix comment styles, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search fdb1f86 008/332: el-search: remove redundant :group specs from custom defs, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 1ed9974 011/332: el-search: bump version, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 41acd5d 010/332: el-search: some comment changes, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b07d77c 019/332: avoid repeated expansion of pcase forms, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search cdd8cc1 020/332: new function el-search--end-of-sexp; use it, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 2f48cd0 024/332: call syntax functions less often for better efficiency, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search c7af755 014/332: rename a function, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 8fc7ae2 015/332: el-search: some comment changes, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search b00ca48 018/332: rename a function, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 29ec302 012/332: avoid looking-back in el-search--goto-next-sexp,
Stefan Monnier <=
- [elpa] externals/el-search e42804b 028/332: change a TODO entry; no code change, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search c1cfbc6 030/332: rename a local variable, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search fc6eca5 016/332: fix a condition in el-search--do-subsexps, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 632310e 021/332: rename a function, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 74015c1 023/332: whitespace clean up, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 7c42a31 036/332: el-search--read-pattern: fix default(s), Stefan Monnier, 2020/12/01
- [elpa] externals/el-search f54c5f1 037/332: spelling fixes, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 192316b 006/332: el-search: fix two typos, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 92538ed 007/332: el-search: remove redundant package dependency on cl-lib, Stefan Monnier, 2020/12/01
- [elpa] externals/el-search 9ab546b 017/332: drop el-search-expression-contains-match-p, Stefan Monnier, 2020/12/01