[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 419a812 298/405: More work on debugging inden
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode 419a812 298/405: More work on debugging indentation with assignment |
Date: |
Sat, 13 Jul 2019 10:00:36 -0400 (EDT) |
branch: externals/phps-mode
commit 419a812a2a877261899e6556ae3b74972fb33cdc
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
More work on debugging indentation with assignment
---
phps-mode-functions.el | 43 +++++++++++++++++++++++++------------------
phps-mode-test-functions.el | 2 +-
2 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index a70d184..315894d 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -404,15 +404,18 @@
(if in-concatenation
(when (or (string= token ";")
(and (string= token ")")
- (<= round-bracket-level
in-concatenation-round-bracket-level))
+ (< round-bracket-level
in-concatenation-round-bracket-level))
(and (string= token"]")
- (<= square-bracket-level
in-concatenation-square-bracket-level)))
+ (< square-bracket-level
in-concatenation-square-bracket-level)))
+ (when phps-mode-functions-verbose
+ (message "Ended concatenation"))
(setq in-concatenation nil)
(setq in-concatenation-level 0))
(when (and (> next-token-start-line-number
token-end-line-number)
(or (string= token ".")
(string= next-token ".")))
- ;; (message "Started assignment")
+ (when phps-mode-functions-verbose
+ (message "Started concatenation"))
(setq in-concatenation t)
(setq in-concatenation-round-bracket-level
round-bracket-level)
(setq in-concatenation-square-bracket-level
square-bracket-level)
@@ -454,28 +457,32 @@
;; Keep track of assignments
(if in-assignment
- (if (or (string= token ";")
- (and (string= token ")")
- (<= round-bracket-level
in-assignment-round-bracket-level))
- (and (string= token ",")
- (<= round-bracket-level
in-assignment-round-bracket-level))
- (and (string= token"]")
- (<= square-bracket-level
in-assignment-square-bracket-level)))
- (progn
- (setq in-assignment nil)
- (setq in-assignment-level 0))
- (when first-token-on-line
- (setq in-assignment-level 1)
- ;; (message "In assignment on new-line at %s" token)
- ))
+ (when (or (string= token ";")
+ (and (string= token ")")
+ (<= round-bracket-level
in-assignment-round-bracket-level))
+ (and (string= token ",")
+ (<= round-bracket-level
in-assignment-round-bracket-level))
+ (and (string= token"]")
+ (<= square-bracket-level
in-assignment-square-bracket-level)))
+ (when phps-mode-functions-verbose
+ (message "Ended assignment"))
+ (setq in-assignment nil)
+ (setq in-assignment-level 0))
(when (and (not after-special-control-structure)
(string= token "="))
- (message "Started assignment")
+ (when phps-mode-functions-verbose
+ (message "Started assignment"))
(setq in-assignment t)
(setq in-assignment-round-bracket-level
round-bracket-level)
(setq in-assignment-square-bracket-level
square-bracket-level)
(setq in-assignment-level 1)))
+ ;; TODO Fix issue with indentation for assignments with
chained object operators
+
+ ;; Keep track of object operators
+ (when (and (equal token 'T_OBJECT_OPERATOR)
+ first-token-on-line))
+
;; Did we encounter a token that supports extra special
alternative control structures?
(when (equal token 'T_CASE)
(setq after-extra-special-control-structure t)
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index 738ad79..95a1cf0 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -332,7 +332,7 @@
"<?php\n$var =\n 500 .\n \"200\" .\n 100.0 .\n '200' .\n
$this->getTail()\n ->getBottom();"
"Multi-line assignments"
;; (message "Tokens: %s" phps-mode-lexer-tokens)
- (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (2 0)) (5 (2 0)) (6 (2
0)) (7 (2 0)) (8 (1 0))) (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))))
+ (should (equal '((1 (0 0)) (2 (0 0)) (3 (1 0)) (4 (2 0)) (5 (2 0)) (6 (2
0)) (7 (2 0)) (8 (2 0))) (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))))
)
- [elpa] externals/phps-mode a49ce7d 272/405: Added TODO item for lexer to better match re2c, (continued)
- [elpa] externals/phps-mode a49ce7d 272/405: Added TODO item for lexer to better match re2c, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 552eada 264/405: Tuning of incremental logic, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 6cb1d5a 261/405: Added T_INLINE_HTML lexer token, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d6caab9 269/405: Added support for coalesce_equal token and made lexer structure more similar to re2c, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d51a2c4 276/405: Lexer grammar used same logic as PHP language scanner, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 1e3537c 268/405: Re-factored lexer to be more similar to re2c, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9748853 267/405: Merged all lexer analysis into one to better match re2c lexer, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode bfeaa74 273/405: Started with changing lexer syntax to be more alike re2c, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 73b8b4d 297/405: More work on concatenation and assignment indent, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 81c7179 293/405: Fixed indentation bug with assignment of square array in function argument, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 419a812 298/405: More work on debugging indentation with assignment,
Stefan Monnier <=
- [elpa] externals/phps-mode ed36115 288/405: Added TODO item for indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 52cfc78 281/405: Added failing indent test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 46147f4 287/405: Fixed bug with undefined token-end-line-number in new buffers, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 66edaca 286/405: Improved lexing of comment version doc comment, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 55f61b0 296/405: New algorithm for concatenation indentation passes tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9069d0a 300/405: Concatenation indentation now uses stack, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e639ea3 299/405: Indent passing new concatenation tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 5be3560 291/405: Adding more indent examples from PSR-2, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 74ab2a7 294/405: Work on incremental lexer and failing test for indent, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b31f817 292/405: Added all examples from PSR-2 as tests for indentation, Stefan Monnier, 2019/07/13