File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33namespace Complete \Completer ;
44
55use Entity \Project ;
6+ use Entity \FQCN ;
67use Entity \Node \MethodData ;
8+ use Entity \Node \ClassProperty ;
79use Entity \Completion \Context ;
810use Entity \Completion \Entry ;
911use Entity \Completion \Scope ;
@@ -46,8 +48,7 @@ protected function getEntriesForVar(
4648 $ entries [] = $ entry ;
4749 }
4850 foreach ($ class ->properties ->all () AS $ property ){
49- $ entry = new Entry ($ property ->name );
50- $ entries [] = $ entry ;
51+ $ entries [] = $ this ->createEntryForProperty ($ property );
5152 }
5253 return $ entries ;
5354 }
@@ -73,8 +74,7 @@ protected function getEntriesForThis(
7374 $ entries [] = $ entry ;
7475 }
7576 foreach ($ class ->properties ->all () AS $ property ){
76- $ entry = new Entry ($ property ->name );
77- $ entries [] = $ entry ;
77+ $ entries [] = $ this ->createEntryForProperty ($ property );
7878 }
7979 return $ entries ;
8080 }
@@ -92,5 +92,14 @@ protected function createEntryForMethod(MethodData $method){
9292 );
9393 }
9494
95+ protected function createEntryForProperty (ClassProperty $ prop ){
96+ $ type = $ prop ->type instanceof FQCN ? $ prop ->type ->toString () : 'mixed ' ;
97+ return new Entry (
98+ $ prop ->name ,
99+ $ type
100+ );
101+ }
102+
103+ /** @property LoggerInterface */
95104 private $ logger ;
96105}
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ public function parse($doc){
2424 $ text = $ doc ;
2525 if (is_array ($ doc )){
2626 $ doc = array_shift ($ doc );
27+ var_dump ($ doc );
2728 $ text = $ doc ->getText ();
2829 }
2930 $ comment = new Comment (
@@ -71,6 +72,7 @@ protected function createMethodParam(Tag $tag){
7172 protected function createVar (Tag $ tag ){
7273 $ name = trim ($ tag ->getVariableName (), '$ ' );
7374 $ param = new Variable ($ name );
75+ $ param ->setType ($ this ->getFQCN ($ tag ->getType ()));
7476 return $ param ;
7577 }
7678 /**
@@ -108,5 +110,6 @@ protected function getContext(){
108110 return new Context ($ namespace , $ aliases );
109111 }
110112
113+ /** @property UseParser */
111114 private $ useParser ;
112115}
Original file line number Diff line number Diff line change 66use PhpParser \Node \Stmt \PropertyProperty as Property ;
77
88class PropertyParser{
9+
10+ public function __construct (CommentParser $ commentParser ){
11+ $ this ->commentParser = $ commentParser ;
12+ }
13+
914 /**
1015 * Parses Property node to ClassProperty
1116 *
@@ -18,6 +23,19 @@ public function parse(Property $node, $modifier=0)
1823 $ prop = new ClassProperty ;
1924 $ prop ->name = $ node ->name ;
2025 $ prop ->setModifier ($ modifier );
26+ $ comments = $ node ->getAttribute ("comments " );
27+ if (is_array ($ comments )){
28+ $ comment = $ this ->commentParser ->parse (
29+ $ comments [count ($ comments )-1 ]->getText ()
30+ );
31+ $ var = array_pop ($ comment ->getVars ());
32+ if ($ var ->getName () === $ prop ->name ){
33+ $ prop ->doc = $ comment ->getDoc ();
34+ $ prop ->type = $ var ->getType ();
35+ }
36+ }
2137 return $ prop ;
2238 }
39+
40+ private $ commentParser ;
2341}
You can’t perform that action at this time.
0 commit comments