[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode a10cc79 085/405: Debugging a indentation case
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode a10cc79 085/405: Debugging a indentation case |
Date: |
Sat, 13 Jul 2019 09:59:48 -0400 (EDT) |
branch: externals/phps-mode
commit a10cc79d825a81991da4eaa24ce5294ee237b85f
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Debugging a indentation case
---
phps-functions.el | 23 +++++++++++------------
phps-test-functions.el | 14 ++++++++------
2 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/phps-functions.el b/phps-functions.el
index 84e3df9..543996c 100644
--- a/phps-functions.el
+++ b/phps-functions.el
@@ -46,7 +46,8 @@
;; TODO Support inline function indentations
(defun phps-mode/indent-line ()
"Indent line."
- (let ((data (phps-mode/get-point-data)))
+ (let ((data (phps-mode/get-point-data))
+ (line-start (line-beginning-position)))
(let* ((start (nth 0 data))
(end (nth 1 data))
(in-scripting (nth 0 start)))
@@ -64,12 +65,12 @@
(indent-end (+ end-bracket-level end-parenthesis-level))
(indent-level indent-start)
(indent-adjust 0))
- ;; (message "indent-start %s, indent-end %s" indent-start
indent-end)
+ (message "indent-start %s, indent-end %s" indent-start indent-end)
;; When bracket count at start is larger than bracket count at end
(when (and
(boundp 'phps-mode/lexer-tokens)
- (> indent-start indent-end)
+ (not (equal indent-start indent-end))
start-token-number
end-token-number)
(let ((token-number start-token-number)
@@ -92,8 +93,8 @@
;; Check if current token is not one of the valid tokens
(when (and valid-tokens
- (or (>= token-start (point))
- (>= token-end (point)))
+ (or (>= token-start line-start)
+ (>= token-end line-start))
(not (or
(string= token "{")
(string= token "}")
@@ -103,13 +104,13 @@
(string= token "]")
(string= token ";")
(eq token 'T_CLOSE_TAG))))
- ;; (message "Token %s - %s in %s was invalid" token
token-number tokens)
+ (message "Token %s - %s in %s was invalid, line start
%s" token token-number tokens line-start)
(setq valid-tokens nil)))
(setq token-number (+ token-number 1)))
(when valid-tokens
- ;; (message "Tokens was valid, decreasing indent %s - %s"
(line-beginning-position) (line-end-position))
+ (message "Tokens was valid, decreasing indent %s - %s"
(line-beginning-position) (line-end-position))
;; If last token is a opening brace indent line one lesser
column
(when last-token-is-open-brace
@@ -135,12 +136,10 @@
(indent-line-to indent-sum)
- ;; TODO When indent is changed the trailing tokens just need
to adjust their token positions, this will improve speed of indent-region a lot
- ;; TODO Lexer states need to be moved as well
- (let ((line-start (line-beginning-position)))
+ ;; When indent is changed the trailing tokens and states
just need to adjust their positions, this will improve speed of indent-region a
lot
(phps-mode/move-lexer-tokens line-start indent-diff)
(phps-mode/move-lexer-states line-start indent-diff)
- (message "Moving tokens and states %s, %s to %s"
indent-diff current-indentation indent-sum)
+ ;; (message "Moving tokens and states %s, %s to %s"
indent-diff current-indentation indent-sum)
;; ;; Set point of change if it's not set or if it's
larger than current point
;; (when (or (not phps-mode/buffer-changes--start)
@@ -150,7 +149,7 @@
;; (phps-mode/run-incremental-lex)
- ))))))))))
+ )))))))))
;; TODO Implement this?
(defun phps-mode/indent-region ()
diff --git a/phps-test-functions.el b/phps-test-functions.el
index ff3f82d..468bee7 100644
--- a/phps-test-functions.el
+++ b/phps-test-functions.el
@@ -137,13 +137,15 @@
(let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
(should (equal buffer-contents "<?php\nif (random_expression(\ntrue\n))
{\nsome_logic_here();\n}"))))
+ (phps-mode/with-test-buffer
+ "<?php\nif (empty(\n$this->var\n) && !empty($this->var)\n) {\n$this->var =
'abc123';\n}\n"
+ (goto-char 54)
+ (phps-mode/indent-line)
+ ;; (message "Tokens %s point %s" phps-mode/lexer-tokens (point))
+ (let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
+ (should (equal buffer-contents "<?php\nif (empty(\n$this->var\n) &&
!empty($this->var)\n) {\n$this->var = 'abc123';\n}\n"))))
+
;; TODO Test this
- ;; if (empty(
- ;; $this->var
- ;; ) && !empty($this->var)
- ;; ) {
- ;; $this->var = 'abc123';
- ;; }
)
- [elpa] externals/phps-mode c57fb5b 073/405: Improved indentation of trailing opening brace, (continued)
- [elpa] externals/phps-mode c57fb5b 073/405: Improved indentation of trailing opening brace, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 5e30a65 076/405: Added TODO items, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 94d4814 078/405: Added test for moving lexer tokens, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a59ef7b 079/405: More unit tests for moving lexer token positions, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 287d934 077/405: Updated comments are made un-tested function for moving token positions, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b3821a1 080/405: Updated TODOs, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f4cd90e 072/405: Updated readme and makefile for running all tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f79cf4f 081/405: Started on function for moving lexer states, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e340279 082/405: Added unit tests for moving lexer-state positions, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 89b12ab 084/405: Added autoloads and fixed bug with assigning variable, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a10cc79 085/405: Debugging a indentation case,
Stefan Monnier <=
- [elpa] externals/phps-mode e30ac0c 083/405: Started implementation of moving lexer and state position when, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 8c919ac 087/405: Added failing indentation test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 69ced0d 090/405: Added another unit test for failed indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f2f41a3 088/405: Handles indentation case with } else if (...) {, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 59ba835 086/405: Fixed issue with wrong indentation at trailing opening brace, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 434c3dc 089/405: Added more failing tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 61abf7e 091/405: Added todo item, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f7f931a 092/405: Added another failing indentation test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a8561ab 096/405: Updated unit test for get-point-data with support for square brackets, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode dbc02bb 099/405: Improved syntax table, Stefan Monnier, 2019/07/13