emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/phps-mode 2c3239a 187/405: Adding new failing tests for


From: Stefan Monnier
Subject: [elpa] externals/phps-mode 2c3239a 187/405: Adding new failing tests for indentation
Date: Sat, 13 Jul 2019 10:00:10 -0400 (EDT)

branch: externals/phps-mode
commit 2c3239aefbdcf144b70536c89449ee2ea5306a09
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>

    Adding new failing tests for indentation
---
 phps-mode-functions.el      |  3 ---
 phps-mode-lexer.el          | 12 ++++++++++--
 phps-mode-test-functions.el | 14 +++++++++++++-
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 0583e55..2693b4e 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -345,7 +345,6 @@
                       (when phps-mode-functions-verbose
                         (message "Process line ending. nesting: %s-%s, 
line-number: %s-%s,     indent: %s.%s,  token: %s" nesting-start nesting-end 
token-start-line-number token-end-line-number column-level-start tuning-level 
token))
                       
-                      
                       ;; (message "new line %s or last token at %s, %s %s.%s 
(%s - %s) = %s %s %s %s %s [%s %s] %s %s %s" token-start-line-number token 
next-token column-level tuning-level nesting-start nesting-end 
round-bracket-level square-bracket-level curly-bracket-level 
alternative-control-structure-level inline-control-structure-level 
first-token-is-nesting-decrease first-token-is-nesting-increase in-assignment 
in-assignment-level in-class-declaration-level)
 
                       ;; Put indent-level to hash-table
@@ -458,8 +457,6 @@
                phps-mode-idle-interval)
       ;; (message "Enqueued incremental lexer")
 
-      ;; Reset line indents
-      (setq phps-mode-functions-lines-indent nil)
       (run-with-idle-timer phps-mode-idle-interval nil 
#'phps-mode-lexer-run-incremental))
 
     ;; When point of change is not set or when start of new changes precedes 
old change - update the point
diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index 8eb1905..f13d8d0 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -1256,16 +1256,24 @@ ANY_CHAR'
 
    ))
 
-;; TODO Need to store lexer state and stack at each changing point of buffer 
to be able to rewind lexer
 (defun phps-mode-lexer-setup (start end)
   "Just prepare other lexers for lexing region START to END."
   ;; (message "phps-mode-lexer-setup %s %s" start end)
   (when (and (eq start 1)
              end)
     (delete-all-overlays)
-    (when (boundp 'phps-mode-lexer-buffer-changes--start)
+
+    ;; Rest buffer changes flag
+    (when (and (boundp 'phps-mode-lexer-buffer-changes--start)
+               phps-mode-lexer-buffer-changes--start)
       (setq phps-mode-lexer-buffer-changes--start nil))
 
+    ;; Reset line indents
+    (when (and (boundp 'phps-mode-functions-lines-indent)
+               phps-mode-functions-lines-indent)
+      (setq phps-mode-functions-lines-indent nil))
+
+
     (setq phps-mode-lexer-states nil)
     (phps-mode-lexer-BEGIN phps-mode-lexer-ST_INITIAL)))
 
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index 2ccd757..fa7439a 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -198,10 +198,22 @@
 
     (phps-mode-test-with-buffer
    "<?php\nif (true) {\n    if ($configuration::load(\n        
self::getParameter(self::PARAMETER_CONFIGURATION_INTERNAL_FILENAME),\n        
self::getParameter(self::PARAMETER_CONFIGURATION_EXTERNAL_FILENAME),\n        
self::getParameter(self::PARAMETER_STRUCTURE_INTERNAL_FILENAME),\n        
self::getParameter(self::PARAMETER_STRUCTURE_EXTERNAL_FILENAME)\n    )) {\n     
   echo 'was here';\n    }\n}\n"
-   "If expression spanning multiple lines 2"
+   "If expression spanning multiple lines 3"
    ;; (message "Tokens: %s" phps-mode-lexer-tokens)
    (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (2 0)) (5 (2 0)) (6 (2 
0)) (7 (2 0)) (8 (1 0)) (9 (2 0)) (10 (1 0)) (11 (0 0))) 
(phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
 
+  (phps-mode-test-with-buffer
+   "<?php\nif (myFunction(\n    true)\n) {\n    echo 'was here';\n}\n"
+   "If expression spanning multiple lines 4"
+   ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (0 0)) (5 (1 0)) (6 (0 
0))) (phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
+
+  (phps-mode-test-with-buffer
+   "<?php\nif (true) {\n    if (myFunction(\n        true)\n    ) {\n        
echo 'was here';\n    }\n}\n"
+   "Nested if expression spanning multiple lines 5"
+   ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (2 0)) (5 (1 0)) (6 (2 
0)) (7 (1 0)) (8 (0 0))) (phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
+
 
   )
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]