Use `phpinspect-edtrack-original-position-at-point' for edit end determination

WIP-cache
Hugo Thunnissen 10 months ago
parent 5548734ef7
commit 9d6ce5726d

@ -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))))

@ -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))

@ -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)))))

Loading…
Cancel
Save