[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed 6907e69 058/216: Improve face object
From: |
Stefan Monnier |
Subject: |
[elpa] externals/objed 6907e69 058/216: Improve face object |
Date: |
Tue, 8 Jan 2019 12:29:11 -0500 (EST) |
branch: externals/objed
commit 6907e69da6717fb5b85fcd89c326f13a6e2d2506
Author: Clemera <address@hidden>
Commit: Clemera <address@hidden>
Improve face object
---
objed-objects.el | 79 +++++++++++++++++++++++++++++++-------------------------
1 file changed, 44 insertions(+), 35 deletions(-)
diff --git a/objed-objects.el b/objed-objects.el
index f57218c..dfb3ebe 100644
--- a/objed-objects.el
+++ b/objed-objects.el
@@ -1910,49 +1910,58 @@ non-nil the indentation block can contain empty lines."
(start (point))
(end (point)))
- ;; check chars backward,
- ;; stop when char is not white space and has different face
- (save-excursion
- (let ((continue t))
- (while (and continue (>= (- (point) 1) (point-min)))
- (backward-char)
- (let ((backward-point-face (objed--what-face)))
- (if (= 32 (char-syntax (char-after)))
- (setq backward-point (point))
- (if (equal point-face backward-point-face)
- (progn (setq backward-point (point))
- (setq backward-none-space-point (point)))
- (setq continue nil)))))))
-
- ;; check chars forward,
- ;; stop when char is not white space and has different face
- (save-excursion
- (let ((continue t))
- (while (and continue (< (+ (point) 1) (point-max)))
- (forward-char)
- (let ((forward-point-face (objed--what-face)))
- (if (= 32 (char-syntax (char-after)))
- (setq forward-point (point))
- (if (equal point-face forward-point-face)
- (progn (setq forward-point (point))
- (setq forward-none-space-point (point)))
- (setq continue nil)))))))
- (progn (setq start backward-none-space-point)
- (setq end forward-none-space-point)
- (cons start (+ end 1)))))
-
-
-(objed-define-object nil syntax
(when (eq real-this-command #'objed-face-object)
(setq objed--last-face point-face))
+
+ (when (equal objed--last-face
+ (objed--what-face))
+ ;; check chars backward,
+ ;; stop when char is not white space and has different face
+ (save-excursion
+ (let ((continue t))
+ (while (and continue (>= (- (point) 1) (point-min)))
+ (backward-char)
+ (let ((backward-point-face (objed--what-face)))
+ (if (= 32 (char-syntax (char-after)))
+ (setq backward-point (point))
+ (if (equal point-face backward-point-face)
+ (progn (setq backward-point (point))
+ (setq backward-none-space-point (point)))
+ (setq continue nil)))))))
+
+ ;; check chars forward,
+ ;; stop when char is not white space and has different face
+ (save-excursion
+ (let ((continue t))
+ (while (and continue (< (+ (point) 1) (point-max)))
+ (forward-char)
+ (let ((forward-point-face (objed--what-face)))
+ (if (= 32 (char-syntax (char-after)))
+ (setq forward-point (point))
+ (if (equal point-face forward-point-face)
+ (progn (setq forward-point (point))
+ (setq forward-none-space-point (point)))
+ (setq continue nil)))))))
+
+ (progn (setq start backward-none-space-point)
+ (setq end forward-none-space-point)
+ (cons start (+ end 1))))))
+
+
(objed-define-object nil face
:get-obj
(objed--get-face-range)
;; TODO: search for next same face as current...
:try-next
- (re-search-forward "\\<" nil t)
+ (while (not (equal objed--last-face
+ (objed--what-face)))
+ (forward-char 1))
:try-prev
- (re-search-backward "\\<" nil t))
+ ;; get out of current
+ (forward-char -1)
+ (while (not (equal objed--last-face
+ (objed--what-face)))
+ (forward-char -1)))
(declare-function org-mark-element "ext:org")
- [elpa] externals/objed 7c41d13 076/216: Fixup which-key paging commands, (continued)
- [elpa] externals/objed 7c41d13 076/216: Fixup which-key paging commands, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 204ea88 095/216: Change surroundings binding, Stefan Monnier, 2019/01/08
- [elpa] externals/objed b54fa1a 077/216: Add more tests, Stefan Monnier, 2019/01/08
- [elpa] externals/objed deb059e 100/216: Update bindings, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 53cafee 085/216: Add new commands to move to first/last instance, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 919a72d 071/216: Adjust python block object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed b7ded6d 083/216: Improve tests, add more tests, Stefan Monnier, 2019/01/08
- [elpa] externals/objed e5f8bac 102/216: Improve undo in region, Stefan Monnier, 2019/01/08
- [elpa] externals/objed e5dfba1 096/216: Add extend commands, Stefan Monnier, 2019/01/08
- [elpa] externals/objed d770ddd 055/216: Don't exit after eval op, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 6907e69 058/216: Improve face object,
Stefan Monnier <=
- [elpa] externals/objed cac61c3 084/216: Improve block objects, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 58af659 068/216: Start adding tests, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 655a636 090/216: Fix bug, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 838094f 097/216: Working on #14, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 9f4e3cf 062/216: More face object adjustments, Stefan Monnier, 2019/01/08
- [elpa] externals/objed d15d904 089/216: Fix up forward/backward until any object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 12e3fdd 078/216: Use last command event so it can be rebound for tests, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 0aa6e84 103/216: Change some object bindings, Stefan Monnier, 2019/01/08
- [elpa] externals/objed c0a65ec 108/216: Remove redundant iblock object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed b9fe335 117/216: Improve nav for objects with leading ws, Stefan Monnier, 2019/01/08