[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed 885abd0 14/19: Improve sexp object, fixes #25
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed 885abd0 14/19: Improve sexp object, fixes #25 |
Date: |
Fri, 25 Jan 2019 07:51:32 -0500 (EST) |
branch: externals/objed
commit 885abd0fb3cc3a6f9bf1d616e94580536d389276
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Improve sexp object, fixes #25
---
objed-objects.el | 92 ++++++++++++++++++++++++++++----------------------------
1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/objed-objects.el b/objed-objects.el
index cc9198f..5e1e36f 100644
--- a/objed-objects.el
+++ b/objed-objects.el
@@ -1505,27 +1505,25 @@ comments."
Ignores simple structured expressions like words or symbols."
(let ((opos (point))
(real-this-command 'forward-sexp))
- (cl-flet ((zigzag
- (arg)
- (ignore-errors
- (forward-sexp arg)
- (unless (eq opos (point))
- (prog1 (point)
- (forward-sexp (- arg)))))))
- (let ((zigp nil)
- (wb (bounds-of-thing-at-point 'word))
- (sb (bounds-of-thing-at-point 'symbol)))
- (when (or (and (not (eobp))
- (save-excursion
- (eq (point) (progn (setq zigp (zigzag 1)) (point))))
- (not (member (cons (point) zigp) (list wb sb))))
- (and (not (bobp))
- (save-excursion
- (eq (point) (progn (setq zigp (zigzag -1)) (point))))
- (not (member (cons (point) zigp)
- (list wb sb)))))
- (and zigp
- (cons (point) zigp)))))))
+ (save-excursion
+ (cl-flet ((zigzag
+ (arg)
+ (ignore-errors
+ (forward-sexp arg)
+ (unless (eq opos (point))
+ (prog1 (point)
+ (forward-sexp (- arg)))))))
+ (let ((zigp nil))
+ (when (or (and (not (eobp))
+ (save-excursion
+ (eq (point) (progn (setq zigp (zigzag 1))
+ (point)))))
+ (and (not (bobp))
+ (save-excursion
+ (eq (point) (progn (setq zigp (zigzag -1))
+ (point))))))
+ (and zigp
+ (cons (point) zigp))))))))
(objed-define-object nil sexp
:atp
@@ -1543,35 +1541,37 @@ Ignores simple structured expressions like words or
symbols."
(goto-char (car s))
'identifier))
:get-obj
- (let* ((sexpb nil)
- (bounds (or (objed--at-sexp-p)
- (and (setq sexpb (save-excursion (forward-sexp -1)
- (objed--at-sexp-p)))
- (progn (forward-sexp -1)
- sexpb))
- (bounds-of-thing-at-point 'symbol)
- (bounds-of-thing-at-point 'word))))
+ (let ((bounds (or (objed--at-sexp-p)
+ (ignore-errors
+ (forward-sexp -1)
+ (objed--at-sexp-p)))))
(when bounds
(objed-make-object
- :obounds bounds
- :ibounds (when bounds
- (goto-char (car bounds))
- ;; include leading punctuation
- (skip-syntax-forward ".'")
- (let ((beg (point)))
- (goto-char (cdr bounds))
- (with-syntax-table text-mode-syntax-table
- (skip-syntax-backward "."))
- (skip-syntax-backward " .'")
- (cons beg (point)))))))
+ :obounds bounds
+ :ibounds (when bounds
+ (goto-char (car bounds))
+ ;; include leading punctuation
+ (skip-syntax-forward ".'")
+ (let ((beg (point)))
+ (goto-char (cdr bounds))
+ (with-syntax-table text-mode-syntax-table
+ (skip-syntax-backward "."))
+ (skip-syntax-backward " .'")
+ (cons beg (point)))))))
:try-next
- (objed--with-narrow-for-text
- (forward-sexp 1)
- (unless (objed--at-sexp-p)
- (forward-sexp -1)))
+ (or (ignore-errors
+ (forward-sexp 1)
+ (forward-sexp -1) t)
+ (ignore-errors
+ (forward-word 1)
+ (forward-sexp -1)
+ t))
:try-prev
- (objed--with-narrow-for-text
- (forward-sexp -1)))
+ (or (ignore-errors
+ (forward-sexp -1) t)
+ (ignore-errors
+ (forward-word -1)
+ t)))
(objed-define-object nil file
- [elpa] externals/objed updated (ff6b1f0 -> da5575b), Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 45f1938 17/19: Improve objed extend for next-line, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed f90ee45 10/19: Reformat tests, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 638c89e 18/19: Choose initial object for object-adctivate based on last-command, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 67a924f 07/19: Separate tests by major-mode, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed cab0704 16/19: Only treat line object specially after objed-extend, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 4ae4f4f 08/19: Enable emacs-lisp-mode in test files via dir-locals, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed da5575b 19/19: Switch to version 0.3.0, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 885abd0 14/19: Improve sexp object, fixes #25,
Clemens Radermacher <=
- [elpa] externals/objed 15ea688 02/19: Fix markup, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed a0c3a16 13/19: (Re)-adjust bindings, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed c179aa4 05/19: Move all tests to test files, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 71aba6c 09/19: Simplify dir-locals notation, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 910cb7c 15/19: Further work on sexp object, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed db3c6d0 06/19: Add option to pass major-mode for test, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 4bed548 11/19: Add additional binding for toggling state using ], Clemens Radermacher, 2019/01/25
- [elpa] externals/objed b74be32 03/19: Update install description, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 1e7b548 12/19: Reinit, to fix the case op exited objed unintended, Clemens Radermacher, 2019/01/25
- [elpa] externals/objed 7f874ca 01/19: Add copyright assignment notice, Clemens Radermacher, 2019/01/25