[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 8ed0716 022/405: Started with unit tests for
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode 8ed0716 022/405: Started with unit tests for getting point lexer data |
Date: |
Sat, 13 Jul 2019 09:59:32 -0400 (EDT) |
branch: externals/phps-mode
commit 8ed0716dd920d8a8ab7bdf484bc79c656773ceb5
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Started with unit tests for getting point lexer data
---
phps-lexer.el | 36 ++++++++++++++++++++++++++++++++----
phps-test-lexer.el | 13 ++++++++++---
2 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/phps-lexer.el b/phps-lexer.el
index d9b6493..1529dd7 100644
--- a/phps-lexer.el
+++ b/phps-lexer.el
@@ -1257,10 +1257,38 @@ ANY_CHAR'
(defun phps-mode/lexer-get-point-data()
"Return information about point in tokens."
- (message "Point: %s in %s" (point) phps-mode/lexer-tokens)
- (dolist (item phps-mode/lexer-tokens)
- )
- )
+ ;; (message "Point: %s in %s" (point) phps-mode/lexer-tokens)
+ (let ((position (point))
+ (in-scripting nil)
+ (brace-level 0)
+ (parenthesis-level 0)
+ (inline-function-level 0))
+ (catch 'stop-iteration
+ (dolist (item phps-mode/lexer-tokens)
+ (let ((token (car item))
+ (start (car (cdr item)))
+ (end (cdr (cdr item))))
+ ;; (message "Token: %s Start: %s End: %s Item: %s" token start end
item)
+
+ (when (> start position)
+ ;; (message "Stopping iteration at: %s %s" start position)
+ (throw 'stop-iteration nil))
+
+ (pcase token
+ ('T_OPEN_TAG (setq in-scripting t))
+ ('T_OPEN_TAG_WITH_ECHO (setq in-scripting t))
+ ('T_CLOSE_TAG (setq in-scripting nil))
+ ("{" (setq brace-level (+ brace-level 1)))
+ ("}" (setq brace-level (- brace-level 1)))
+ ("(" (setq parenthesis-level (+ parenthesis-level 1)))
+ (")" (setq parenthesis-level (- parenthesis-level 1)))
+ (_))
+
+ )))
+ (let ((data (list in-scripting brace-level parenthesis-level
inline-function-level)))
+ ;; (message "data: %s" data)
+ data)
+ ))
(defun phps-mode/lex--SETUP (start end)
"Just prepare other lexers for lexing region START to END."
diff --git a/phps-test-lexer.el b/phps-test-lexer.el
index a45db16..3b3059f 100644
--- a/phps-test-lexer.el
+++ b/phps-test-lexer.el
@@ -239,12 +239,19 @@
)
-(defun phps-mode/test-lexer-get-point-data ()
+(defun phps-mode/test-lexer--get-point-data ()
"Return information about point in tokens."
+
(phps-mode/with-test-buffer
"<?php\nNAMESPACE MyNameSpace;\nCLASS MyClass {\n\tpublic function
__construct() {\n\t\texit;\n\t}\n}\n"
(goto-char 30)
- (phps-mode/lexer-get-point-data))
+ (should (equal (list t 1 0 0) (phps-mode/lexer-get-point-data))))
+
+ (phps-mode/with-test-buffer
+ "<html><head><title><?php echo $title; ?></title><body>Bla
bla</body></html>"
+ (goto-char 15)
+ (should (equal (list nil 0 0 0) (phps-mode/lexer-get-point-data))))
+
)
(defun phps-mode/test-lexer ()
@@ -256,7 +263,7 @@
(phps-mode/test-lexer--complex-tokens)
(phps-mode/test-lexer--namespaces)
(phps-mode/test-lexer--errors)
- (phps-mode/test-lexer-get-point-data)
+ (phps-mode/test-lexer--get-point-data)
;; (message "\n-- Ran all tests for lexer. --")
)
- [elpa] externals/phps-mode 5a6a96b 012/405: Added another test, (continued)
- [elpa] externals/phps-mode 5a6a96b 012/405: Added another test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b3a6308 015/405: Added hook for resetting lexer variables, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode ce656a5 006/405: More general cleaning up, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f3205d5 011/405: Fixed lexing of basic tokens, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 31ca9d5 007/405: More cleaning up, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 79040dc 005/405: Some cleaning up, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 394f7ae 017/405: Fixed issue with empty strings before non-empty strings, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 41c4fbb 009/405: Lexer unit tests now working, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode be078dc 020/405: Updated readme, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c4a8ca5 016/405: Free lexer tokens does not have properties anymore, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 8ed0716 022/405: Started with unit tests for getting point lexer data,
Stefan Monnier <=
- [elpa] externals/phps-mode abcfd01 021/405: Started with function to gather current point data, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 2475734 018/405: Improved logic for single quoted strings, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 795053b 013/405: Lexer unit tests using start and ends as well, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 95e749e 028/405: Started with indentation function, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3202213 025/405: Added another unit test for lexer, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode bf59f0a 023/405: More unit tests for getting point lex information, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode de771b5 019/405: Added more unit tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e3a060a 026/405: Handles script breaking single-line comments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7fa9fdb 024/405: More unit tests for lexing comments and doc comments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 64a3ca8 014/405: Modified start and end for single and double quoted strings, Stefan Monnier, 2019/07/13