branch: externals/phps-mode
commit f0ab7a2cdb05afd5d3ac333831825619f64122fd
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Passed tests for inline control structures
---
phps-mode-indent.el | 35 ++++++++++++++++++++++++++---------
test/phps-mode-test-indent.el | 4 ++++
2 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/phps-mode-indent.el b/phps-mode-indent.el
index 03c2f8b78d..dcc143123e 100644
--- a/phps-mode-indent.el
+++ b/phps-mode-indent.el
@@ -258,9 +258,17 @@
;; else
;; echo 'Something';
- (when (phps-mode-indent--string-starts-with-regexp
- previous-line-string
- "else[\t ]*$")
+ ;; or
+ ;; else if (true)
+ ;; echo 'Something';
+ (when (and
+ (phps-mode-indent--string-starts-with-regexp
+ previous-line-string
+ "[\t ]*else")
+ (not
+ (phps-mode-indent--string-ends-with-regexp
+ previous-line-string
+ "{[\t ]*")))
(setq new-indentation (+ new-indentation tab-width)))
(when (and
@@ -283,12 +291,21 @@
;; if (true)
;; echo 'Something';
;; echo 'Something else';
- ;; TODO
- (when (or
- (phps-mode-indent--string-starts-with-regexp
- previous2-line-string "[\t ]*else")
- (phps-mode-indent--string-starts-with-regexp
- previous2-line-string "[\t ]*if[\t ]*("))
+ ;; or
+ ;; when (true)
+ ;; echo 'Something';
+ ;; echo 'Afterwards';
+ (when (and
+ (not
+ (phps-mode-indent--string-ends-with-regexp
+ previous2-line-string "{[\t ]*"))
+ (or
+ (phps-mode-indent--string-starts-with-regexp
+ previous2-line-string "[\t ]*else")
+ (phps-mode-indent--string-starts-with-regexp
+ previous2-line-string "[\t ]*if[\t ]*(")
+ (phps-mode-indent--string-starts-with-regexp
+ previous2-line-string "[\t ]*while[\t ]*(")))
(setq new-indentation (- new-indentation tab-width)))
)
diff --git a/test/phps-mode-test-indent.el b/test/phps-mode-test-indent.el
index bd210be7b3..588ba63ceb 100644
--- a/test/phps-mode-test-indent.el
+++ b/test/phps-mode-test-indent.el
@@ -368,6 +368,10 @@
"<?php\nwhile (true)\n echo 'Something';"
"Inline control structures while")
+ (phps-mode-test-indent--should-equal
+ "<?php\nwhile (true)\n echo 'Something';\necho 'Afterwards';"
+ "Inline control structures while")
+
)
(defun phps-mode-test-indent--get-lines-indent-alternative-control-structures
()