[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 41b1566c40 010/212: Imenu generation via pars
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 41b1566c40 010/212: Imenu generation via parser SDT passing more tests |
Date: |
Wed, 26 Jan 2022 01:50:12 -0500 (EST) |
branch: externals/phps-mode
commit 41b1566c4064333c3f0da5a1df4f65dbb5a39e59
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Imenu generation via parser SDT passing more tests
---
phps-mode-ast.el | 60 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 35 insertions(+), 25 deletions(-)
diff --git a/phps-mode-ast.el b/phps-mode-ast.el
index 0efce743e1..a868d01694 100644
--- a/phps-mode-ast.el
+++ b/phps-mode-ast.el
@@ -110,9 +110,6 @@
;; (message "args: %S" args)
;; (message "terminals: %S" terminals)
;; (message "ast-object: %S" ast-object)
- (push
- ast-object
- phps-mode-ast--tree)
ast-object))
phps-mode-parser--table-translations)
@@ -121,10 +118,6 @@
108
(lambda(args _terminals)
;; (message "T_NAMESPACE: %S" args)
- (when (nth 2 args)
- (setq
- phps-mode-ast--tree
- (append phps-mode-ast--tree (nth 2 args))))
(nth 2 args))
phps-mode-parser--table-translations)
@@ -147,10 +140,6 @@
;; (message "Function: %S" ast-object)
;; (message "args: %S" args)
;; (message "terminals: %S" terminals)
- (when phps-mode-ast--current-namespace
- (push
- ast-object
- phps-mode-ast--current-namespace-children))
ast-object))
phps-mode-parser--table-translations)
@@ -175,10 +164,6 @@
;; (message "Class %S" ast-object)
;; (message "args: %S" args)
;; (message "terminals: %S" terminals)
- (when phps-mode-ast--current-namespace
- (push
- ast-object
- phps-mode-ast--current-namespace-children))
ast-object))
phps-mode-parser--table-translations)
@@ -230,16 +215,33 @@
phps-mode-ast--tree
nil)
(let ((translation (phps-mode-parser-translate)))
-
- (message "translation: %S" translation)
+ ;; (message "translation:\n%S\n\n" translation)
(when translation
- (if phps-mode-ast--tree
- (setq
- phps-mode-ast--tree
- (append phps-mode-ast--tree translation))
- (setq
- phps-mode-ast--tree
- translation)))
+ (dolist (item translation)
+ (when (listp item)
+ (cond
+
+ ((plist-get item 'type)
+ (if phps-mode-ast--current-namespace
+ (push
+ item
+ phps-mode-ast--current-namespace-children)
+ (push
+ item
+ phps-mode-ast--tree)))
+
+ ((listp (car item))
+ (dolist (sub-item item)
+ (when (and
+ (listp sub-item)
+ (plist-get sub-item 'type))
+ (if phps-mode-ast--current-namespace
+ (push
+ sub-item
+ phps-mode-ast--current-namespace-children)
+ (push
+ sub-item
+ phps-mode-ast--tree)))))))))
(when phps-mode-ast--current-namespace
(plist-put
@@ -249,6 +251,11 @@
(push
phps-mode-ast--current-namespace
phps-mode-ast--tree))
+ (setq
+ phps-mode-ast--tree
+ (reverse phps-mode-ast--tree))
+
+ ;; (message "AST:\n%S\n\n" phps-mode-ast--tree)
(let ((imenu-index))
(dolist (item phps-mode-ast--tree)
@@ -292,7 +299,10 @@
imenu-index))))
(setq
phps-mode-ast--imenu
- (reverse imenu-index)))))
+ (reverse imenu-index)))
+
+ ;; (message "imenu:\n%S\n\n" phps-mode-ast--imenu)
+ ))
(provide 'phps-mode-ast)
- [elpa] externals/phps-mode 1af63142f3 127/212: Fixed incremental issue with new SDT based bookkeeping, (continued)
- [elpa] externals/phps-mode 1af63142f3 127/212: Fixed incremental issue with new SDT based bookkeeping, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 3565c7efb3 125/212: Fixed byte-compilation warnings for indent file, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a8097b5b5e 147/212: Improved indentation on line after equal operator in if condition list, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode dece7f242e 160/212: Added more failing indentation tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode a530988fe0 134/212: Added more failing indent tests, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 8c1f529f87 145/212: Passing indent for line after ending of statement / expression with trailing closing bracket, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d7aa22d251 146/212: Added two new failing tests for indentation, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode c453932f32 139/212: Added TODO item, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 8374026917 166/212: Improved indentation on lines starting with a closing square bracket, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 2afb7dc87a 002/212: Generating basic imenu-index via parser SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 41b1566c40 010/212: Imenu generation via parser SDT passing more tests,
Christian Johansson <=
- [elpa] externals/phps-mode 8f9870fb9b 013/212: Parser SDT does not use global variables, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 4753734b0a 006/212: Moved syntax coloring to separate file, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode d037aa09bc 023/212: Added bookkeeping via parser SDT foreach ($x as $y) {}, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 3d54b6ff01 022/212: Passed another test for bookkeeping generated via parser SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 442ad93cb2 018/212: Fix for function parameter formatting in AST, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 2a4d5dea37 019/212: Passed bookkeeping of function arguments, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode c29e35fea2 021/212: More work on bookkeeping, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode 0daaa97f8d 025/212: SDT for for() loop started, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode fa3681141b 027/212: Passed test for bookkeeping of conditional assignment via parser SDT, Christian Johansson, 2022/01/26
- [elpa] externals/phps-mode fc4c763d68 030/212: Added SDT for class properties, Christian Johansson, 2022/01/26