branch: externals/phps-mode
commit bb381d812780e363c9444c3fc9ad72440e2bc93a
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Bookkeeping of class properties via AST passed test
---
phps-mode-ast-bookkeeping.el | 6 ++++++
phps-mode-parser-sdt.el | 8 ++++++--
test/phps-mode-test-ast.el | 2 +-
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/phps-mode-ast-bookkeeping.el b/phps-mode-ast-bookkeeping.el
index 7daf64317b..fc20aea951 100644
--- a/phps-mode-ast-bookkeeping.el
+++ b/phps-mode-ast-bookkeeping.el
@@ -563,6 +563,12 @@
(cond
((string= downcase-subject-name "$this")
+ (puthash
+ (list
+ (plist-get subject 'start)
+ (plist-get subject 'end))
+ 1
+ bookkeeping)
(let* ((sub-variable-namespace
(phps-mode-ast-bookkeeping--generate-variable-namespace
namespace
diff --git a/phps-mode-parser-sdt.el b/phps-mode-parser-sdt.el
index 060e337288..7d883851d4 100644
--- a/phps-mode-parser-sdt.el
+++ b/phps-mode-parser-sdt.el
@@ -619,7 +619,7 @@
;; static_member -> (class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable)
(puthash
495
- (lambda(args _terminals)
+ (lambda(args terminals)
(let ((ast-object
(list
'ast-type
@@ -627,7 +627,11 @@
'class
(nth 0 args)
'member
- (nth 2 args))))
+ (nth 2 args)
+ 'start
+ (car (cdr (nth 0 terminals)))
+ 'end
+ (cdr (cdr (nth 0 terminals))))))
ast-object))
phps-mode-parser--table-translations)
diff --git a/test/phps-mode-test-ast.el b/test/phps-mode-test-ast.el
index ba863c74cf..6ad813295e 100644
--- a/test/phps-mode-test-ast.el
+++ b/test/phps-mode-test-ast.el
@@ -378,7 +378,7 @@
(phps-mode-ast-bookkeeping--generate)
(should (equal
(phps-mode-test--hash-to-list phps-mode-ast-bookkeeping--index t)
- '((" class myParent id $var1" 1) ((93 98) 1) (" class myParent
static id $var2" 1) ((127 132) 1) (" class myParent id $var3" 1) ((145 150) 1)
(" class myParent id $var4" 1) ((160 165) 1) (" class myParent function
__construct id $this" 1) ((208 213) 1) ((263 268) 1) ((270 274) 1) ((330 335)
0) ((392 397) 1) ((447 452) 1) ((454 458) 1) ((508 513) 1) ((515 519) 1) ((569
574) 1) ((576 580) 0) ((688 693) 0))))))
+ '((" class myClass id $var1" 1) ((93 98) 1) (" class myClass
static id $var2" 1) ((127 132) 1) (" class myClass id $var3" 1) ((145 150) 1)
(" class myClass id $var4" 1) ((160 165) 1) (" class myClass function
__construct id $this" 1) ((208 213) 1) ((263 268) 1) ((270 274) 1) ((330 335)
0) ((392 397) 1) ((447 452) 1) ((454 458) 1) ((508 513) 1) ((515 519) 1) ((569
574) 1) ((576 580) 0) ((688 693) 0))))))
(phps-mode-test-ast--buffer-contents
"<?php\n\ntry {\n \n} catch (\\Exception $e) {\n if ($e) {\n
echo 'Hit';\n }\n}\n\nif ($e) {\n echo 'Miss';\n}\n"