[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode a5beef1 097/405: Added support for square bra
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode a5beef1 097/405: Added support for square bracket indentation |
Date: |
Sat, 13 Jul 2019 09:59:51 -0400 (EDT) |
branch: externals/phps-mode
commit a5beef1ce6f4faf4136efc16e980894521f1c5a9
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Added support for square bracket indentation
---
phps-functions.el | 35 ++++++++++++++++++++---------------
phps-test-functions.el | 13 ++++++++++---
2 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/phps-functions.el b/phps-functions.el
index 2c50305..11c7a46 100644
--- a/phps-functions.el
+++ b/phps-functions.el
@@ -58,15 +58,19 @@
;; Are we in scripting?
(when in-scripting
- (let ((start-bracket-level (nth 1 start))
- (start-parenthesis-level (nth 2 start))
- (start-token-number (nth 4 start))
- (end-bracket-level (nth 1 end))
- (end-parenthesis-level (nth 2 end))
- (end-token-number (nth 4 end))
- (in-doc-comment (nth 5 start)))
- (let* ((indent-start (+ start-bracket-level start-parenthesis-level))
- (indent-end (+ end-bracket-level end-parenthesis-level))
+ (let ((start-curly-bracket-level (nth 1 start))
+ (start-round-bracket-level (nth 2 start))
+ (start-square-bracket-level (nth 3 start))
+ (start-inline-function-level (nth 4 start))
+ (start-token-number (nth 5 start))
+ (end-curly-bracket-level (nth 1 end))
+ (end-round-bracket-level (nth 2 end))
+ (end-square-bracket-level (nth 3 end))
+ (end-inline-function-level (nth 4 end))
+ (end-token-number (nth 5 end))
+ (in-doc-comment (nth 6 start)))
+ (let* ((indent-start (+ start-curly-bracket-level
start-round-bracket-level start-square-bracket-level))
+ (indent-end (+ end-curly-bracket-level
end-round-bracket-level end-square-bracket-level))
(indent-level indent-start)
(indent-adjust 0))
;; (message "indent-start %s, indent-end %s" indent-start
indent-end)
@@ -78,8 +82,8 @@
end-token-number)
(let ((token-number start-token-number)
(valid-tokens t)
- (last-token-is-opening-brace nil)
- (first-token-is-closing-brace nil)
+ (last-token-is-opening-curly-bracket nil)
+ (first-token-is-closing-curly-bracket nil)
(tokens phps-mode/lexer-tokens)
(is-first-line-token t))
;; (message "token start %s, token end %s" start-token-number
end-token-number)
@@ -99,7 +103,7 @@
;; Is it the last token and is it a opening brace?
(when (and (= token-number end-token-number)
(string= token "{"))
- (setq last-token-is-opening-brace t))
+ (setq last-token-is-opening-curly-bracket t))
;; Is it the first line token?
(when is-first-line-token
@@ -107,7 +111,7 @@
;; Is it a closing brace?
(when (string= token "}")
- (setq first-token-is-closing-brace t)))
+ (setq first-token-is-closing-curly-bracket t)))
(when (and valid-tokens
(not (or
@@ -118,6 +122,7 @@
(string= token "[")
(string= token "]")
(string= token ";")
+ (string= token ",")
(eq token 'T_CLOSE_TAG))))
;; (message "Token %s - %s in %s was invalid, line
start %s" token token-number tokens line-start)
(setq valid-tokens nil))
@@ -130,7 +135,7 @@
(progn
;; If last token is a opening brace indent line one
lesser column
- (when last-token-is-opening-brace
+ (when last-token-is-opening-curly-bracket
;; (message "Last token was opening brace")
(setq indent-level (- indent-level 1)))
@@ -139,7 +144,7 @@
;; If first token is a closing brace indent line one lesser
column
- (when first-token-is-closing-brace
+ (when first-token-is-closing-curly-bracket
;; (message "First token was closing brace")
(setq indent-level (- indent-level 1))))
diff --git a/phps-test-functions.el b/phps-test-functions.el
index 137db58..429503c 100644
--- a/phps-test-functions.el
+++ b/phps-test-functions.el
@@ -47,6 +47,7 @@
(defun phps-mode/test-indent-line ()
"Test for indentation."
+ ;; Curly bracket tests
(phps-mode/with-test-buffer
"<html><head><title><?php if ($myCondition) {\nif ($mySeconCondition)
{\necho $title;\n\n} ?></title><body>Bla bla</body></html>"
(goto-char 69)
@@ -70,7 +71,6 @@
(phps-mode/with-test-buffer
"<html><head><title><?php if ($myCondition) {\nif ($mySeconCondition)
{\necho $title3;\n\n}\n?>\n</title><body>Bla bla</body></html>"
-
(goto-char 110)
(phps-mode/indent-line)
(let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
@@ -163,11 +163,19 @@
(let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
(should (equal buffer-contents "<?php\nif (myFirstCondition()) {\n
$this->var = 'abc123';\n} else if (mySeconCondition()) {\n $this->var =
'def456';\n}\n"))))
+ ;; Square bracket
+ (phps-mode/with-test-buffer
+ "<?php\n$var = [\n 'random' => [\n 'hello',\n],\n];\n"
+ (goto-char 51)
+ (phps-mode/indent-line)
+ (let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
+ (should (equal buffer-contents "<?php\n$var = [\n 'random' => [\n
'hello',\n ],\n];\n"))))
+
(phps-mode/with-test-buffer
"<?php\nif (myRandomCondition()):\necho 'Something here';\n else:\n
echo 'Something else here';\nendif;\n"
(goto-char 60)
(phps-mode/indent-line)
- (message "Tokens %s" phps-mode/lexer-tokens)
+ ;; (message "Tokens %s" phps-mode/lexer-tokens)
(let ((buffer-contents (buffer-substring-no-properties (point-min)
(point-max))))
(should (equal buffer-contents "<?php\nif (myRandomCondition()):\necho
'Something here';\nelse:\n echo 'Something else here';\nendif;\n"))))
@@ -270,7 +278,6 @@
(phps-mode/with-test-buffer
"<html><head><title><?php if ($myCondition) { \n if ($mySeconCondition) {
echo $title; } } ?></title><body>Bla bla</body></html>"
- ;; (message "Tokens: %s" phps-mode/lexer-tokens)
(goto-char 48)
(should (equal (list (list t 1 0 0 0 5 nil) (list nil 0 0 0 0 17 nil))
(phps-mode/get-point-data))))
- [elpa] externals/phps-mode f7f931a 092/405: Added another failing indentation test, (continued)
- [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
- [elpa] externals/phps-mode 989cc7e 098/405: Fixed flycheck warning about semantic, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c5beb50 093/405: Added another unit test for indentation with special syntax, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3740660 095/405: Get point-data now collects information about square brackets, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 6c8eea0 100/405: Added another failing indentation case for switch case, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a899707 102/405: Updated comments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 89fac0b 094/405: Added another unit test for bracket less conditional, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 6ac718c 104/405: Removed non-breaking space from syntax table, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a5beef1 097/405: Added support for square bracket indentation,
Stefan Monnier <=
- [elpa] externals/phps-mode 2c9746b 101/405: Added switch case unit test for lexer, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 47ad456 103/405: Fixed syntax table for white-spaces, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode cd1fdee 106/405: *** empty log message ***, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode efa297a 108/405: More work on renaming, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 529042e 109/405: More work on renaming, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7688cd7 111/405: Got incremental lexer working after renaming again, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9c4a3ba 117/405: More work on alternative control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3272991 110/405: Merge branch 'master' of https://github.com/cjohansson/emacs-phps-mode, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7c6ee3e 107/405: More work on renaming, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 46a8256 116/405: Starting implementation of tracking alternative control structure level, Stefan Monnier, 2019/07/13