[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phpinspect 9d6ce5726d 076/126: Use `phpinspect-edtrack-
From: |
ELPA Syncer |
Subject: |
[elpa] externals/phpinspect 9d6ce5726d 076/126: Use `phpinspect-edtrack-original-position-at-point' for edit end determination |
Date: |
Sat, 12 Aug 2023 00:58:45 -0400 (EDT) |
branch: externals/phpinspect
commit 9d6ce5726d921e7d9265bbdbe78a1a05e6958e69
Author: Hugo Thunnissen <devel@hugot.nl>
Commit: Hugo Thunnissen <devel@hugot.nl>
Use `phpinspect-edtrack-original-position-at-point' for edit end
determination
---
phpinspect-edtrack.el | 4 +++-
phpinspect-parser.el | 6 +++---
test/test-edtrack.el | 23 ++++++++++++++++++-----
3 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/phpinspect-edtrack.el b/phpinspect-edtrack.el
index 01857d5fa6..ae28dfc546 100644
--- a/phpinspect-edtrack.el
+++ b/phpinspect-edtrack.el
@@ -120,7 +120,9 @@
;; points in the buffer subtratted. This corresponds with
;; the original position of the region end before the
;; buffer was ever edited.
- (- (+ start pre-change-length) (or
(phpinspect-edit-delta edit-before) 0))
+ (phpinspect-edtrack-original-position-at-point
+ track (+ start pre-change-length))
+
;; The delta of this edit.
(- (- end start) pre-change-length))))
diff --git a/phpinspect-parser.el b/phpinspect-parser.el
index e5fa194e80..9aab4d32c9 100644
--- a/phpinspect-parser.el
+++ b/phpinspect-parser.el
@@ -563,6 +563,9 @@ token is \";\", which marks the end of a statement in PHP."
(not (if delimiter-predicate
(funcall delimiter-predicate (car (last
tokens)))
nil)))
+ (when check-interrupt
+ (phpinspect-pctx-check-interrupt context))
+
(setq start-position (point))
(cond ((and previous-bmap edtrack
(setq existing-meta
@@ -583,9 +586,6 @@ token is \";\", which marks the end of a statement in PHP."
(goto-char current-end-position)
- (when check-interrupt
- (phpinspect-pctx-check-interrupt context))
-
;; Skip over whitespace after so that we don't do a full
;; run down all of the handlers during the next iteration
(when (looking-at (phpinspect-handler-regexp 'whitespace))
diff --git a/test/test-edtrack.el b/test/test-edtrack.el
index 68e9ee4bcb..4391598f33 100644
--- a/test/test-edtrack.el
+++ b/test/test-edtrack.el
@@ -6,13 +6,26 @@
(should (= 13 (phpinspect-edit-end edit)))))
(ert-deftest phpinspect-edtrack-register-edit ()
- (let* ((edtrack (phpinspect-make-edtrack))
- (edit1 (phpinspect-edtrack-register-edit edtrack 5 10 10))
- (edit3 (phpinspect-edtrack-register-edit edtrack 100 200 150))
- (edit2 (phpinspect-edtrack-register-edit edtrack 15 22 7)))
+ (let* ((edtrack (phpinspect-make-edtrack)))
+ (phpinspect-edtrack-register-edit edtrack 5 10 10)
+ (phpinspect-edtrack-register-edit edtrack 100 200 150)
+ (phpinspect-edtrack-register-edit edtrack 15 22 7)
(should (equal `((255 . -50) (27 . 0) (15 . -5)) (phpinspect-edtrack-edits
edtrack)))))
+(ert-deftest phpinspect-edtrack-register-encroaching-edit ()
+ (let* ((edtrack (phpinspect-make-edtrack)))
+ (phpinspect-edtrack-register-edit edtrack 5 10 0)
+ (phpinspect-edtrack-register-edit edtrack 100 150 25)
+
+ ;; Encroaches on delta of edit before by 15 points ((125 + 25) - 135 = 15),
+ ;; so the original end position should be calculated as 135 - (25 - 15) -
5 = 120
+ ;; (see also `phpinspect-edtrack-original-position-at-point')
+ (phpinspect-edtrack-register-edit edtrack 135 170 0)
+
+ (should (equal `((120 . 35) (120 . 25) (5 . 5)) (phpinspect-edtrack-edits
edtrack)))))
+
+
(ert-deftest phpinspect-edtrack-orginal-position-at-point ()
(let ((track (phpinspect-make-edtrack)))
(phpinspect-edtrack-register-edit track 10 20 0)
@@ -74,4 +87,4 @@
iterator (phpinspect-make-meta nil 65 73 nil nil)))
(should (phpinspect-taint-iterator-token-is-tainted-p
- iterator (phpinspect-make-meta nil 100 130 nil nil)))))
+ iterator (phpinspect-make-meta nil 100 130 nil nil)))))
- [elpa] externals/phpinspect 47335f3450 064/126: Refactor phpinspect--project to phpinspect-project, (continued)
- [elpa] externals/phpinspect 47335f3450 064/126: Refactor phpinspect--project to phpinspect-project, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 1b1cf45638 054/126: Fix bug in extended classes' method merging + add some tests, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 153ff71fcf 048/126: WIP: Implement psr0 and psr4 autoload strategies, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect e65b268cea 053/126: Implement @method annotation indexation, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect ae3acbdbe1 056/126: Disable auto-reindexing by default, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect e7b1f22e8c 068/126: Sort tokens by size when returning tokens around point, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 0e00d7e5a6 066/126: Wakeup worker when stop is requested and worker thread is paused, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect bb04e9a0f8 079/126: Implement strategy pattern for phpinspect-eldoc-function, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect f9f3440850 065/126: Make file contents insertion asynchronous in background threads, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect ad5ede01ad 071/126: Implement Incremental Parsing, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 9d6ce5726d 076/126: Use `phpinspect-edtrack-original-position-at-point' for edit end determination,
ELPA Syncer <=
- [elpa] externals/phpinspect 58ad65932b 069/126: Add `phpinspect-parser' type and `phpinspect-defparser' macro, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 5548734ef7 075/126: Implement parser interruption on user input, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 2049121810 097/126: Make edit delta lookup inclusive of current point, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 9a25959aad 095/126: Use metadata tree instead of hash table for token lookup, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 43310092ad 081/126: Clear tree and edit tracker when reparsing (to ensure full reparse), ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 8dd9bb07e4 080/126: Increase phpinspect-bmap-last-token-before-point backward search limit to 100, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 75562aab35 085/126: Add some tests for edit tracker + patch newly discovered bugs, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 135263c533 110/126: Add tests for incremental parsing + fix parser bugs that came to light, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect ea7795c76e 106/126: Remove commented code, ELPA Syncer, 2023/08/12
- [elpa] externals/phpinspect 9b82c0d0f6 111/126: Reimplement `phpinspect-fix-imports' using metadata objects, ELPA Syncer, 2023/08/12