1
0
Fork 0

Merge branch 'master' into content-retriever

pull/208/head
Felix Becker 2016-12-08 01:46:50 +01:00 committed by GitHub
commit e9d931c21a
2 changed files with 49 additions and 26 deletions

View File

@ -4,12 +4,10 @@ declare(strict_types = 1);
namespace LanguageServer;
use PhpParser\Node;
use phpDocumentor\Reflection\Types;
use LanguageServer\Protocol\{
TextEdit,
Range,
Position,
SymbolKind,
CompletionList,
CompletionItem,
CompletionItemKind
@ -134,7 +132,6 @@ class CompletionProvider
|| $node instanceof Node\Expr\StaticPropertyFetch
|| $node instanceof Node\Expr\ClassConstFetch
) {
if (!is_string($node->name)) {
// If the name is an Error node, just filter by the class
if ($node instanceof Node\Expr\MethodCall || $node instanceof Node\Expr\PropertyFetch) {
// For instances, resolve the variable type
@ -155,10 +152,6 @@ class CompletionProvider
$prefix .= '::$';
}
}
} else {
$fqn = $this->definitionResolver->resolveReferenceNodeToFqn($node);
$prefixes = $fqn !== null ? [$fqn] : [];
}
foreach ($this->project->getDefinitions() as $fqn => $def) {
foreach ($prefixes as $prefix) {

View File

@ -254,10 +254,25 @@ class CompletionTest extends TestCase
new Position(2, 13)
)->wait();
$this->assertEquals(new CompletionList([
new CompletionItem(
'TEST_CLASS_CONST',
CompletionItemKind::VARIABLE,
'int',
'Anim labore veniam consectetur laboris minim quis aute aute esse nulla ad.'
),
new CompletionItem(
'staticTestProperty',
CompletionItemKind::PROPERTY,
'\TestClass[]',
'Lorem excepteur officia sit anim velit veniam enim.',
null,
null,
'$staticTestProperty'
),
new CompletionItem(
'staticTestMethod',
CompletionItemKind::METHOD,
'mixed', // Method return type
'mixed',
'Do magna consequat veniam minim proident eiusmod incididunt aute proident.'
)
], true), $items);
@ -277,6 +292,21 @@ class CompletionTest extends TestCase
CompletionItemKind::VARIABLE,
'int',
'Anim labore veniam consectetur laboris minim quis aute aute esse nulla ad.'
),
new CompletionItem(
'staticTestProperty',
CompletionItemKind::PROPERTY,
'\TestClass[]',
'Lorem excepteur officia sit anim velit veniam enim.',
null,
null,
'$staticTestProperty'
),
new CompletionItem(
'staticTestMethod',
CompletionItemKind::METHOD,
'mixed',
'Do magna consequat veniam minim proident eiusmod incididunt aute proident.'
)
], true), $items);
}