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

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

[elpa] externals/phps-mode 253839f 170/405: Added indentation unit tests


From: Stefan Monnier
Subject: [elpa] externals/phps-mode 253839f 170/405: Added indentation unit tests for concatenated strings outside assignments
Date: Sat, 13 Jul 2019 10:00:06 -0400 (EDT)

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

    Added indentation unit tests for concatenated strings outside assignments
---
 phps-mode-functions.el      |  5 ++++-
 phps-mode-test-functions.el | 39 ++++++++++++++++++++++++++++++++-------
 2 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 52a1240..2de738d 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -94,7 +94,10 @@
                   (progn
 
                     ;; Flag when last token was on a new line
-                    (when (= token-number last-token-number)
+                    (when (and
+                           (= token-number last-token-number)
+                           (> token-start-line-number last-line-number))
+                      ;; (message "Token %s was first on line and last last 
token" token)
                       (setq last-token-was-first-on-new-line t))
 
                     ;; Calculate indentation level at end of line
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index aa035ed..27763fb 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -97,7 +97,7 @@
 
   (phps-mode-test-with-buffer
    "<?php\n$str = <<<EOD\nExample of string\nspanning multiple lines\nusing 
heredoc syntax.\nEOD;\n"
-   "Multi-line HEREDOC string"
+   "Multi-line HEREDOC string in assignment"
    ;; (message "Tokens: %s" phps-mode-lexer-tokens)
    (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (0 
0))) (phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
 
@@ -119,14 +119,39 @@
    ;; (message "Tokens: %s" phps-mode-lexer-tokens)
    (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0))) 
(phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
 
-  ;; TODO Test concatenated string outside assignments
-  ;; TODO Test HEREDOC outside assignment
-  ;; TODO Test multi-line single-quoted string outside assignment
-  ;; TODO Test multi-line double-quoted string outside assignment
+  (phps-mode-test-with-buffer
+   "<html><head><title><?php if ($myCondition) {\nif ($mySeconCondition) 
{\necho $title2;\n\n} ?></title><body>Bla bla</body></html>"
+   "Mixed HTML/PHP 2"
+   (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (1 0)) (3 (2 0)) (5 (1 0))) 
(phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
 
-  )
+  ;; NOTE Maybe concatenated strings spanning multiple lines outside 
assignments should have indentation?
+  
+  (phps-mode-test-with-buffer
+   "<?php\necho \"A line\" .\n    \"more text here\" .\n    \"last line 
here\";"
+   "Concatenated double-quoted-string spanning multiple-lines"
+   ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0))) 
(phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
 
-;; TODO Add unit tests for HEREDOC and NOWDOC regions as well
+  (phps-mode-test-with-buffer
+   "<?php\necho 'A line' .\n    'more text here' .\n    'last line here';"
+   "Concatenated single-quoted-string spanning multiple-lines"
+   ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0))) 
(phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
+
+  (phps-mode-test-with-buffer
+   "<?php\n$var = 'A line' .\n    'more text here' .\n    'last line here';"
+   "Concatenated single-quoted-string multiple-lines in assignment"
+   ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (1 0))) 
(phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
+
+  (phps-mode-test-with-buffer
+   "<?php\necho <<<EOD\nExample of string\nspanning multiple lines\nusing 
heredoc syntax.\nEOD;\n"
+   "Multi-line HEREDOC string outside assignment"
+   ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+   (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (0 
0))) (phps-mode-test-functions--hash-to-list 
(phps-mode-functions-get-lines-indent)))))
+
+  )
 
 (defun phps-mode-test-functions-indent-line ()
   "Test for indentation."



reply via email to

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