[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode c6aa633 118/405: More work on keeping track o
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode c6aa633 118/405: More work on keeping track of alternative control structures |
Date: |
Sat, 13 Jul 2019 09:59:56 -0400 (EDT) |
branch: externals/phps-mode
commit c6aa633d70a7b8f766907737364257fea933f65a
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
More work on keeping track of alternative control structures
---
phps-mode-functions.el | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 930f7cb..c58cd6a 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -224,7 +224,8 @@
(end-token-number nil)
(line-in-doc-comment nil)
(found-line-tokens nil)
- (after-special-control-structure nil))
+ (after-special-control-structure nil)
+ (round-brace-level 0))
(catch 'stop-iteration
(dolist (item phps-mode-lexer-tokens)
(let ((token (car item))
@@ -306,19 +307,25 @@
(equal token 'T_ENDSWITCH))
(setq end-alternative-control-structure-level (-
end-alternative-control-structure-level 1))))
+ ;; Keep track of general round brace level
+ (when (string= token "(")
+ (setq round-brace-level (+ round-brace-level 1)))
+ (when (string= token ")")
+ (setq round-brace-level (- round-brace-level 1)))
+
;; Are we after a special control structure
;; and does round bracket level match initial round bracket
level
;; and is token not a round bracket
- (when (and after-special-control-structure
- (= after-special-control-structure
start-round-bracket-level)
- (not (string= token ")"))
- (not (string= token "(")))
- (if (not (string= token "{"))
- (progn
- (message "After special control structure %s in buffer
%s" token (buffer-substring-no-properties (point-min) (point-max))))
- ;; (message "Not after special control structure %s in
buffer %s" token (buffer-substring-no-properties (point-min) (point-max)))
- )
- (setq after-special-control-structure nil))
+ (when (and after-special-control-structure
+ (= after-special-control-structure round-brace-level)
+ (not (string= token ")"))
+ (not (string= token "(")))
+ (if (not (string= token "{"))
+ (progn
+ (message "After special control structure %s in buffer:
%s tokens: %s token-start: %s" token (buffer-substring-no-properties
(point-min) (point-max)) phps-mode-lexer-tokens token-start))
+ ;; (message "Not after special control structure %s in
buffer %s" token (buffer-substring-no-properties (point-min) (point-max)))
+ )
+ (setq after-special-control-structure nil))
;; Does the token support inline and alternative syntax?
(when (or
@@ -330,7 +337,7 @@
(equal token 'T_ELSE)
(equal token 'T_ELSEIF))
;; (message "Found special control structure %s %s" token
start-round-bracket-level)
- (setq after-special-control-structure
start-round-bracket-level))
+ (setq after-special-control-structure round-brace-level))
)))
- [elpa] externals/phps-mode 9ac21f1 120/405: More work on inline and alternative control structures, (continued)
- [elpa] externals/phps-mode 9ac21f1 120/405: More work on inline and alternative control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 41ef691 112/405: Fixed lint warning of unused variables, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 12c22ee 119/405: More work on alternative and inline meta information, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7e2e902 126/405: Fixed a unit test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 80da137 114/405: Preparations for adding alternative and inline syntax, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode baab77a 121/405: Unit tests for inline control structures working, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f0dc652 143/405: More work on new indentation function, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7dca537 105/405: Started work on renaming files, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e11a1fc 123/405: Fine-tuning of logic collecting data about inline and alternative control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e206605 115/405: Adding failing unit tests for inline and alternative syntax, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c6aa633 118/405: More work on keeping track of alternative control structures,
Stefan Monnier <=
- [elpa] externals/phps-mode 60c7431 122/405: Unit tests for gather data about inline and alternative control structure syntax passes, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 897f249 124/405: Work on alternative and inline indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode be35ed6 127/405: Added sample files for inline and alternative control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7279913 113/405: Improved TODOs, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a8eadfa 130/405: Improved sample files inline and alternative control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9996ae0 146/405: More work on indentation calculation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3776841 138/405: Added new support for tracking doc-comment, HEREDOC and NOWDOC indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 780d065 125/405: Code styling updates, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 314dba1 135/405: Improved articulation of what information get-current-line-data should return, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f0523b7 137/405: More work on new function to calculate indentation, Stefan Monnier, 2019/07/13