diff --git a/composer.json b/composer.json index c896216..a1aedfd 100644 --- a/composer.json +++ b/composer.json @@ -53,7 +53,8 @@ "LanguageServer\\": "src/" }, "files" : [ - "src/utils.php" + "src/utils.php", + "src/FqnUtilities.php" ] }, "autoload-dev": { diff --git a/src/CompletionProvider.php b/src/CompletionProvider.php index d1fd950..74a8c6d 100644 --- a/src/CompletionProvider.php +++ b/src/CompletionProvider.php @@ -179,7 +179,7 @@ class CompletionProvider $a->c# $a-># */ elseif ($node instanceof Node\Expression\MemberAccessExpression) { - $prefixes = FqnUtilities::getFqnsFromType( + $prefixes = FqnUtilities\getFqnsFromType( $this->definitionResolver->resolveExpressionNodeToType($node->dereferencableExpression) ); $prefixes = $this->expandParentFqns($prefixes); @@ -209,7 +209,7 @@ class CompletionProvider ($scoped = $node->parent) instanceof Node\Expression\ScopedPropertyAccessExpression || ($scoped = $node) instanceof Node\Expression\ScopedPropertyAccessExpression ) { - $prefixes = FqnUtilities::getFqnsFromType( + $prefixes = FqnUtilities\getFqnsFromType( $classType = $this->definitionResolver->resolveExpressionNodeToType($scoped->scopeResolutionQualifier) ); diff --git a/src/FqnUtilities.php b/src/FqnUtilities.php index f0ff53c..0fc06b2 100644 --- a/src/FqnUtilities.php +++ b/src/FqnUtilities.php @@ -1,34 +1,33 @@ getFqsen(); - if ($fqsen !== null) { - $fqns[] = substr((string)$fqsen, 1); - } + $fqns = []; + if ($type instanceof Types\Object_) { + $fqsen = $type->getFqsen(); + if ($fqsen !== null) { + $fqns[] = substr((string)$fqsen, 1); } - if ($type instanceof Types\Compound) { - for ($i = 0; $t = $type->get($i); $i++) { - foreach (self::getFqnsFromType($type) as $fqn) { - $fqns[] = $fqn; - } - } - } - return $fqns; } + if ($type instanceof Types\Compound) { + for ($i = 0; $t = $type->get($i); $i++) { + foreach (getFqnsFromType($type) as $fqn) { + $fqns[] = $fqn; + } + } + } + return $fqns; } diff --git a/src/Server/TextDocument.php b/src/Server/TextDocument.php index c07586c..2e8e4bf 100644 --- a/src/Server/TextDocument.php +++ b/src/Server/TextDocument.php @@ -4,7 +4,7 @@ declare(strict_types = 1); namespace LanguageServer\Server; use LanguageServer\{ - CompletionProvider, FqnUtilities, LanguageClient, PhpDocument, PhpDocumentLoader, DefinitionResolver + CompletionProvider, LanguageClient, PhpDocument, PhpDocumentLoader, DefinitionResolver }; use LanguageServer\Index\ReadableIndex; use LanguageServer\Protocol\{