[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode d85974c2aa 196/212: Improved indentation insi
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode d85974c2aa 196/212: Improved indentation inside multi-dimensional arrays |
Date: |
Wed, 26 Jan 2022 01:51:26 -0500 (EST) |
branch: externals/phps-mode
commit d85974c2aa8f2c351bb62db3cbfeae5160800791
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Improved indentation inside multi-dimensional arrays
---
phps-mode-indent.el | 60 ++++++++++++++++++++++++++++---------------
test/phps-mode-test-indent.el | 8 ++++++
2 files changed, 48 insertions(+), 20 deletions(-)
diff --git a/phps-mode-indent.el b/phps-mode-indent.el
index d9d2c4697d..f3ee0198a4 100644
--- a/phps-mode-indent.el
+++ b/phps-mode-indent.el
@@ -266,17 +266,23 @@
(forward-char -1)
(end-of-line)))
(let ((not-found-bracket-start t)
- (parenthesis-level 0))
+ (parenthesis-level 0)
+ (same-line-p t))
(while
(and
not-found-bracket-start
(search-backward-regexp
- "[][{}()]"
+ "[][{}()\n]"
nil
t))
(let ((match (match-string-no-properties 0)))
(cond
+ ((string= "\n" match)
+ (setq
+ same-line-p
+ nil))
+
((or
(string= "(" match)
(string= "[" match)
@@ -302,8 +308,10 @@
parenthesis-level
(1- parenthesis-level)))
- )))))
- reference-line))
+ )))
+ (if same-line-p
+ nil
+ reference-line)))))
(defun phps-mode-indent--get-previous-reference-command-line ()
"Get previous line that is a command (if any)."
@@ -1274,23 +1282,35 @@
match-type
'line-after-line-that-ends-with-closing-bracket)
(forward-line (* -1 move-length1))
- (when-let
- ((reference-line
- (phps-mode-indent--get-previous-start-of-bracket-line
t)))
- ;; (message "reference-line: %S" reference-line)
- (setq
- new-indentation
- (phps-mode-indent--string-indentation
- reference-line))
+ (let ((reference-line
+ (phps-mode-indent--get-previous-start-of-bracket-line
t)))
+ (if reference-line
+ (progn
+ ;; (message "reference-line: %S" reference-line)
+ (setq
+ new-indentation
+ (phps-mode-indent--string-indentation
+ reference-line)))
- ;;$copies = method_exists($object, 'get_copies')
- ;; ? $object->get_copies()
- (when (string-match-p
- "^[\t ]*$[a-zA-Z0-9_]+[\t ]*[^=!]*=\\($\\|[\t
]+.*[^,;]$\\)"
- reference-line)
- (setq
- new-indentation
- (+ new-indentation tab-width)))))
+ ;; (message "previous-line-string: %S"
previous-line-string)
+
+ ;;$copies = method_exists($object, 'get_copies')
+ ;; ? $object->get_copies()
+ ;; or
+ ;; 'random' => callback($abc)
+ ;; || true
+ (when (or
+ (string-match-p
+ "^[\t ]*$[a-zA-Z0-9_]+[\t ]*[^=!]*=\\($\\|[\t
]+.*[^,;]$\\)"
+ previous-line-string)
+ (string-match-p
+ "=>[^,;]$"
+ previous-line-string))
+ (setq
+ new-indentation
+ (+
+ new-indentation
+ tab-width))))))
;; LINE AFTER OPENING MULTI-LINE ASSIGNMENT
;; $var = 'A line' .
diff --git a/test/phps-mode-test-indent.el b/test/phps-mode-test-indent.el
index b792901b03..15cb37c0c7 100644
--- a/test/phps-mode-test-indent.el
+++ b/test/phps-mode-test-indent.el
@@ -197,6 +197,14 @@
(phps-mode-indent--get-previous-start-of-bracket-line t)
" [array(")))
+ (with-temp-buffer
+ (insert "<?php\narray(2, 3)")
+ (goto-char (point-max))
+ (should
+ (equal
+ (phps-mode-indent--get-previous-start-of-bracket-line t)
+ nil)))
+
(message "Passed tests for indentation helper functions")
)
- [elpa] externals/phps-mode 18221a85f0 177/212: Added failing parse test for multiple swith case conditions, (continued)
- [elpa] externals/phps-mode 18221a85f0 177/212: Added failing parse test for multiple swith case conditions, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a2c61b9e7c 174/212: Started refactoring of indentation functions, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode e15d602e46 179/212: More TODO items, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 22c4f31716 178/212: Added TODO items, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode c05d97fc31 182/212: Disabled debug-mode in this branch, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d095e757e6 186/212: Added failing imenu test, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 2dc9280bcd 185/212: More work, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 87974abfcc 190/212: Improved indentation after lines containing => symbol, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode e049853a6f 193/212: Remove use of lex-analyzer from semantic and instead use custom, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 0e3889a122 202/212: Added indentation support for HTML/XML, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d85974c2aa 196/212: Improved indentation inside multi-dimensional arrays,
Christian Johansson <=
- [elpa] externals/phps-mode 057aadd2f6 197/212: Improved indentation around multi-line logical expressions, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 5273bdf42f 206/212: Started on cache feature, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d19bd439cf 198/212: Updated TODO items, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 502a42b5c0 205/212: Improved indentation around doc-comments, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 198cfbd360 199/212: Added failing indentation tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode af263a5462 200/212: Improved indentation detection of start of alternative control structure, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 5ae4886f14 212/212: Updated docs and version, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode fe83e986c7 192/212: Fixed issue with optimized lexer after byte-compilation, Christian Johansson, 2022/01/26