branch: externals/phps-mode commit c9f715a1fda0efe3d24b7b28c06a6b4e5f56078a Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Improved comments --- phps-mode-indent.el | 50 +++++++++++++++++++++++++++++++------------ test/phps-mode-test-indent.el | 14 ++++++------ 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/phps-mode-indent.el b/phps-mode-indent.el index 10579b8ad9..f0a5da08fb 100644 --- a/phps-mode-indent.el +++ b/phps-mode-indent.el @@ -132,7 +132,7 @@ ;; (message "\nCurrent line: %S" current-line-string) - ;; Try to find previous non-empty line + ;; TODO Try to find previous 2 non-empty lines (while (and (= (forward-line -1) 0) line-is-empty-p) @@ -151,16 +151,28 @@ (if line-is-empty-p (indent-line-to 0) - (let* ((old-indentation (phps-mode-indent--string-indentation line-string)) - (current-line-starts-with-closing-bracket (phps-mode-indent--string-starts-with-closing-bracket current-line-string)) - (current-line-starts-with-opening-bracket (phps-mode-indent--string-starts-with-opening-bracket current-line-string)) - (line-starts-with-closing-bracket (phps-mode-indent--string-starts-with-closing-bracket line-string)) - (line-ends-with-closing-bracket (phps-mode-indent--string-ends-with-closing-bracket line-string)) - (line-starts-with-opening-doc-comment (phps-mode-indent--string-starts-with-opening-doc-comment line-string)) - (line-ends-with-assignment (phps-mode-indent--string-ends-with-assignment line-string)) - (line-ends-with-opening-bracket (phps-mode-indent--string-ends-with-opening-bracket line-string)) - (line-ends-with-terminus (phps-mode-indent--string-ends-with-terminus line-string)) - (bracket-level (phps-mode-indent--get-string-brackets-count line-string))) + (let* ((old-indentation + (phps-mode-indent--string-indentation line-string)) + (current-line-starts-with-closing-bracket + (phps-mode-indent--string-starts-with-closing-bracket current-line-string)) + (current-line-starts-with-opening-bracket + (phps-mode-indent--string-starts-with-opening-bracket current-line-string)) + (current-line-ends-with-terminus + (phps-mode-indent--string-ends-with-terminus current-line-string)) + (line-starts-with-closing-bracket + (phps-mode-indent--string-starts-with-closing-bracket line-string)) + (line-ends-with-closing-bracket + (phps-mode-indent--string-ends-with-closing-bracket line-string)) + (line-starts-with-opening-doc-comment + (phps-mode-indent--string-starts-with-opening-doc-comment line-string)) + (line-ends-with-assignment + (phps-mode-indent--string-ends-with-assignment line-string)) + (line-ends-with-opening-bracket + (phps-mode-indent--string-ends-with-opening-bracket line-string)) + (line-ends-with-terminus + (phps-mode-indent--string-ends-with-terminus line-string)) + (bracket-level + (phps-mode-indent--get-string-brackets-count line-string))) ;; (message "Previous non-empty line: %S with indentation: %S" line-string old-indentation) ;; (message "line-ends-with-terminus: %S" line-ends-with-terminus) @@ -211,11 +223,13 @@ (string= line-ends-with-closing-bracket ")") (string-match-p "^[\t ]*\\(if\\|while\\)[\t ]*(" line-string)) (setq new-indentation (+ new-indentation tab-width))) - ;; else ;; echo 'Something'; - ;; TODO + (when (phps-mode-indent--string-starts-with-regexp + line-string + "else[\t ]*$") + (setq new-indentation (+ new-indentation tab-width))) ;; if (true) ;; echo 'Something'; @@ -223,9 +237,17 @@ (when (and line-ends-with-terminus (string= line-ends-with-terminus ";")) - (when (phps-mode-indent--string-starts-with-regexp current-line-string "[\t ]*else") + (when (phps-mode-indent--string-starts-with-regexp + current-line-string "[\t ]*else") (setq new-indentation (- new-indentation tab-width)))) + ;; if (true) + ;; echo 'Something'; + ;; else + ;; echo 'Something else'; + ;; echo true; + ;; TODO + (when (> bracket-level 0) (if (< bracket-level tab-width) (setq new-indentation (+ new-indentation 1)) diff --git a/test/phps-mode-test-indent.el b/test/phps-mode-test-indent.el index f7ac40e08a..6185d49ec2 100644 --- a/test/phps-mode-test-indent.el +++ b/test/phps-mode-test-indent.el @@ -32,7 +32,7 @@ (message "Initial buffer:\n%S" string) (phps-mode-test-indent--indent-whole-buffer) (let ((buffer-contents (buffer-substring-no-properties (point-min) (point-max)))) - (message "Indented buffer:\n%S" buffer-contents) + (message "\nIndented buffer:\n%S" buffer-contents) (should (equal buffer-contents string))))) @@ -349,8 +349,8 @@ ) -(defun phps-mode-test-indent--get-lines-indent-inline-if () - "Test for inline if indentations." +(defun phps-mode-test-indent--get-lines-indent-inline-control-structures () + "Test for inline control structures." (phps-mode-test-indent--should-equal "<?php\nif (true)\n echo 'Something';\nelse\n echo 'Something else';\necho true;\n" @@ -366,8 +366,8 @@ ) -(defun phps-mode-test-indent--get-lines-indent-alternative-if () - "Test for alternative if indentations." +(defun phps-mode-test-indent--get-lines-indent-alternative-control-structures () + "Test for alternative control structures." (phps-mode-test-indent--should-equal "<?php\nif (true):\n echo 'Something';\nelseif (true):\n echo 'Something';\nelse:\n echo 'Something else';\n echo 'Something else again';\nendif;\necho true;\n" @@ -829,8 +829,8 @@ (phps-mode-test-indent--helpers) (phps-mode-test-indent--get-lines-indent-if) (phps-mode-test-indent--get-lines-indent-classes) - (phps-mode-test-indent--get-lines-indent-inline-if) - (phps-mode-test-indent--get-lines-indent-alternative-if) + (phps-mode-test-indent--get-lines-indent-inline-control-structures) + (phps-mode-test-indent--get-lines-indent-alternative-control-structures) (phps-mode-test-indent--get-lines-indent-multi-line-assignments) (phps-mode-test-indent--get-lines-indent-switch-case) (phps-mode-test-indent--get-lines-indent-psr-2)