[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode d18fddc 175/405: Fixed bug with indentation f
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode d18fddc 175/405: Fixed bug with indentation for indented doc-comments |
Date: |
Sat, 13 Jul 2019 10:00:07 -0400 (EDT) |
branch: externals/phps-mode
commit d18fddc6d0633b73dc919d1834837888fe5b506f
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Fixed bug with indentation for indented doc-comments
---
phps-mode-functions.el | 44 ++++++++++++++++++++++++++++++++------------
1 file changed, 32 insertions(+), 12 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 72e268c..f475749 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -79,7 +79,9 @@
(in-assignment-level 0)
(in-assignment-started-this-line nil)
(in-class-declaration nil)
- (in-class-declaration-level 0))
+ (in-class-declaration-level 0)
+ (last-token-start-line-number 0)
+ (last-token-end-line-number 0))
;; Iterate through all buffer tokens from beginning to end
(dolist (item phps-mode-lexer-tokens)
@@ -131,14 +133,16 @@
(when (> last-line-number 0)
(puthash last-line-number `(,column-level ,tuning-level)
line-indents))
- (when (> token-end-line-number token-start-line-number)
- ;; (message "Token %s starts at %s and ends at %s" token
token-start-line-number token-end-line-number)
- (when (equal token 'T_DOC_COMMENT)
+ ;; Does last token span several lines?
+ (when (> last-token-end-line-number
last-token-start-line-number)
+ ;; (message "Token %s starts at %s and ends at %s indent
%s %s" last-token last-token-start-line-number last-token-end-line-number
column-level tuning-level)
+ (when (equal last-token 'T_DOC_COMMENT)
(setq tuning-level 1))
- (let ((token-line-number-diff (1- (-
token-end-line-number token-start-line-number))))
+ (let ((token-line-number-diff (1- (-
last-token-end-line-number last-token-start-line-number))))
(while (>= token-line-number-diff 0)
- (puthash (- token-end-line-number
token-line-number-diff) `(,column-level ,tuning-level) line-indents)
+ (puthash (- last-token-end-line-number
token-line-number-diff) `(,column-level ,tuning-level) line-indents)
+ ;; (message "Saved line %s indent %s %s" (-
last-token-end-line-number token-line-number-diff) column-level tuning-level)
(setq token-line-number-diff (1-
token-line-number-diff))))
(setq tuning-level 0))
@@ -171,14 +175,14 @@
(setq in-class-declaration-level 0)
(setq in-assignment-started-this-line nil)))
(setq first-token-on-line nil)
- (when (> token-end-line-number token-start-line-number)
+ (when (> last-token-end-line-number
last-token-start-line-number)
;; (message "Token not first on line %s starts at %s and
ends at %s" token token-start-line-number token-end-line-number)
- (when (equal token 'T_DOC_COMMENT)
+ (when (equal last-token 'T_DOC_COMMENT)
(setq tuning-level 1))
- (let ((token-line-number-diff (1- (- token-end-line-number
token-start-line-number))))
+ (let ((token-line-number-diff (1- (-
last-token-end-line-number last-token-start-line-number))))
(while (>= token-line-number-diff 0)
- (puthash (- token-end-line-number
token-line-number-diff) `(,column-level ,tuning-level) line-indents)
+ (puthash (- last-token-end-line-number
token-line-number-diff) `(,column-level ,tuning-level) line-indents)
(setq token-line-number-diff (1-
token-line-number-diff))))
(setq tuning-level 0)))
@@ -371,7 +375,9 @@
(setq last-line-number token-start-line-number))
(setq token-number (1+ token-number))
- (setq last-token token)))
+ (setq last-token token)
+ (setq last-token-start-line-number token-start-line-number)
+ (setq last-token-end-line-number token-end-line-number)))
;; Process line if last token was first on new line
(when last-token-was-first-on-new-line
@@ -401,7 +407,21 @@
;; (message "last token at %s %s.%s (%s - %s) = %s %s %s %s %s [%s
%s] %s %s" last-token column-level tuning-level nesting-start nesting-end
round-bracket-level square-bracket-level curly-bracket-level
alternative-control-structure-level inline-control-structure-level
first-token-is-nesting-decrease first-token-is-nesting-increase
in-assignment-level in-class-declaration-level)
;; Put indent-level to hash-table
- (puthash last-line-number `(,column-level ,tuning-level)
line-indents))
+ (puthash last-line-number `(,column-level ,tuning-level)
line-indents)
+
+ ;; Does last token span several lines?
+ (when (> last-token-end-line-number last-token-start-line-number)
+ ;; (message "Token %s starts at %s and ends at %s indent %s %s"
last-token last-token-start-line-number last-token-end-line-number column-level
tuning-level)
+ (when (equal last-token 'T_DOC_COMMENT)
+ (setq tuning-level 1))
+
+ (let ((token-line-number-diff (1- (- last-token-end-line-number
last-token-start-line-number))))
+ (while (>= token-line-number-diff 0)
+ (puthash (- last-token-end-line-number
token-line-number-diff) `(,column-level ,tuning-level) line-indents)
+ ;; (message "Saved line %s indent %s %s" (-
last-token-end-line-number token-line-number-diff) column-level tuning-level)
+ (setq token-line-number-diff (1- token-line-number-diff))))
+ (setq tuning-level 0))
+ )
line-indents))
nil))
- [elpa] externals/phps-mode 13e9148 159/405: Indentation unit test for assignment is passing, (continued)
- [elpa] externals/phps-mode 13e9148 159/405: Indentation unit test for assignment is passing, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b5c64c1 162/405: Added failing tests for HEREDOC and NOWDOC assignments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f283e4b 173/405: Added new failing unit tests for multiple-lines IF and single line class declaration, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 59474ea 180/405: Improved debugging messages, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9659ab4 174/405: Added failing test for doc-comments are namespace and class, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c5d8ec6 168/405: Indentation calculation for class implement working, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f93765d 184/405: Improved code structure of indentation were nesting start and end equals, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 2af8abd 206/405: Made TODO notes in algorithm, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7a538ac 200/405: Tests for alternative control structures passes, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 79e61f4 171/405: Fixed indentation with assignment lines on only one line, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d18fddc 175/405: Fixed bug with indentation for indented doc-comments,
Stefan Monnier <=
- [elpa] externals/phps-mode 00c0ab9 194/405: Nesting-stack algorithm handles class declaration indents, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 8a76039 189/405: Started implementing nesting-stack, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode cf7dc07 210/405: Preparations for multi-line quoted indentation tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 208a788 208/405: Re-organized indent tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c678fc1 209/405: New algorithm handles HEREDOC indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b6cf3a4 191/405: Started on new algorithm for indentation calculation based on stack, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b2338cd 223/405: All tests for indentation passes, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7a4b98e 215/405: More work on algorithm description, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9031c3a 211/405: Merge branch 'master' of https://github.com/cjohansson/emacs-phps-mode, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 6105e5d 226/405: Added a new failing test for indetation, Stefan Monnier, 2019/07/13