branch: externals/phps-mode commit b5a6f5986f22e9af8c560318aafbea35e8fd0d8c Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Added failing test and fix for bookkeeping namespaced trait function symbols --- phps-mode-parser-sdt.el | 22 ++++++++++++---------- test/phps-mode-test-ast.el | 6 ++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/phps-mode-parser-sdt.el b/phps-mode-parser-sdt.el index 26cca0d676..ee80957f95 100644 --- a/phps-mode-parser-sdt.el +++ b/phps-mode-parser-sdt.el @@ -984,8 +984,8 @@ imenu-nail phps-mode-parser-sdt-symbol-imenu--table))))))))) - (imenu-function - (let ((imenu-nail2 (format "function %s" (nth 0 imenu-function)))) + (imenu-trait + (let ((imenu-nail2 (format "trait %s" (nth 0 imenu-trait)))) (unless (gethash imenu-nail2 @@ -993,7 +993,7 @@ imenu-nail phps-mode-parser-sdt-symbol-imenu--table)) (let ((imenu-object (make-hash-table :test 'equal))) - (puthash 'declaration (nth 1 imenu-function) imenu-object) + (puthash 'declaration (nth 1 imenu-trait) imenu-object) (puthash imenu-nail2 imenu-object @@ -1021,8 +1021,8 @@ imenu-nail phps-mode-parser-sdt-symbol-imenu--table))))))))) - (imenu-trait - (let ((imenu-nail2 (format "trait %s" (nth 0 imenu-trait)))) + (imenu-interface + (let ((imenu-nail2 (format "interface %s" (nth 0 imenu-interface)))) (unless (gethash imenu-nail2 @@ -1030,7 +1030,7 @@ imenu-nail phps-mode-parser-sdt-symbol-imenu--table)) (let ((imenu-object (make-hash-table :test 'equal))) - (puthash 'declaration (nth 1 imenu-trait) imenu-object) + (puthash 'declaration (nth 1 imenu-interface) imenu-object) (puthash imenu-nail2 imenu-object @@ -1058,8 +1058,8 @@ imenu-nail phps-mode-parser-sdt-symbol-imenu--table))))))))) - (imenu-interface - (let ((imenu-nail2 (format "interface %s" (nth 0 imenu-interface)))) + (imenu-function + (let ((imenu-nail2 (format "function %s" (nth 0 imenu-function)))) (unless (gethash imenu-nail2 @@ -1067,7 +1067,7 @@ imenu-nail phps-mode-parser-sdt-symbol-imenu--table)) (let ((imenu-object (make-hash-table :test 'equal))) - (puthash 'declaration (nth 1 imenu-interface) imenu-object) + (puthash 'declaration (nth 1 imenu-function) imenu-object) (puthash imenu-nail2 imenu-object @@ -1093,7 +1093,9 @@ imenu-nail2 (gethash imenu-nail - phps-mode-parser-sdt-symbol-imenu--table)))))))))))) + phps-mode-parser-sdt-symbol-imenu--table))))))))) + + ))) (imenu-class (let ((imenu-nail (format "class %s" (nth 0 imenu-class)))) diff --git a/test/phps-mode-test-ast.el b/test/phps-mode-test-ast.el index b49b06df13..3564b392c9 100644 --- a/test/phps-mode-test-ast.el +++ b/test/phps-mode-test-ast.el @@ -396,6 +396,12 @@ '(((60 64) 1) ((82 86) 1)) '(("namespace myNamespace" ("declaration" . 18) ("function myFunction" ("declaration" . 41) ("function myFunction" ("declaration" . 41)) ("$var" . 60))))) + (phps-mode-test-ast--should-bookkeep + "<?php\n\nnamespace myNamespace;\n\ntrait myTrait\n{\n public function myFunction($arg): string {\n if ($arg) {\n echo 'hit';\n }\n }\n}" + "Bookkeeping of namespaced trait" + '(((79 83) 2) ((107 111) 2)) + '(("namespace myNamespace" ("declaration" . 18) ("trait myTrait" ("declaration" . 38) ("function myFunction" ("declaration" . 68) ("$arg" . 79)))))) + (message "\n-- Ran tests for bookkeeping generation. --")) (defun phps-mode-test-ast ()