branch: externals/phps-mode
commit 5be3560f9281af5e89176dafa85951d08c1234a0
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Adding more indent examples from PSR-2
---
phps-mode-test-functions.el | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index d176cf3..62513e6 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -178,7 +178,7 @@
)
(defun phps-mode-test-functions-get-lines-indent-psr-2 ()
- "Test PSR-2 examples from: https://www.php-fig.org/psr/psr-2/"
+ "Test PSR-2 examples from: https://www.php-fig.org/psr/psr-2/."
(phps-mode-test-with-buffer
"<?php\nnamespace Vendor\\Package;\n\nuse FooInterface;\nuse BarClass as
Bar;\nuse OtherVendor\\OtherPackage\\BazClass;\n\nclass Foo extends Bar
implements FooInterface\n{\n public function sampleMethod($a, $b = null)\n
{\n if ($a === $b) {\n bar();\n } elseif ($a > $b)
{\n $foo->bar($arg1);\n } else {\n
BazClass::bar($arg2, $arg3);\n }\n }\n\n final public static
function bar()\n {\n // method body\n [...]
@@ -204,6 +204,47 @@
;; (message "Indent: %s" (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))
(should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (0
0)) (7 (0 0)) (8 (0 0)) (9 (1 0)) (10 (1 0)) (11 (1 0)) (12 (0 0)) (13 (1 0))
(14 (0 0))) (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))))
+ (phps-mode-test-with-buffer
+ "<?php\nnamespace Vendor\Package;\n\nclass ClassName\n{\n public $foo =
null;\n}"
+ "PSR-2 : 4.2. Properties"
+ ;; (message "Indent: %s" (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))
+ (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (1
0)) (7 (0 0))) (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))))
+
+ (phps-mode-test-with-buffer
+ "<?php\nnamespace Vendor\Package;\n\nclass ClassName\n{\n public
function fooBarBaz($arg1, &$arg2, $arg3 = [])\n {\n // method body\n
}\n}"
+ "PSR-2 : 4.3. Methods"
+ ;; (message "Indent: %s" (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))
+ (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (1
0)) (7 (1 0)) (8 (2 0)) (9 (1 0)) (10 (0 0))) (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))))
+
+ (phps-mode-test-with-buffer
+ "<?php\nnamespace Vendor\Package;\n\nclass ClassName\n{\n public
function foo($arg1, &$arg2, $arg3 = [])\n {\n // method body\n
}\n}"
+ "PSR-2 : 4.4. Method Arguments : Example 1"
+ ;; (message "Indent: %s" (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))
+ (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (1
0)) (7 (1 0)) (8 (2 0)) (9 (1 0)) (10 (0 0))) (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))))
+
+ ;; TODO Fix this
+
+ (phps-mode-test-with-buffer
+ "<?php\nnamespace Vendor\Package;\n\nclass ClassName\n{\n public
function aVeryLongMethodName(\n ClassTypeHint $arg1,\n &$arg2,\n
array $arg3 = []\n ) {\n // method body\n }\n}"
+ "PSR-2 : 4.4. Method Arguments : Example 2"
+ (message "Indent: %s" (phps-mode-test-hash-to-list
(phps-mode-functions-get-lines-indent)))
+ (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 0)) (4 (0 0)) (5 (0 0)) (6 (1
0)) (7 (2 0)) (8 (2 0)) (9 (2 0)) (10 (1 0)) (11 (2 0)) (12 (1 0)) (13 (0 0)))
(phps-mode-test-hash-to-list (phps-mode-functions-get-lines-indent)))))
+
+ ;; TODO 4.5. abstract, final, and static
+ ;; TODO 4.6. Method and Function Calls : Example 1
+ ;; TODO 4.6. Method and Function Calls : Example 2
+ ;; TODO 5.1. if, elseif, else
+ ;; TODO 5.2. switch, case
+ ;; TODO 5.3. while, do while : Example 1
+ ;; TODO 5.3. while, do while : Example 2
+ ;; TODO 5.4. for
+ ;; TODO 5.5. foreach
+ ;; TODO 5.6. try, catch
+ ;; TODO 6. Closures : Example 1
+ ;; TODO 6. Closures : Example 2
+ ;; TODO 6. Closures : Example 3
+
+
)
(defun phps-mode-test-functions-get-lines-indent-multi-line-assignments ()