branch: externals/phps-mode
commit d8ad25bb62cb5fb05d140735704d25dcf24c1f09
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Passes new test indentation of multi-line double-arrow inside assignment
---
phps-mode-functions.el | 85 +++++++++++++++++++++++----------------------
phps-mode-test-functions.el | 10 +++---
2 files changed, 48 insertions(+), 47 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 51eb26c..1fd92c6 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -465,49 +465,50 @@
))
;; Keep track of assignments
- (if in-assignment
- (when (or (string= token ";")
- (and (string= token ")")
- (< round-bracket-level (car
in-assignment-round-bracket-level)))
- (and (string= token ",")
- (= round-bracket-level (car
in-assignment-round-bracket-level))
- (= square-bracket-level (car
in-assignment-square-bracket-level)))
- (and (string= token"]")
- (< square-bracket-level (car
in-assignment-square-bracket-level)))
- (and (equal token 'T_FUNCTION)
- (= round-bracket-level (car
in-assignment-round-bracket-level))))
-
- ;; NOTE Ending an assignment because of function token
is to support PSR-2 Closures
-
- (when phps-mode-functions-verbose
- (message "Ended assignment at %s" token))
- (pop in-assignment-square-bracket-level)
- (pop in-assignment-round-bracket-level)
- (unless in-assignment-round-bracket-level
- (setq in-assignment nil))
- (setq in-assignment-level (1- in-assignment-level)))
- (when (and (not after-special-control-structure)
- (or (string= token "=")
- (equal token 'T_DOUBLE_ARROW)
- (equal token 'T_CONCAT_EQUAL)
- (equal token 'T_POW_EQUAL)
- (equal token 'T_DIV_EQUAL)
- (equal token 'T_PLUS_EQUAL)
- (equal token 'T_MINUS_EQUAL)
- (equal token 'T_MUL_EQUAL)
- (equal token 'T_MOD_EQUAL)
- (equal token 'T_SL_EQUAL)
- (equal token 'T_SR_EQUAL)
- (equal token 'T_AND_EQUAL)
- (equal token 'T_OR_EQUAL)
- (equal token 'T_XOR_EQUAL)
- (equal token 'T_COALESCE_EQUAL)))
+ (when in-assignment
+ (when (or (string= token ";")
+ (and (string= token ")")
+ (< round-bracket-level (car
in-assignment-round-bracket-level)))
+ (and (string= token ",")
+ (= round-bracket-level (car
in-assignment-round-bracket-level))
+ (= square-bracket-level (car
in-assignment-square-bracket-level)))
+ (and (string= token"]")
+ (< square-bracket-level (car
in-assignment-square-bracket-level)))
+ (and (equal token 'T_FUNCTION)
+ (= round-bracket-level (car
in-assignment-round-bracket-level))))
+
+ ;; NOTE Ending an assignment because of function token is
to support PSR-2 Closures
+
(when phps-mode-functions-verbose
- (message "Started assignment"))
- (setq in-assignment t)
- (push round-bracket-level
in-assignment-round-bracket-level)
- (push square-bracket-level
in-assignment-square-bracket-level)
- (setq in-assignment-level (1+ in-assignment-level))))
+ (message "Ended assignment at %s" token))
+ (pop in-assignment-square-bracket-level)
+ (pop in-assignment-round-bracket-level)
+ (unless in-assignment-round-bracket-level
+ (setq in-assignment nil))
+ (setq in-assignment-level (1- in-assignment-level))))
+
+ (when (and (not after-special-control-structure)
+ (or (string= token "=")
+ (equal token 'T_DOUBLE_ARROW)
+ (equal token 'T_CONCAT_EQUAL)
+ (equal token 'T_POW_EQUAL)
+ (equal token 'T_DIV_EQUAL)
+ (equal token 'T_PLUS_EQUAL)
+ (equal token 'T_MINUS_EQUAL)
+ (equal token 'T_MUL_EQUAL)
+ (equal token 'T_MOD_EQUAL)
+ (equal token 'T_SL_EQUAL)
+ (equal token 'T_SR_EQUAL)
+ (equal token 'T_AND_EQUAL)
+ (equal token 'T_OR_EQUAL)
+ (equal token 'T_XOR_EQUAL)
+ (equal token 'T_COALESCE_EQUAL)))
+ (when phps-mode-functions-verbose
+ (message "Started assignment"))
+ (setq in-assignment t)
+ (push round-bracket-level in-assignment-round-bracket-level)
+ (push square-bracket-level
in-assignment-square-bracket-level)
+ (setq in-assignment-level (1+ in-assignment-level)))
;; Keep track of object operators
(when (and (equal token 'T_OBJECT_OPERATOR)
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index 685aff4..41ac8d0 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -322,11 +322,11 @@
;; (message "Tokens: %s" phps-mode-lexer-tokens)
(should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (0 0)) (5 (0 0)))
(phps-mode-test-hash-to-list (phps-mode-functions-get-lines-indent)))))
- ;; (phps-mode-test-with-buffer
- ;; "<?php\n$variable = array(\n 'random4' =>\n
'hello'\n);\n$variable = true;\n"
- ;; "Array assignment with double arrow elements on four lines"
- ;; ;; (message "Tokens: %s" phps-mode-lexer-tokens)
- ;; (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (2 0)) (5 (0 0)) (6 (0
0))) (phps-mode-test-hash-to-list (phps-mode-functions-get-lines-indent)))))
+ (phps-mode-test-with-buffer
+ "<?php\n$variable = array(\n 'random4' =>\n 'hello'\n);"
+ "Array assignment with double arrow elements on four lines"
+ ;; (message "Tokens: %s" phps-mode-lexer-tokens)
+ (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (2 0)) (5 (0 0)))
(phps-mode-test-hash-to-list (phps-mode-functions-get-lines-indent)))))
(phps-mode-test-with-buffer
"<?php\n$variable = array(\n 'random4');\n$variable = true;\n"