[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 071acc0 349/405: Added support for multi-line
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode 071acc0 349/405: Added support for multi-line return indentation |
Date: |
Sat, 13 Jul 2019 10:00:46 -0400 (EDT) |
branch: externals/phps-mode
commit 071acc0218073706fc97d5ced022e8ade6044d58
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Added support for multi-line return indentation
---
phps-mode-functions.el | 26 +++++++++++++++++++++++---
phps-mode-test-functions.el | 2 +-
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 1fd92c6..3be811b 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -120,6 +120,9 @@
(in-assignment-level 0)
(in-class-declaration nil)
(in-class-declaration-level 0)
+ (in-return nil)
+ (in-return-curly-bracket-level nil)
+ (in-return-level 0)
(token nil)
(token-start nil)
(token-end nil)
@@ -486,7 +489,6 @@
(unless in-assignment-round-bracket-level
(setq in-assignment nil))
(setq in-assignment-level (1- in-assignment-level))))
-
(when (and (not after-special-control-structure)
(or (string= token "=")
(equal token 'T_DOUBLE_ARROW)
@@ -510,6 +512,24 @@
(push square-bracket-level
in-assignment-square-bracket-level)
(setq in-assignment-level (1+ in-assignment-level)))
+ ;; Keep track of return expressions
+ (when in-return
+ (when (and (string= token ";")
+ (= curly-bracket-level (car
in-return-curly-bracket-level)))
+
+ (when phps-mode-functions-verbose
+ (message "Ended return at %s" token))
+ (pop in-return-curly-bracket-level)
+ (unless in-return-curly-bracket-level
+ (setq in-return nil))
+ (setq in-return-level (1- in-return-level))))
+ (when (equal token 'T_RETURN)
+ (when phps-mode-functions-verbose
+ (message "Started return"))
+ (setq in-return t)
+ (push curly-bracket-level in-return-curly-bracket-level)
+ (setq in-return-level (1+ in-return-level)))
+
;; Keep track of object operators
(when (and (equal token 'T_OBJECT_OPERATOR)
first-token-on-line))
@@ -538,7 +558,7 @@
(message "Processing token: %s" token))
;; Calculate nesting
- (setq nesting-end (+ round-bracket-level square-bracket-level
curly-bracket-level alternative-control-structure-level in-assignment-level
in-class-declaration-level in-concatenation-level))
+ (setq nesting-end (+ round-bracket-level square-bracket-level
curly-bracket-level alternative-control-structure-level in-assignment-level
in-class-declaration-level in-concatenation-level in-return-level))
;; Keep track of whether we are inside a HEREDOC or NOWDOC
(when (equal token 'T_START_HEREDOC)
@@ -708,7 +728,7 @@
;; Calculate indentation level at start of line
- (setq nesting-start (+ round-bracket-level
square-bracket-level curly-bracket-level alternative-control-structure-level
in-assignment-level in-class-declaration-level in-concatenation-level))
+ (setq nesting-start (+ round-bracket-level
square-bracket-level curly-bracket-level alternative-control-structure-level
in-assignment-level in-class-declaration-level in-concatenation-level
in-return-level))
;; Set initial values for tracking first token
(when (> token-start-line-number last-line-number)
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index 9f78fce..a084057 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -858,8 +858,8 @@
(phps-mode-test-functions-get-lines-indent-alternative-if)
(phps-mode-test-functions-get-lines-indent-multi-line-assignments)
(phps-mode-test-functions-get-lines-indent-switch-case)
- (phps-mode-test-functions-get-lines-indent)
(phps-mode-test-functions-get-lines-indent-psr-2)
+ (phps-mode-test-functions-get-lines-indent)
(phps-mode-test-functions-indent-line)
(phps-mode-test-functions-imenu)
(phps-mode-test-functions-comment-uncomment-region))
- [elpa] externals/phps-mode e7cb803 346/405: Added another indentation test, (continued)
- [elpa] externals/phps-mode e7cb803 346/405: Added another indentation test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode dabe0ea 345/405: Added failing indentation test for multi-dimension array in assignment with double arrows, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d6e6cbc 358/405: Another optimization of line-number-at-pos inside loop, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e681c9c 347/405: Updated color syntax for T_STRING tokens, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c11bcc5 360/405: More work on newline advice, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 282115f 357/405: Using incremental line-number calculation as optimization, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c118f58 342/405: Added TODO items, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 812dc49 353/405: Removed TODO item, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 834275b 354/405: Fixed indentation calculation of nested alternative control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 62f1fc5 348/405: Added another failing indentation test for return expressions, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 071acc0 349/405: Added support for multi-line return indentation,
Stefan Monnier <=
- [elpa] externals/phps-mode 46d0575 373/405: Passes all tests for adding newline and indenting without affect lexer, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 71858d1 374/405: Removed side-effect of END_PARSE token being added to tokens after processing buffer, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 228b657 380/405: Updated README with license logo and Travis CI build status, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 6308e3e 366/405: Removed debug notice, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode bd90dc9 370/405: Removed debug output, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 38bd348 361/405: More work on advice, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 2efd7d7 367/405: Started on function to move line-indent index, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 5bc592a 368/405: More work on moving indent indexes, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode bc1f50f 365/405: Fixed byte-compilation in functions unit-test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 654ef5f 377/405: Added another state test for newline, Stefan Monnier, 2019/07/13