emacs-elpa-diffs
[Top][All Lists]
Advanced

[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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]