[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 20ad1fae08 132/212: Improved indentation arro
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 20ad1fae08 132/212: Improved indentation arround multi-line object operators |
Date: |
Wed, 26 Jan 2022 01:51:12 -0500 (EST) |
branch: externals/phps-mode
commit 20ad1fae086bb01e04e03fc1b3f7ab00083408f9
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Improved indentation arround multi-line object operators
---
phps-mode-indent.el | 24 ++++++++++++++++++++----
test/phps-mode-test-indent.el | 4 ++--
2 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/phps-mode-indent.el b/phps-mode-indent.el
index 4d5441e765..65b3ad8891 100644
--- a/phps-mode-indent.el
+++ b/phps-mode-indent.el
@@ -851,9 +851,12 @@
;; return myFunction(
;; 'expression');
;; echo 'here';
+ ;; or
+ ;; 'name' =>
+ ;; $myObject->getName(),
+ ;; 'age' =>
((and
previous-line-ends-with-terminus
- (string= previous-line-ends-with-terminus ";")
(not
(string-match-p
"^[\t ]*\\(echo[\t ]+\\|print[\t ]+\\)"
@@ -877,7 +880,7 @@
(and
not-found
(search-backward-regexp
- "\\(;\\|{\\|(\\|)\\|=$\\|=[^>]\\|return\\|echo[\t
]+\\|print[\t ]+\\|\n\\|<<<'?\"?[a-zA-Z0-9]+'?\"?\\)"
+ "\\(;\\|{\\|(\\|)\\|=\\|return\\|echo[\t ]+\\|print[\t
]+\\|\n\\|<<<'?\"?[a-zA-Z0-9]+'?\"?\\)"
nil
t))
(let ((match (match-string-no-properties 0)))
@@ -977,7 +980,17 @@
is-bracket-less-command))
(setq
new-indentation
- (- new-indentation tab-width))))
+ (- new-indentation tab-width)))
+
+ (when (and
+ current-line-starts-with-closing-bracket
+ (not previous-line-ends-with-opening-bracket)
+ (>= previous-indentation tab-width))
+ (setq
+ new-indentation
+ (- new-indentation tab-width)))
+
+ )
(goto-char point))
@@ -1003,7 +1016,10 @@
(not previous-line-ends-with-opening-bracket)
(string-match-p
"->"
- previous-line-string))
+ previous-line-string)
+ (string-match-p
+ "^[\t ]*->"
+ current-line-string))
(let ((not-found t)
(started-chaining-on-this-line t)
(is-assignment)
diff --git a/test/phps-mode-test-indent.el b/test/phps-mode-test-indent.el
index c1c2510cfc..69c1c7a783 100644
--- a/test/phps-mode-test-indent.el
+++ b/test/phps-mode-test-indent.el
@@ -20,7 +20,7 @@
(defun phps-mode-test-indent--indent-whole-buffer ()
"Use alternative indentation of every line of buffer."
(goto-char (point-min))
- (indent-for-tab-command)
+ (execute-kbd-macro (kbd "TAB"))
(while (search-forward "\n" nil t nil)
;; Go to random point on line
(let ((line-min-position (line-beginning-position))
@@ -29,7 +29,7 @@
(+
line-min-position
(random (- line-max-position line-min-position)))))
- (indent-for-tab-command)))
+ (execute-kbd-macro (kbd "TAB"))))
(defun phps-mode-test-indent--should-equal (string name)
"Test indent of whole buffer containing STRING with NAME."
- [elpa] externals/phps-mode f0ab7a2cdb 095/212: Passed tests for inline control structures, (continued)
- [elpa] externals/phps-mode f0ab7a2cdb 095/212: Passed tests for inline control structures, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 08f57c1d36 107/212: Added TODO item for indent, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 3853ddf32a 099/212: Passed another concatenation test for indentation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 1ed09d42f5 111/212: Passing another indent test, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d205d8392f 113/212: Passed another indent test, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 1a62f48783 130/212: Improved indentation in cases with multi-expressions last line does not start with closing bracket, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a3b9559880 121/212: Improved indent support for nested switch case, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode b4bf3caeb3 118/212: Added TODO note, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode b9956e278f 120/212: Indent support for closing bracket after closing multi-line assignment, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 4b4a821e6e 115/212: Started refactor of indent code, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 20ad1fae08 132/212: Improved indentation arround multi-line object operators,
Christian Johansson <=
- [elpa] externals/phps-mode 5f09905a1a 126/212: Fixed issue with bookkeeping and imenu not being stored, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode dc361309e0 124/212: Passing all indentation tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a62e6be40e 133/212: Fixed indentation on line after print_r, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 5391551287 143/212: Added a new indent test and made it pass, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode ffda8f1b5c 128/212: Added TODO item, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 2ef1168cb1 155/212: Added new failing indentation tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 519888fe79 150/212: Added another failing indent test, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 7ec071188a 137/212: Added more indent unit tests for nested function calls, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 837412c0e5 140/212: Improved indentation on lines starting with a closing bracket, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode cdbcd5ebe6 154/212: Added a new failing indent test and made it pass, Christian Johansson, 2022/01/26