branch: externals/phps-mode commit a59ef7b3eb0b04606100adbb5303b23835b10120 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
More unit tests for moving lexer token positions --- phps-lexer.el | 4 ++-- phps-test-lexer.el | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/phps-lexer.el b/phps-lexer.el index 3382a00..d96bf2b 100644 --- a/phps-lexer.el +++ b/phps-lexer.el @@ -1279,7 +1279,7 @@ ANY_CHAR' (setq phps-mode/lexer-tokens (semantic-lex-buffer))) (defun phps-mode/move-lexer-tokens (old-tokens start diff) - "Move lexer OLD-TOKENS positions after START with DIFF points." + "Move lexer OLD-TOKENS positions after (or equal to) START with DIFF points." (let ((new-tokens '())) (when old-tokens @@ -1290,7 +1290,7 @@ ANY_CHAR' (let ((token-symbol (car token)) (token-start (car (cdr token))) (token-end (cdr (cdr token)))) - (if (> token-start start) + (if (>= token-start start) (let ((new-token-start (+ token-start diff)) (new-token-end (+ token-end diff))) (push `(,token-symbol ,new-token-start . ,new-token-end) new-tokens)) diff --git a/phps-test-lexer.el b/phps-test-lexer.el index 9056461..8ef15d5 100644 --- a/phps-test-lexer.el +++ b/phps-test-lexer.el @@ -276,6 +276,22 @@ '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 21 . 60)) (phps-mode/move-lexer-tokens '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 16 . 55)) 8 5))) + (should (equal + '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 11 . 50)) + (phps-mode/move-lexer-tokens '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 16 . 55)) 8 -5))) + + (should (equal + '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 8 . 17) (T_ERROR 17 . 56)) + (phps-mode/move-lexer-tokens '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 16 . 55)) 7 1))) + + (should (equal + '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 16 . 55)) + (phps-mode/move-lexer-tokens '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 16 . 55)) 20 1))) + + (should (equal + '((T_OPEN_TAG 2 . 8) (T_START_HEREDOC 8 . 17) (T_ERROR 17 . 56)) + (phps-mode/move-lexer-tokens '((T_OPEN_TAG 1 . 7) (T_START_HEREDOC 7 . 16) (T_ERROR 16 . 55)) -20 1))) + ) (defun phps-mode/test-lexer ()