Make FqnUtilities a module of functions, not a static class
parent
0a15afc130
commit
cfc8cc7815
|
@ -53,7 +53,8 @@
|
|||
"LanguageServer\\": "src/"
|
||||
},
|
||||
"files" : [
|
||||
"src/utils.php"
|
||||
"src/utils.php",
|
||||
"src/FqnUtilities.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
|
|
@ -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)
|
||||
);
|
||||
|
||||
|
|
|
@ -1,34 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace LanguageServer;
|
||||
namespace LanguageServer\FqnUtilities;
|
||||
|
||||
use phpDocumentor\Reflection\{Type, Types};
|
||||
use Microsoft\PhpParser;
|
||||
|
||||
class FqnUtilities
|
||||
echo "FQN_UTILIIES" . PHP_EOL;
|
||||
|
||||
/**
|
||||
* Returns all possible FQNs in a type
|
||||
*
|
||||
* @param Type|null $type
|
||||
* @return string[]
|
||||
*/
|
||||
function getFqnsFromType($type): array
|
||||
{
|
||||
/**
|
||||
* Returns all possible FQNs in a type
|
||||
*
|
||||
* @param Type|null $type
|
||||
* @return string[]
|
||||
*/
|
||||
public static function getFqnsFromType($type): array
|
||||
{
|
||||
$fqns = [];
|
||||
if ($type instanceof Types\Object_) {
|
||||
$fqsen = $type->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;
|
||||
}
|
||||
|
|
|
@ -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\{
|
||||
|
|
Loading…
Reference in New Issue