branch: externals/phps-mode
commit c2af31eb235f13a5c83c93d2eb963353d15d92a9
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Imenu support now shows hierarchical information
---
phps-mode-functions.el | 9 +++++----
phps-mode-test-functions.el | 10 +++++++---
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index 08b8604..e7b54fd 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -662,7 +662,8 @@
(cond
((string= token-symbol "{")
- (setq open-namespace-level nesting-level))
+ (setq open-namespace-level nesting-level)
+ (setq in-namespace-declaration nil))
((string= token-symbol ";")
(setq in-namespace-declaration nil))
@@ -685,7 +686,7 @@
(index-pos token-start))
(setq in-class-name index-name)
(when in-namespace-name
- (setq index-name (concat in-namespace-name " | "
index-name)))
+ (setq index-name (concat in-namespace-name " \\ "
index-name)))
(push `(,index-name . ,index-pos) index)))))
(in-function-declaration
@@ -702,9 +703,9 @@
(let ((index-name (format "function %s"
(buffer-substring-no-properties token-start token-end)))
(index-pos token-start))
(when in-class-name
- (setq index-name (concat in-class-name " | " index-name)))
+ (setq index-name (concat in-class-name " -> " index-name)))
(when in-namespace-name
- (setq index-name (concat in-namespace-name " | "
index-name)))
+ (setq index-name (concat in-namespace-name " \\ "
index-name)))
(push `(,index-name . ,index-pos) index)))))
(t
diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el
index aca76ad..a9550e9 100644
--- a/phps-mode-test-functions.el
+++ b/phps-mode-test-functions.el
@@ -594,13 +594,17 @@
(phps-mode-test-with-buffer
"<?php\nclass myClass {\n public function myFunctionA() {}\n
protected function myFunctionB() {}\n}\n"
"Imenu object-oriented file"
- (should (equal (phps-mode-functions-imenu-create-index-function) '(("class
myClass" . 13) ("class myClass | function myFunctionA" . 43) ("class myClass |
function myFunctionB" . 83)))))
+ (should (equal (phps-mode-functions-imenu-create-index-function) '(("class
myClass" . 13) ("class myClass -> function myFunctionA" . 43) ("class myClass
-> function myFunctionB" . 83)))))
(phps-mode-test-with-buffer
"<?php\nnamespace myNamespace {\n class myClass {\n public
function myFunctionA() {}\n protected function myFunctionB() {}\n
}\n}\n"
- "Imenu object-oriented file"
- (should (equal (phps-mode-functions-imenu-create-index-function) '(("class
myClass" . 13) ("class myClass | function myFunctionA" . 43) ("class myClass |
function myFunctionB" . 83)))))
+ "Imenu object-oriented file with namespace, class and function"
+ (should (equal (phps-mode-functions-imenu-create-index-function)
'(("namespace myNamespace" . 17) ("namespace myNamespace \\ class myClass" .
41) ("namespace myNamespace \\ class myClass -> function myFunctionA" . 75)
("namespace myNamespace \\ class myClass -> function myFunctionB" . 119)))))
+ (phps-mode-test-with-buffer
+ "<?php\nnamespace myNamespace;\nclass myClass {\n public function
myFunctionA() {}\n protected function myFunctionB() {}\n}\n"
+ "Imenu object-oriented file with bracket-less namespace, class and function"
+ (should (equal (phps-mode-functions-imenu-create-index-function)
'(("namespace myNamespace" . 17) ("namespace myNamespace \\ class myClass" .
36) ("namespace myNamespace \\ class myClass -> function myFunctionA" . 66)
("namespace myNamespace \\ class myClass -> function myFunctionB" . 106)))))
)