[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 9201d1c 246/405: Imenu index now handles func
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode 9201d1c 246/405: Imenu index now handles functions with optional arguments |
Date: |
Sat, 13 Jul 2019 10:00:25 -0400 (EDT) |
branch: externals/phps-mode
commit 9201d1ccd426d4ec9a58c3c5c81a6b8873d99385
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Imenu index now handles functions with optional arguments
---
phps-mode-functions.el | 7 ++++++-
phps-mode-test-functions.el | 5 +++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index c15c37b..04c36ae 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -631,6 +631,7 @@
(open-class-level nil)
(in-class-name nil)
(in-function-declaration nil)
+ (in-function-name nil)
(open-function-level nil)
(nesting-level 0))
(dolist (token tokens)
@@ -695,14 +696,17 @@
((string= token-symbol "{")
(setq open-function-level nesting-level)
+ (setq in-function-name nil)
(setq in-function-declaration nil))
((string= token-symbol ";")
(setq in-function-declaration nil))
- ((equal token-symbol 'T_STRING)
+ ((and (equal token-symbol 'T_STRING)
+ (not in-function-name))
(let ((index-name (format "%s()"
(buffer-substring-no-properties token-start token-end)))
(index-pos token-start))
+ (setq in-function-name index-name)
(when in-class-name
(setq index-name (concat in-class-name "->" index-name)))
(when in-namespace-name
@@ -721,6 +725,7 @@
(setq in-class-declaration t))
((equal token-symbol 'T_FUNCTION)
+ (setq in-function-name nil)
(setq in-function-declaration t)))))))))
(nreverse index)))
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index 04100bd..b69ae50 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -616,6 +616,11 @@
"Imenu object-oriented file with bracket-less namespace, class that extends
and implements and functions"
(should (equal (phps-mode-functions-imenu-create-index-function)
'(("\\myNamespace" . 17) ("\\myNamespace\\myClass" . 36)
("\\myNamespace\\myClass->myFunctionA()" . 108)
("\\myNamespace\\myClass->myFunctionB()" . 148)))))
+ (phps-mode-test-with-buffer
+ "<?php\nnamespace myNamespace;\nclass myClass extends myAbstract implements
myInterface {\n public function myFunctionA($myArg = null) {}\n protected
function myFunctionB($myArg = 'abc') {}\n}\n"
+ "Imenu object-oriented file with bracket-less namespace, class that extends
and implements and functions with optional arguments"
+ (should (equal (phps-mode-functions-imenu-create-index-function)
'(("\\myNamespace" . 17) ("\\myNamespace\\myClass" . 36)
("\\myNamespace\\myClass->myFunctionA()" . 108)
("\\myNamespace\\myClass->myFunctionB()" . 161)))))
+
)
;; TODO Add tests for all examples here: https://www.php-fig.org/psr/psr-2/
- [elpa] externals/phps-mode 0c49d6d 243/405: Removed debugging output, (continued)
- [elpa] externals/phps-mode 0c49d6d 243/405: Removed debugging output, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 95ac15a 245/405: Imenu index now handles class extends and implements, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 67233ef 213/405: Fixed indent algorithm for multi-line strings, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 36a4b64 222/405: Added lost test for token-less lines again, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 70f2d46 242/405: Fixed lexer issue with multiple expressions inside double-quoted string, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 0286660 224/405: Indentation passes new tests for concatenated strings, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode f05d40a 230/405: Tests for lexer passes again after close_tag modification, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 1bc5713 227/405: New tests for concatenation passes, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c71a97d 178/405: Started on refactored indentation calculation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 8bb3918 249/405: Clean-up of unit test logging, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9201d1c 246/405: Imenu index now handles functions with optional arguments,
Stefan Monnier <=
- [elpa] externals/phps-mode 2c3239a 187/405: Adding new failing tests for indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d9a0119 183/405: Optimized indentation code by removing unused variables, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a0cbcd1 186/405: More work on indentation of multi-line IF-expressions, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d7c5f67 190/405: More work on nesting-stack, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 253839f 170/405: Added indentation unit tests for concatenated strings outside assignments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e38794b0 197/405: More conceptual work on algorithm for inline control structures, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9db28d9 185/405: Added verbose flag for unit tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 2a1ed52 196/405: Optimized algorithm for indentation, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a30c3f6 177/405: More work on indentation tests, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e8a8d41 204/405: Merged remote changes, Stefan Monnier, 2019/07/13