[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode b82475c697 090/212: Passed token-blind indent
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode b82475c697 090/212: Passed token-blind indentation for multi-line class extends and implements |
Date: |
Wed, 26 Jan 2022 01:50:58 -0500 (EST) |
branch: externals/phps-mode
commit b82475c697ff6c98bf413cd9636d718a315de35b
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Passed token-blind indentation for multi-line class extends and implements
---
phps-mode-indent.el | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/phps-mode-indent.el b/phps-mode-indent.el
index 3dd1927e12..13968ab0c3 100644
--- a/phps-mode-indent.el
+++ b/phps-mode-indent.el
@@ -16,8 +16,8 @@
(length (substring string (match-beginning 0) (match-end 0)))
0))
-(defun phps-mode-indent--backwards-looking-at-p (regexp)
- "Non-nil if point is backwards looking at REGEXP."
+(defun phps-mode-indent--backwards-looking-at (regexp)
+ "Backward string if point is backwards looking at REGEXP, otherwise nil."
(let ((point (point))
(limit 100))
(when (< point limit)
@@ -27,7 +27,9 @@
(buffer-substring-no-properties
start
(1+ point))))
- (string-match-p regexp backward-string))))
+ (if (string-match regexp backward-string)
+ backward-string
+ nil))))
(defun phps-mode-indent-line (&optional initial-point)
"Apply alternative indentation at INITIAL-POINT here."
@@ -56,7 +58,7 @@
(line-beginning-position)
(line-end-position)))
- (message "\nCurrent line: %S" current-line-string)
+ ;; (message "\nCurrent line: %S" current-line-string)
;; Try to find previous non-empty line
(while (and
@@ -86,7 +88,7 @@
(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-p 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 "Previous non-empty line: %S with indentation: %S"
line-string old-indentation)
(setq new-indentation old-indentation)
(goto-char point)
@@ -110,8 +112,11 @@
;; implements MyInterface
(when
(string-match "^[\t ]*\\(extends\\|implements\\)"
current-line-string)
- ;; TODO Should backtrack to class statement and increase
indentation from that
- )
+ (when-let ((backwards-string
+ (phps-mode-indent--backwards-looking-at
+ "\\([\t ]*\\)class[\t ]+[a-zA-Z0-9_]+[\n\t
]+\\(extends[\t ]+[a-zA-Z0-9_]+\\)?[\n\t ]*\\(implements[\t
]+[a-zA-Z0-9_]+\\)?")))
+ (let ((old-indentation (length (match-string 1
backwards-string))))
+ (setq new-indentation (+ old-indentation tab-width)))))
;; class MyClass implements
;; myInterface,
@@ -120,7 +125,7 @@
(when (and
current-line-starts-with-opening-bracket
(string= current-line-starts-with-opening-bracket "{")
- (phps-mode-indent--backwards-looking-at-p
+ (phps-mode-indent--backwards-looking-at
"[\t ]*implements[\n\t ]+\\([\n\t
]*[a-zA-Z_0-9]+,?\\)+[\n\t ]*{$"))
(setq new-indentation (- new-indentation tab-width)))
@@ -200,7 +205,7 @@
;; Decrease indentation if current line decreases in bracket
level
(when (< new-indentation 0)
(setq new-indentation 0))
- (message "new-indentation: %S bracket-level: %S old-indentation:
%S" new-indentation bracket-level old-indentation)
+ ;; (message "new-indentation: %S bracket-level: %S
old-indentation: %S" new-indentation bracket-level old-indentation)
(indent-line-to new-indentation)))))
;; Only move to end of line if point is the current point and is at end
of line
- [elpa] externals/phps-mode d90b470109 035/212: Fixed bookkeeping of class property, (continued)
- [elpa] externals/phps-mode d90b470109 035/212: Fixed bookkeeping of class property, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode bcf0c68945 038/212: AST-imenu and AST-bookkeeping now in standalone files, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 4e021b8413 046/212: Bookkeeping via AST now passing method calls, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 712f5e9f2b 049/212: Removed invalid syntax code from old bookkeeping test, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 1dc3b453c9 043/212: Passed bookkeeping via AST for try catch blocks, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 882e6f75dc 062/212: Work on SDT for interface methods, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 30e9fa14ff 075/212: Added a failing bookkeeping test, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 16ce2acfb7 077/212: Removed debug output for bookkeeping, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode bc5039e32f 086/212: Created custom determine string indentation function, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode daff4ad5e0 085/212: More work on indentation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode b82475c697 090/212: Passed token-blind indentation for multi-line class extends and implements,
Christian Johansson <=
- [elpa] externals/phps-mode 2ea2360c3e 091/212: Created indent helper functions, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode df91b8e433 117/212: More handling of string-doc indentation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 6fac0d5585 102/212: Passed indent test for heredoc string, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 1af63142f3 127/212: Fixed incremental issue with new SDT based bookkeeping, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 3565c7efb3 125/212: Fixed byte-compilation warnings for indent file, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a8097b5b5e 147/212: Improved indentation on line after equal operator in if condition list, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode dece7f242e 160/212: Added more failing indentation tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a530988fe0 134/212: Added more failing indent tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 8c1f529f87 145/212: Passing indent for line after ending of statement / expression with trailing closing bracket, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d7aa22d251 146/212: Added two new failing tests for indentation, Christian Johansson, 2022/01/26