[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 6655248e86 105/212: Passing indent test for r
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 6655248e86 105/212: Passing indent test for regular switch statement |
Date: |
Wed, 26 Jan 2022 01:51:06 -0500 (EST) |
branch: externals/phps-mode
commit 6655248e86e7ebe71778fb1b0ead4fb7433200a6
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Passing indent test for regular switch statement
---
phps-mode-indent.el | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/phps-mode-indent.el b/phps-mode-indent.el
index 36a49a6604..70b0bd6d12 100644
--- a/phps-mode-indent.el
+++ b/phps-mode-indent.el
@@ -518,6 +518,76 @@
;; Reset point
(goto-char old-point)))
+ ;; case true:
+ ;; echo 'here';
+ ;; or
+ ;; case true;
+ ;; echo 'here';
+ ;; or
+ ;; default:
+ ;; echo 'here';
+ ;; or
+ ;; default;
+ ;; echo 'here';
+ (when (or
+ (string-match-p
+ "^[\t ]*case[\t ]+.*\\(;\\|:\\)[\t ]*$"
+ previous-line-string)
+ (string-match-p
+ "^[\t ]*default.*\\(;\\|:\\)[\t ]*$"
+ previous-line-string))
+ (setq
+ previous-bracket-level
+ (+ previous-bracket-level tab-width)))
+
+ ;; case true:
+ ;; echo 'here';
+ ;; case false:
+ ;; or
+ ;; case true:
+ ;; echo 'here';
+ ;; default:
+ (when (and
+ (not previous-line-ends-with-opening-bracket)
+ (or
+ (string-match-p
+ "^[\t ]*case[\t ]+.*\\(;\\|:\\)[\t ]*$"
+ current-line-string)
+ (string-match-p
+ "^[\t ]*default.*\\(;\\|:\\)[\t ]*$"
+ current-line-string)))
+ (setq
+ new-indentation
+ (- new-indentation tab-width)))
+
+ ;; switch ($condition) {
+ ;; case true:
+ ;; echo 'here';
+ ;; }
+ (when (and
+ current-line-starts-with-closing-bracket
+ (string= current-line-starts-with-closing-bracket "}"))
+ (let ((old-point (point))
+ (end-of-switch-statement))
+ (when (search-backward-regexp "{" nil t)
+ (let ((bracket-start-line
+ (buffer-substring-no-properties
+ (line-beginning-position)
+ (line-end-position))))
+ (when (string-match-p
+ "[\t ]*switch[\t ]*("
+ bracket-start-line)
+ (setq
+ end-of-switch-statement
+ t)))
+ (goto-char old-point)
+ (when end-of-switch-statement
+ (setq
+ new-indentation
+ (- new-indentation tab-width))))))
+
+
+
(when (> previous-bracket-level 0)
(if (< previous-bracket-level tab-width)
(setq new-indentation (+ new-indentation 1))
- [elpa] externals/phps-mode 16c15c9ef4 004/212: Added type check to imenu-index generation, (continued)
- [elpa] externals/phps-mode 16c15c9ef4 004/212: Added type check to imenu-index generation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 35c9b0fd1c 003/212: Imenu generated correctly for one case, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 8652f7162e 014/212: Started on bookkeeping generation via parser SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a0d2abc2ee 009/212: More working on imenu generation via parser SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode c7e308a13f 024/212: Added SDT foreach($x as $key => $value), Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d44e79ad03 028/212: More work on grammar SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode f79b6118a4 087/212: Optimization of string indentation function, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode b94ee63396 089/212: More work on indentation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d8503c70bb 106/212: Passing indent tests for switch case, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 4f20de353e 109/212: Passed indent tests for PSR-2, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 6655248e86 105/212: Passing indent test for regular switch statement,
Christian Johansson <=
- [elpa] externals/phps-mode 4e5be4f8f8 112/212: More indentation work for mixed PHP/HTML content, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode ff62626f48 110/212: Passing indent test for square bracket array, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 50d006852c 129/212: Fixed issue with indent being dependent on position of point on current line, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 3de8eff9f1 114/212: More wrestling with indentation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d3b5a85b70 001/212: Using property list as basis for AST, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a80c12ef14 005/212: Passing imenu-generation for file with multiple namespaces, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 0071b40aae 007/212: Syntax coloring is now in separate file, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 1cc4aed616 016/212: Passing first bookkeeping test via generation via parser SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode b3b27951bd 015/212: More work on bookkeeping, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 395a4ed045 036/212: Started on bookkeeping via parser SDT for properties, Christian Johansson, 2022/01/26