branch: externals/phps-mode
commit 07ed24db2865cfce71483a796beadbe1b5341a96
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Added states test as well
---
phps-mode-lexer.el | 6 +++++-
phps-mode-test-functions.el | 15 +++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index 0028845..6b6a7e3 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -1590,9 +1590,13 @@
(phps-mode-lexer-re2c-execute)))
(defun phps-mode-lexer-get-tokens ()
- "Get tokens."
+ "Get lexer tokens."
phps-mode-lexer-tokens)
+(defun phps-mode-lexer-get-states ()
+ "Get lexer states."
+ phps-mode-lexer-states)
+
(defun phps-mode-lexer--get-next-unescaped (character)
"Find where next un-escaped CHARACTER comes, if none is found return nil."
;; (message "phps-mode-lexer--get-next-unescaped(%s)" character)
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index 485de97..cdcdb49 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -37,6 +37,7 @@
(autoload 'phps-mode-functions-get-moved-lines-indent "phps-mode-functions")
(autoload 'phps-mode-test-hash-to-list "phps-mode-test")
(autoload 'phps-mode-lexer-get-tokens "phps-mode-lexer")
+(autoload 'phps-mode-lexer-get-states "phps-mode-lexer")
(autoload 'should "ert")
(defun phps-mode-test-functions-move-lines-indent ()
@@ -892,6 +893,7 @@
)
;; TODO Add functionality for (delete-backward-char) as well
+;; TODO Test states as well
(defun phps-mode-test-functions-whitespace-modifications ()
"Test white-space modifications functions."
@@ -899,13 +901,26 @@
"<?php\n$var = 'abc';\n\n$var2 = '123';\n"
"Add newline between two assignments and inspect moved tokens and states"
;; (message "Tokens %s" (phps-mode-lexer-get-tokens))
+ ;; (message "States: %s" (phps-mode-lexer-get-states))
+
+ ;; Initial state
(should (equal (phps-mode-lexer-get-tokens)
'((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 14 . 19) (";" 19 . 20) (T_VARIABLE 22 . 27) ("=" 28
. 29) (T_CONSTANT_ENCAPSED_STRING 30 . 35) (";" 35 . 36))))
+ (should (equal (phps-mode-lexer-get-states)
+ '((35 36 1 (1 1 1 1 1)) (30 35 1 (1 1 1 1 1)) (28 29 1 (1 1
1 1 1)) (22 27 1 (1 1 1 1 1)) (19 20 1 (1 1 1 1 1)) (14 19 1 (1 1 1 1 1)) (12
13 1 (1 1 1 1 1)) (7 11 1 (1 1 1 1 1)) (1 7 1 (1 1 1 1 1)))))
+
+ ;; Change
(goto-char 21)
(newline nil nil)
+
+ ;; Final state
;; (message "Tokens %s" (phps-mode-lexer-get-tokens))
+ ;; (message "States: %s" (phps-mode-lexer-get-states))
(should (equal (phps-mode-lexer-get-tokens)
'((T_OPEN_TAG 1 . 7) (T_VARIABLE 7 . 11) ("=" 12 . 13)
(T_CONSTANT_ENCAPSED_STRING 14 . 19) (";" 19 . 20) (T_VARIABLE 23 . 28) ("=" 29
. 30) (T_CONSTANT_ENCAPSED_STRING 31 . 36) (";" 36 . 37))))
+ (should (equal (phps-mode-lexer-get-states)
+ '((36 37 1 (1 1 1 1 1)) (31 36 1 (1 1 1 1 1)) (29 30 1 (1 1 1 1
1)) (23 28 1 (1 1 1 1 1)) (19 20 1 (1 1 1 1 1)) (14 19 1 (1 1 1 1 1)) (12 13 1
(1 1 1 1 1)) (7 11 1 (1 1 1 1 1)) (1 7 1 (1 1 1 1 1)))))
+
)
(phps-mode-test-with-buffer