branch: externals/phps-mode commit c2af31eb235f13a5c83c93d2eb963353d15d92a9 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
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))))) )