1
0
Fork 0

add signatureHelp to index

pull/547/head
Philip Nelson 2017-12-09 09:43:15 +11:00
parent afd7215624
commit c7dc5af2d9
64 changed files with 727 additions and 283 deletions

View File

@ -40,8 +40,9 @@ class Test
/** /**
* @param int $i Global function param one * @param int $i Global function param one
* @param bool $b Default false param * @param bool $b Default false param
* @param Test|null ...$things Test things
*/ */
function foo(int $i, bool $b = false) function foo(int $i, bool $b = false, Test ...$things = null)
{ {
} }
@ -51,6 +52,9 @@ $t->foo(1,
$t->foo(1,); $t->foo(1,);
$t->baz(); $t->baz();
foo(); foo(
1,
foo(1, 2,
);
Test::bar(); Test::bar();

View File

@ -99,6 +99,13 @@ class Definition
*/ */
public $documentation; public $documentation;
/**
* Signature information if this definition is for a FunctionLike, for use in textDocument/signatureHelp
*
* @var SignatureInformation
*/
public $signatureInformation;
/** /**
* Yields the definitons of all ancestor classes (the Definition fqn is yielded as key) * Yields the definitons of all ancestor classes (the Definition fqn is yielded as key)
* *

View File

@ -7,6 +7,7 @@ use LanguageServer\Index\ReadableIndex;
use LanguageServer\Protocol\SymbolInformation; use LanguageServer\Protocol\SymbolInformation;
use Microsoft\PhpParser; use Microsoft\PhpParser;
use Microsoft\PhpParser\Node; use Microsoft\PhpParser\Node;
use Microsoft\PhpParser\FunctionLike;
use phpDocumentor\Reflection\{ use phpDocumentor\Reflection\{
DocBlock, DocBlockFactory, Fqsen, Type, TypeResolver, Types DocBlock, DocBlockFactory, Fqsen, Type, TypeResolver, Types
}; };
@ -34,6 +35,13 @@ class DefinitionResolver
*/ */
private $docBlockFactory; private $docBlockFactory;
/**
* Creates SignatureInformation
*
* @var SignatureInformationFactory
*/
private $signatureInformationFactory;
/** /**
* @param ReadableIndex $index * @param ReadableIndex $index
*/ */
@ -42,6 +50,7 @@ class DefinitionResolver
$this->index = $index; $this->index = $index;
$this->typeResolver = new TypeResolver; $this->typeResolver = new TypeResolver;
$this->docBlockFactory = DocBlockFactory::createInstance(); $this->docBlockFactory = DocBlockFactory::createInstance();
$this->signatureInformationFactory = new SignatureInformationFactory($this);
} }
/** /**
@ -232,6 +241,10 @@ class DefinitionResolver
$def->documentation = $this->getDocumentationFromNode($node); $def->documentation = $this->getDocumentationFromNode($node);
} }
if ($node instanceof FunctionLike) {
$def->signatureInformation = $this->signatureInformationFactory->create($node);
}
return $def; return $def;
} }

View File

@ -55,34 +55,18 @@ class SignatureHelpProvider
$node = $doc->getNodeAtPosition($position); $node = $doc->getNodeAtPosition($position);
// Find the definition of the item being called // Find the definition of the item being called
list($def, $argumentExpressionList) = $this->getCallingInfo($node); list($def, $argumentExpressionList) = yield $this->getCallingInfo($node);
if (!$def) { if (!$def || !$def->signatureInformation) {
return new SignatureHelp(); return new SignatureHelp();
} }
// Get information from the item being called to build the signature information
$calledDoc = yield $this->documentLoader->getOrLoad($def->symbolInformation->location->uri);
if (!$calledDoc) {
return new SignatureHelp();
}
$calledNode = $calledDoc->getNodeAtPosition($def->symbolInformation->location->range->start);
$params = $this->getParameters($calledNode, $calledDoc);
$label = $this->getLabel($calledNode, $params, $calledDoc);
// Find the active parameter // Find the active parameter
$activeParam = $argumentExpressionList $activeParam = $argumentExpressionList
? $this->findActiveParameter($argumentExpressionList, $position, $doc) ? $this->findActiveParameter($argumentExpressionList, $position, $doc)
: 0; : 0;
$signatureInformation = new SignatureInformation( return new SignatureHelp([$def->signatureInformation], 0, $activeParam);
$label,
$params,
$this->definitionResolver->getDocumentationFromNode($calledNode)
);
$signatureHelp = new SignatureHelp([$signatureInformation], 0, $activeParam);
return $signatureHelp;
}); });
} }
@ -92,10 +76,11 @@ class SignatureHelpProvider
* *
* @param Node $node The node to find calling information from * @param Node $node The node to find calling information from
* *
* @return array|null * @return Promise <array|null>
*/ */
private function getCallingInfo(Node $node) private function getCallingInfo(Node $node)
{ {
return coroutine(function () use ($node) {
$fqn = null; $fqn = null;
$callingNode = null; $callingNode = null;
if ($node instanceof Node\DelimitedList\ArgumentExpressionList) { if ($node instanceof Node\DelimitedList\ArgumentExpressionList) {
@ -142,65 +127,24 @@ class SignatureHelpProvider
// Now find the definition of the call // Now find the definition of the call
$fqn = $fqn ?: DefinitionResolver::getDefinedFqn($callingNode); $fqn = $fqn ?: DefinitionResolver::getDefinedFqn($callingNode);
while (true) {
if ($fqn) { if ($fqn) {
$def = $this->index->getDefinition($fqn); $def = $this->index->getDefinition($fqn);
} else { } else {
$def = $this->definitionResolver->resolveReferenceNodeToDefinition($callingNode); $def = $this->definitionResolver->resolveReferenceNodeToDefinition($callingNode);
} }
if ($def !== null || $this->index->isComplete()) {
break;
}
yield waitForEvent($this->index, 'definition-added');
}
if (!$def) { if (!$def) {
return null; return null;
} }
return [$def, $argumentExpressionList]; return [$def, $argumentExpressionList];
} });
/**
* Creates a label for SignatureInformation
*
* @param Node\MethodDeclaration|Node\Statement\FunctionDeclaration $node The method/function declaration node
* we are building the label for
* @param ParameterInformation[] $params Parameters that belong to the node
*
* @return string
*/
private function getLabel($node, array $params): string
{
$label = '(';
if ($params) {
foreach ($params as $param) {
$label .= $param->label . ', ';
}
$label = substr($label, 0, -2);
}
$label .= ')';
return $label;
}
/**
* Builds ParameterInformation from a node
*
* @param Node\MethodDeclaration|Node\Statement\FunctionDeclaration $node The node to build parameters from
* @param PhpDocument $doc The document the node belongs to
*
* @return ParameterInformation[]
*/
private function getParameters($node, PhpDocument $doc): array
{
$params = [];
if ($node->parameters) {
foreach ($node->parameters->getElements() as $element) {
$param = (string) $this->definitionResolver->getTypeFromNode($element);
$param .= ' ' . $element->variableName->getText($doc->getContent());
if ($element->default) {
$param .= ' = ' . $element->default->getText($doc->getContent());
}
$params[] = new ParameterInformation(
$param,
$this->definitionResolver->getDocumentationFromNode($element)
);
}
}
return $params;
} }
/** /**

View File

@ -0,0 +1,91 @@
<?php
declare(strict_types = 1);
namespace LanguageServer;
use LanguageServer\Protocol\{SignatureInformation, ParameterInformation};
use Microsoft\PhpParser\FunctionLike;
class SignatureInformationFactory
{
/** @var DefinitionResolver */
private $definitionResolver;
/**
* Create a SignatureInformationFactory
*
* @param DefinitionResolver $definitionResolver
*/
public function __construct(DefinitionResolver $definitionResolver)
{
$this->definitionResolver = $definitionResolver;
}
/**
* Create a SignatureInformation from a FunctionLike node
*
* @param FunctionLike $node Node to create signature information from
*
* @return SignatureInformation
*/
public function create(FunctionLike $node): SignatureInformation
{
$params = $this->createParameters($node);
$label = $this->createLabel($params);
return new SignatureInformation(
$label,
$params,
$this->definitionResolver->getDocumentationFromNode($node)
);
}
/**
* Gets parameters from a FunctionLike node
*
* @param FunctionLike $node Node to get parameters from
*
* @return ParameterInformation[]
*/
private function createParameters(FunctionLike $node): array
{
$params = [];
if ($node->parameters) {
foreach ($node->parameters->getElements() as $element) {
$param = (string) $this->definitionResolver->getTypeFromNode($element);
$param .= ' ';
if ($element->dotDotDotToken) {
$param .= '...';
}
$param .= '$' . $element->getName();
if ($element->default) {
$param .= ' = ' . $element->default->getText();
}
$params[] = new ParameterInformation(
$param,
$this->definitionResolver->getDocumentationFromNode($element)
);
}
}
return $params;
}
/**
* Creates a signature information label from parameters
*
* @param ParameterInformation[] $params Parameters to create the label from
*
* @return string
*/
private function createLabel(array $params): string
{
$label = '(';
if ($params) {
foreach ($params as $param) {
$label .= $param->label . ', ';
}
$label = substr($label, 0, -2);
}
$label .= ')';
return $label;
}
}

View File

@ -61,7 +61,7 @@ class SignatureHelpTest extends TestCase
{ {
return [ return [
'member call' => [ 'member call' => [
new Position(48, 9), new Position(49, 9),
new SignatureHelp( new SignatureHelp(
[ [
new SignatureInformation( new SignatureInformation(
@ -78,7 +78,7 @@ class SignatureHelpTest extends TestCase
), ),
], ],
'member call 2nd param active' => [ 'member call 2nd param active' => [
new Position(49, 12), new Position(50, 12),
new SignatureHelp( new SignatureHelp(
[ [
new SignatureInformation( new SignatureInformation(
@ -95,7 +95,7 @@ class SignatureHelpTest extends TestCase
), ),
], ],
'member call 2nd param active and closing )' => [ 'member call 2nd param active and closing )' => [
new Position(50, 11), new Position(51, 11),
new SignatureHelp( new SignatureHelp(
[ [
new SignatureInformation( new SignatureInformation(
@ -112,11 +112,11 @@ class SignatureHelpTest extends TestCase
), ),
], ],
'method with no params' => [ 'method with no params' => [
new Position(51, 9), new Position(52, 9),
new SignatureHelp([new SignatureInformation('()', [], 'Method with no params', 0, 0)]), new SignatureHelp([new SignatureInformation('()', [], 'Method with no params', 0, 0)]),
], ],
'constructor' => [ 'constructor' => [
new Position(47, 14), new Position(48, 14),
new SignatureHelp( new SignatureHelp(
[ [
new SignatureInformation( new SignatureInformation(
@ -134,23 +134,24 @@ class SignatureHelpTest extends TestCase
), ),
], ],
'global function' => [ 'global function' => [
new Position(53, 4), new Position(56, 15),
new SignatureHelp( new SignatureHelp(
[ [
new SignatureInformation( new SignatureInformation(
'(int $i, bool $b = false)', '(int $i, bool $b = false, \Foo\Test|null ...$things = null)',
[ [
new ParameterInformation('int $i', 'Global function param one'), new ParameterInformation('int $i', 'Global function param one'),
new ParameterInformation('bool $b = false', 'Default false param'), new ParameterInformation('bool $b = false', 'Default false param'),
new ParameterInformation('\Foo\Test|null ...$things = null', 'Test things'),
] ]
), ),
], ],
0, 0,
0 2
) )
], ],
'static method' => [ 'static method' => [
new Position(55, 10), new Position(59, 10),
new SignatureHelp( new SignatureHelp(
[new SignatureInformation('(mixed $a)', [new ParameterInformation('mixed $a')])], [new SignatureInformation('(mixed $a)', [new ParameterInformation('mixed $a')])],
0, 0,

View File

@ -31,7 +31,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace Fixtures\\Prophecy;", "declarationLine": "namespace Fixtures\\Prophecy;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"Fixtures\\Prophecy\\WithReturnTypehints": { "Fixtures\\Prophecy\\WithReturnTypehints": {
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints",
@ -52,7 +53,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class WithReturnTypehints extends EmptyClass", "declarationLine": "class WithReturnTypehints extends EmptyClass",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"Fixtures\\Prophecy\\WithReturnTypehints->getSelf()": { "Fixtures\\Prophecy\\WithReturnTypehints->getSelf()": {
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getSelf()", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getSelf()",
@ -72,7 +74,12 @@
"type__tostring": "\\self", "type__tostring": "\\self",
"type": {}, "type": {},
"declarationLine": "public function getSelf(): self {", "declarationLine": "public function getSelf(): self {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"Fixtures\\Prophecy\\WithReturnTypehints->getName()": { "Fixtures\\Prophecy\\WithReturnTypehints->getName()": {
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getName()", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getName()",
@ -92,7 +99,12 @@
"type__tostring": "string", "type__tostring": "string",
"type": {}, "type": {},
"declarationLine": "public function getName(): string {", "declarationLine": "public function getName(): string {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"Fixtures\\Prophecy\\WithReturnTypehints->getParent()": { "Fixtures\\Prophecy\\WithReturnTypehints->getParent()": {
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getParent()", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getParent()",
@ -112,7 +124,12 @@
"type__tostring": "\\parent", "type__tostring": "\\parent",
"type": {}, "type": {},
"declarationLine": "public function getParent(): parent {", "declarationLine": "public function getParent(): parent {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"A->foo": { "A->foo": {
"fqn": "A->foo", "fqn": "A->foo",
@ -38,7 +39,8 @@
"type__tostring": "string[]", "type__tostring": "string[]",
"type": {}, "type": {},
"declarationLine": "protected $foo;", "declarationLine": "protected $foo;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace TestNamespace;", "declarationLine": "namespace TestNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestNamespace\\A": { "TestNamespace\\A": {
"fqn": "TestNamespace\\A", "fqn": "TestNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestNamespace\\A->a": { "TestNamespace\\A->a": {
"fqn": "TestNamespace\\A->a", "fqn": "TestNamespace\\A->a",
@ -64,7 +66,8 @@
"type__tostring": "int", "type__tostring": "int",
"type": {}, "type": {},
"declarationLine": "public $a;", "declarationLine": "public $a;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace TestNamespace;", "declarationLine": "namespace TestNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestNamespace\\TestClass": { "TestNamespace\\TestClass": {
"fqn": "TestNamespace\\TestClass", "fqn": "TestNamespace\\TestClass",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class TestClass", "declarationLine": "class TestClass",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestNamespace\\TestClass->testProperty": { "TestNamespace\\TestClass->testProperty": {
"fqn": "TestNamespace\\TestClass->testProperty", "fqn": "TestNamespace\\TestClass->testProperty",
@ -64,7 +66,8 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public $testProperty;", "declarationLine": "public $testProperty;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestNamespace\\TestClass->testMethod()": { "TestNamespace\\TestClass->testMethod()": {
"fqn": "TestNamespace\\TestClass->testMethod()", "fqn": "TestNamespace\\TestClass->testMethod()",
@ -84,7 +87,17 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function testMethod($testParameter)", "declarationLine": "public function testMethod($testParameter)",
"documentation": null,
"signatureInformation": {
"label": "(mixed $testParameter)",
"documentation": null,
"parameters": [
{
"label": "mixed $testParameter",
"documentation": null "documentation": null
} }
]
}
}
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A", "declarationLine": "class A",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::suite()": { "MyNamespace\\A::suite()": {
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public static function suite()", "declarationLine": "public static function suite()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A", "declarationLine": "class A",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::suite()": { "MyNamespace\\A::suite()": {
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public static function suite()", "declarationLine": "public static function suite()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A", "declarationLine": "class A",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::suite()": { "MyNamespace\\A::suite()": {
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public static function suite()", "declarationLine": "public static function suite()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A", "declarationLine": "class A",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->suite()": { "MyNamespace\\A->suite()": {
"fqn": "MyNamespace\\A->suite()", "fqn": "MyNamespace\\A->suite()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function suite()", "declarationLine": "public function suite()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\Mbstring": { "MyNamespace\\Mbstring": {
"fqn": "MyNamespace\\Mbstring", "fqn": "MyNamespace\\Mbstring",
@ -41,7 +42,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class Mbstring", "declarationLine": "class Mbstring",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\Mbstring::MB_CASE_FOLD": { "MyNamespace\\Mbstring::MB_CASE_FOLD": {
"fqn": "MyNamespace\\Mbstring::MB_CASE_FOLD", "fqn": "MyNamespace\\Mbstring::MB_CASE_FOLD",
@ -61,7 +63,8 @@
"type__tostring": "\\MyNamespace\\PHP_INT_MAX", "type__tostring": "\\MyNamespace\\PHP_INT_MAX",
"type": {}, "type": {},
"declarationLine": "const MB_CASE_FOLD = PHP_INT_MAX;", "declarationLine": "const MB_CASE_FOLD = PHP_INT_MAX;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "interface A {", "declarationLine": "interface A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"A->b()": { "A->b()": {
"fqn": "A->b()", "fqn": "A->b()",
@ -42,7 +43,17 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b ($a = MY_CONSTANT);", "declarationLine": "function b ($a = MY_CONSTANT);",
"documentation": null,
"signatureInformation": {
"label": "(\\MY_CONSTANT $a = MY_CONSTANT)",
"documentation": null,
"parameters": [
{
"label": "\\MY_CONSTANT $a = MY_CONSTANT",
"documentation": null "documentation": null
} }
]
}
}
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "interface A {", "declarationLine": "interface A {",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace B;", "declarationLine": "namespace B;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"A::$deprecationsTriggered": { "A::$deprecationsTriggered": {
"fqn": "A::$deprecationsTriggered", "fqn": "A::$deprecationsTriggered",
@ -42,7 +43,8 @@
"type__tostring": "\\__CLASS__[]", "type__tostring": "\\__CLASS__[]",
"type": {}, "type": {},
"declarationLine": "private static $deprecationsTriggered;", "declarationLine": "private static $deprecationsTriggered;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::a()": { "MyNamespace\\A::a()": {
"fqn": "MyNamespace\\A::a()", "fqn": "MyNamespace\\A::a()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "static function a() {", "declarationLine": "static function a() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::a()": { "MyNamespace\\A::a()": {
"fqn": "MyNamespace\\A::a()", "fqn": "MyNamespace\\A::a()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "static function a() {", "declarationLine": "static function a() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -40,7 +40,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -59,7 +60,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::getInitializer()": { "MyNamespace\\A::getInitializer()": {
"fqn": "MyNamespace\\A::getInitializer()", "fqn": "MyNamespace\\A::getInitializer()",
@ -79,7 +81,17 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public static function getInitializer(ClassLoader $loader)", "declarationLine": "public static function getInitializer(ClassLoader $loader)",
"documentation": null,
"signatureInformation": {
"label": "(\\MyNamespace\\ClassLoader $loader)",
"documentation": null,
"parameters": [
{
"label": "\\MyNamespace\\ClassLoader $loader",
"documentation": null "documentation": null
} }
]
}
}
} }
} }

View File

@ -31,7 +31,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -50,7 +51,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->testRequest()": { "MyNamespace\\A->testRequest()": {
"fqn": "MyNamespace\\A->testRequest()", "fqn": "MyNamespace\\A->testRequest()",
@ -70,7 +72,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function testRequest()", "declarationLine": "public function testRequest()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\ParseErrorsTest": { "MyNamespace\\ParseErrorsTest": {
"fqn": "MyNamespace\\ParseErrorsTest", "fqn": "MyNamespace\\ParseErrorsTest",
@ -41,7 +42,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class ParseErrorsTest {", "declarationLine": "class ParseErrorsTest {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\ParseErrorsTest->setUp()": { "MyNamespace\\ParseErrorsTest->setUp()": {
"fqn": "MyNamespace\\ParseErrorsTest->setUp()", "fqn": "MyNamespace\\ParseErrorsTest->setUp()",
@ -61,7 +63,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function setUp()", "declarationLine": "public function setUp()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\ParseErrorsTest": { "MyNamespace\\ParseErrorsTest": {
"fqn": "MyNamespace\\ParseErrorsTest", "fqn": "MyNamespace\\ParseErrorsTest",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class ParseErrorsTest", "declarationLine": "class ParseErrorsTest",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\ParseErrorsTest->setAccount()": { "MyNamespace\\ParseErrorsTest->setAccount()": {
"fqn": "MyNamespace\\ParseErrorsTest->setAccount()", "fqn": "MyNamespace\\ParseErrorsTest->setAccount()",
@ -67,7 +69,17 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function setAccount(AccountInterface $account)", "declarationLine": "public function setAccount(AccountInterface $account)",
"documentation": null,
"signatureInformation": {
"label": "(\\MyNamespace\\AccountInterface $account)",
"documentation": null,
"parameters": [
{
"label": "\\MyNamespace\\AccountInterface $account",
"documentation": null "documentation": null
} }
]
}
}
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class FooClass {", "declarationLine": "class FooClass {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"FooClass->foo()": { "FooClass->foo()": {
"fqn": "FooClass->foo()", "fqn": "FooClass->foo()",
@ -42,7 +43,12 @@
"type__tostring": "\\FooClass", "type__tostring": "\\FooClass",
"type": {}, "type": {},
"declarationLine": "public function foo(): FooClass {", "declarationLine": "public function foo(): FooClass {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -31,7 +31,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace1;", "declarationLine": "namespace MyNamespace1;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace1\\B": { "MyNamespace1\\B": {
"fqn": "MyNamespace1\\B", "fqn": "MyNamespace1\\B",
@ -50,7 +51,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace1\\B->b()": { "MyNamespace1\\B->b()": {
"fqn": "MyNamespace1\\B->b()", "fqn": "MyNamespace1\\B->b()",
@ -70,7 +72,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace2": { "MyNamespace2": {
"fqn": "MyNamespace2", "fqn": "MyNamespace2",
@ -89,7 +96,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace2;", "declarationLine": "namespace MyNamespace2;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace2\\A": { "MyNamespace2\\A": {
"fqn": "MyNamespace2\\A", "fqn": "MyNamespace2\\A",
@ -110,7 +118,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends MyNamespace1\\B {", "declarationLine": "class A extends MyNamespace1\\B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace2\\A->a()": { "MyNamespace2\\A->a()": {
"fqn": "MyNamespace2\\A->a()", "fqn": "MyNamespace2\\A->a()",
@ -130,7 +139,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class Foo", "declarationLine": "class Foo",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"Foo->fn()": { "Foo->fn()": {
"fqn": "Foo->fn()", "fqn": "Foo->fn()",
@ -38,7 +39,12 @@
"type__tostring": "\\Iterator", "type__tostring": "\\Iterator",
"type": {}, "type": {},
"declarationLine": "public function fn()", "declarationLine": "public function fn()",
"documentation": "Foo" "documentation": "Foo",
"signatureInformation": {
"label": "()",
"documentation": "Foo",
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"A->b()": { "A->b()": {
"fqn": "A->b()", "fqn": "A->b()",
@ -42,7 +43,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -31,7 +31,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace1;", "declarationLine": "namespace MyNamespace1;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -40,7 +40,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace B;", "declarationLine": "namespace B;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace A \\ B;", "declarationLine": "namespace A \\ B;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace LanguageServer\\Tests\\Utils;", "declarationLine": "namespace LanguageServer\\Tests\\Utils;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -41,7 +42,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -61,7 +63,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -63,7 +65,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -83,7 +86,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"A->a()": { "A->a()": {
"fqn": "A->a()", "fqn": "A->a()",
@ -42,7 +43,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\init()": { "MyNamespace\\init()": {
"fqn": "MyNamespace\\init()", "fqn": "MyNamespace\\init()",
@ -42,7 +43,17 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function init(Hi $view)", "declarationLine": "function init(Hi $view)",
"documentation": null,
"signatureInformation": {
"label": "(\\MyNamespace\\Hi $view)",
"documentation": null,
"parameters": [
{
"label": "\\MyNamespace\\Hi $view",
"documentation": null "documentation": null
} }
]
}
}
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -41,7 +42,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -61,7 +63,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -82,7 +89,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -102,7 +110,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -85,7 +92,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -105,7 +113,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class MyClass", "declarationLine": "class MyClass",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyClass->mainPropertyName": { "MyClass->mainPropertyName": {
"fqn": "MyClass->mainPropertyName", "fqn": "MyClass->mainPropertyName",
@ -38,7 +39,8 @@
"type__tostring": "string", "type__tostring": "string",
"type": {}, "type": {},
"declarationLine": "protected $mainPropertyName;", "declarationLine": "protected $mainPropertyName;",
"documentation": "The name of the main property, or NULL if there is none." "documentation": "The name of the main property, or NULL if there is none.",
"signatureInformation": null
} }
} }
} }

View File

@ -18,7 +18,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class MyClass", "declarationLine": "class MyClass",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyClass->mainPropertyName": { "MyClass->mainPropertyName": {
"fqn": "MyClass->mainPropertyName", "fqn": "MyClass->mainPropertyName",
@ -38,7 +39,8 @@
"type__tostring": "string", "type__tostring": "string",
"type": {}, "type": {},
"declarationLine": "protected $mainPropertyName;", "declarationLine": "protected $mainPropertyName;",
"documentation": "The name of the main property, or NULL if there is none." "documentation": "The name of the main property, or NULL if there is none.",
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace TestNamespace;", "declarationLine": "namespace TestNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestNamespace\\whatever()": { "TestNamespace\\whatever()": {
"fqn": "TestNamespace\\whatever()", "fqn": "TestNamespace\\whatever()",
@ -45,7 +46,17 @@
"type__tostring": "\\TestNamespace\\TestClass", "type__tostring": "\\TestNamespace\\TestClass",
"type": {}, "type": {},
"declarationLine": "function whatever(TestClass $param): TestClass2 {", "declarationLine": "function whatever(TestClass $param): TestClass2 {",
"documentation": "Aute duis elit reprehenderit tempor cillum proident anim laborum eu laboris reprehenderit ea incididunt." "documentation": "Aute duis elit reprehenderit tempor cillum proident anim laborum eu laboris reprehenderit ea incididunt.",
"signatureInformation": {
"label": "(\\TestNamespace\\TestClass $param)",
"documentation": "Aute duis elit reprehenderit tempor cillum proident anim laborum eu laboris reprehenderit ea incididunt.",
"parameters": [
{
"label": "\\TestNamespace\\TestClass $param",
"documentation": "Adipisicing non non cillum sint incididunt cillum enim mollit."
}
]
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -44,7 +45,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::a()": { "MyNamespace\\A::a()": {
"fqn": "MyNamespace\\A::a()", "fqn": "MyNamespace\\A::a()",
@ -64,7 +66,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "static function a() {", "declarationLine": "static function a() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A {", "declarationLine": "class A {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"A::$a": { "A::$a": {
"fqn": "A::$a", "fqn": "A::$a",
@ -45,7 +46,8 @@
"type__tostring": "string", "type__tostring": "string",
"type": {}, "type": {},
"declarationLine": "static $a;", "declarationLine": "static $a;",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -31,7 +31,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class TestClass implements TestInterface {", "declarationLine": "class TestClass implements TestInterface {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"TestClass::$testProperty": { "TestClass::$testProperty": {
"fqn": "TestClass::$testProperty", "fqn": "TestClass::$testProperty",
@ -51,7 +52,8 @@
"type__tostring": "\\TestClass[]", "type__tostring": "\\TestClass[]",
"type": {}, "type": {},
"declarationLine": "public static $testProperty;", "declarationLine": "public static $testProperty;",
"documentation": "Lorem excepteur officia sit anim velit veniam enim." "documentation": "Lorem excepteur officia sit anim velit veniam enim.",
"signatureInformation": null
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -67,7 +69,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -88,7 +95,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -108,7 +116,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -67,7 +69,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -88,7 +95,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -108,7 +116,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -67,7 +69,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -88,7 +95,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -108,7 +116,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -37,7 +37,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -56,7 +57,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A", "declarationLine": "class A",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A::suite()": { "MyNamespace\\A::suite()": {
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
@ -76,7 +78,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public static function suite()", "declarationLine": "public static function suite()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -41,7 +42,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A", "declarationLine": "class A",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->typesProvider()": { "MyNamespace\\A->typesProvider()": {
"fqn": "MyNamespace\\A->typesProvider()", "fqn": "MyNamespace\\A->typesProvider()",
@ -61,7 +63,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function typesProvider()", "declarationLine": "public function typesProvider()",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -67,7 +69,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -88,7 +95,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -108,7 +116,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -67,7 +69,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -88,7 +95,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -108,7 +116,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -28,7 +28,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B": { "MyNamespace\\B": {
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
@ -47,7 +48,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B {", "declarationLine": "class B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\B->b()": { "MyNamespace\\B->b()": {
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
@ -67,7 +69,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function b() {", "declarationLine": "function b() {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -88,7 +95,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -108,7 +116,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace MyNamespace;", "declarationLine": "namespace MyNamespace;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A": { "MyNamespace\\A": {
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
@ -46,7 +47,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class A extends B {", "declarationLine": "class A extends B {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"MyNamespace\\A->a()": { "MyNamespace\\A->a()": {
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
@ -66,7 +68,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class FooClass {", "declarationLine": "class FooClass {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"FooClass::staticFoo()": { "FooClass::staticFoo()": {
"fqn": "FooClass::staticFoo()", "fqn": "FooClass::staticFoo()",
@ -42,7 +43,12 @@
"type__tostring": "\\FooClass", "type__tostring": "\\FooClass",
"type": {}, "type": {},
"declarationLine": "public static function staticFoo(): FooClass {", "declarationLine": "public static function staticFoo(): FooClass {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
}, },
"FooClass->bar()": { "FooClass->bar()": {
"fqn": "FooClass->bar()", "fqn": "FooClass->bar()",
@ -62,7 +68,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function bar() { }", "declarationLine": "public function bar() { }",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class B", "declarationLine": "class B",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"B->hi": { "B->hi": {
"fqn": "B->hi", "fqn": "B->hi",
@ -42,7 +43,8 @@
"type__tostring": "int", "type__tostring": "int",
"type": {}, "type": {},
"declarationLine": "public $hi;", "declarationLine": "public $hi;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"B->a()": { "B->a()": {
"fqn": "B->a()", "fqn": "B->a()",
@ -62,7 +64,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "function a () {", "declarationLine": "function a () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }

View File

@ -22,7 +22,8 @@
}, },
"type": null, "type": null,
"declarationLine": "namespace SomeNamespace { }", "declarationLine": "namespace SomeNamespace { }",
"documentation": null "documentation": null,
"signatureInformation": null
} }
} }
} }

View File

@ -25,7 +25,8 @@
}, },
"type": null, "type": null,
"declarationLine": "class Foo {", "declarationLine": "class Foo {",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"Foo->bar": { "Foo->bar": {
"fqn": "Foo->bar", "fqn": "Foo->bar",
@ -45,7 +46,8 @@
"type__tostring": "\\", "type__tostring": "\\",
"type": {}, "type": {},
"declarationLine": "protected $bar;", "declarationLine": "protected $bar;",
"documentation": null "documentation": null,
"signatureInformation": null
}, },
"Foo->foo()": { "Foo->foo()": {
"fqn": "Foo->foo()", "fqn": "Foo->foo()",
@ -65,7 +67,12 @@
"type__tostring": "mixed", "type__tostring": "mixed",
"type": {}, "type": {},
"declarationLine": "public function foo () {", "declarationLine": "public function foo () {",
"documentation": null "documentation": null,
"signatureInformation": {
"label": "()",
"documentation": null,
"parameters": []
}
} }
} }
} }