[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode b5f38a926f 05/15: More work on indentation ar
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode b5f38a926f 05/15: More work on indentation around multi-line chained objects |
Date: |
Fri, 4 Mar 2022 14:13:02 -0500 (EST) |
branch: externals/phps-mode
commit b5f38a926fa9da3ce39826f321774611a5b25f33
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
More work on indentation around multi-line chained objects
---
phps-mode-indent.el | 45 +++++++++++++++++++++++++++++++++++++++++----
1 file changed, 41 insertions(+), 4 deletions(-)
diff --git a/phps-mode-indent.el b/phps-mode-indent.el
index 75c81a545b..23c7c5e3f0 100644
--- a/phps-mode-indent.el
+++ b/phps-mode-indent.el
@@ -905,7 +905,10 @@
(started-chaining-on-this-line t)
(is-string-concatenation)
(is-bracket-less-command)
- (is-same-line-p t))
+ (is-same-line-p t)
+ (chaining-line)
+ (reference-line)
+ (chaining-was-this-line-p))
(while
(and
not-found
@@ -914,11 +917,20 @@
nil
t))
(let ((match (match-string-no-properties 0)))
+ (message "match: %S" match)
(cond
((string=
"->"
match)
+ (setq
+ chaining-was-this-line-p
+ t)
+ (setq
+ chaining-line
+ (buffer-substring-no-properties
+ (line-beginning-position)
+ (line-end-position)))
(setq
started-chaining-on-this-line
is-same-line-p))
@@ -926,6 +938,17 @@
((string=
"\n"
match)
+ (if chaining-was-this-line-p
+ (progn
+ (setq
+ chaining-was-this-line-p
+ nil)
+ (setq
+ reference-line
+ chaining-line))
+ (setq
+ reference-line
+ nil))
(setq
is-same-line-p
nil))
@@ -950,7 +973,13 @@
match)
(string=
"}"
+ match)
+ (string=
+ "{"
match))
+ (setq
+ reference-line
+ nil)
(setq
not-found
nil))
@@ -978,9 +1007,17 @@
(not is-string-concatenation)
(not started-chaining-on-this-line)
(not is-bracket-less-command))
- (setq
- new-indentation
- (+ new-indentation tab-width)))))
+ (if reference-line
+ (progn
+ (phps-mode-debug-message
+ (message "reference-line: %S" reference-line))
+ (setq
+ new-indentation
+ (phps-mode-indent--string-indentation
+ reference-line)))
+ (setq
+ new-indentation
+ (+ new-indentation tab-width))))))
;; LINE AFTER OPENING HEREDOC/NOWDOC
;; echo <<<VAR
- [elpa] externals/phps-mode updated (35870e4cb1 -> 3349852f21), Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode f494fde442 06/15: Added TODO-item, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 5fbc73bd43 01/15: Added TODO case, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 027b102d71 04/15: Added failing indentation tests, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode b5f38a926f 05/15: More work on indentation around multi-line chained objects,
Christian Johansson <=
- [elpa] externals/phps-mode 0c9d4d7fe9 08/15: Passing test for indenting multi-line chaining expressions, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode fd36f650e6 10/15: Added TODO items, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 67c3beb075 12/15: Added TODO item for failing indentation, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode f7f8ea26b1 02/15: Improved cache writing method, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 9a852fd48e 03/15: Added another failing indentation case, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 8d77fbdfdb 13/15: Improved indentation around switch case branches, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode d1d1d4b9a7 14/15: Updated version and modified date, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 9ac4797803 09/15: Passed indentation test for line after comment block, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 5d420ba200 11/15: Formatted TODO-items better, Christian Johansson, 2022/03/04
- [elpa] externals/phps-mode 3349852f21 15/15: Added TODO item, Christian Johansson, 2022/03/04