1
0
Fork 0
pull/438/merge
Ivan Bozhanov 2017-12-04 03:05:58 +00:00 committed by GitHub
commit 8477faf86d
75 changed files with 875 additions and 161 deletions

View File

@ -0,0 +1,7 @@
<?php
function helpFunc1(int $count = 0)
{
}
helpFunc1()

View File

@ -0,0 +1,7 @@
<?php
function helpFunc2(int $count = 0)
{
}
helpFunc2(

View File

@ -0,0 +1,15 @@
<?php
class HelpClass5
{
public function method(string $param = "", int $count = 0, bool $test = null)
{
}
public function test()
{
$this->method();
}
}
$a = new HelpClass5;
$a->method("asdf", 123, true);

View File

@ -0,0 +1,15 @@
<?php
class HelpClass1
{
public function method(string $param = "")
{
}
public function test()
{
$this->method();
}
}
$a = new HelpClass1;
$a->method();

View File

@ -0,0 +1,17 @@
<?php
class HelpClass2
{
protected function method(string $param = "")
{
}
public function test()
{
$this->method(1,1);
}
}
$a = new HelpClass2;
$a
->method(
1,
array(),

View File

@ -0,0 +1,10 @@
<?php
class HelpClass3
{
public static function method(string $param = "")
{
}
}
HelpClass3::method()

View File

@ -0,0 +1,10 @@
<?php
class HelpClass4
{
public static function method(string $param = "")
{
}
}
HelpClass4::method(1

View File

@ -6,6 +6,7 @@ namespace LanguageServer;
use LanguageServer\Index\ReadableIndex;
use phpDocumentor\Reflection\{Types, Type, Fqsen, TypeResolver};
use LanguageServer\Protocol\SymbolInformation;
use LanguageServer\Protocol\ParameterInformation;
use Exception;
use Generator;
@ -99,6 +100,13 @@ class Definition
*/
public $documentation;
/**
* Parameters array (for methods and functions), for use in textDocument/signatureHelp
*
* @var ParameterInformation[]
*/
public $parameters;
/**
* Yields the definitons of all ancestor classes (the Definition fqn is yielded as key)
*

View File

@ -5,8 +5,12 @@ namespace LanguageServer;
use LanguageServer\Index\ReadableIndex;
use LanguageServer\Protocol\SymbolInformation;
use LanguageServer\Protocol\ParameterInformation;
use Microsoft\PhpParser;
use Microsoft\PhpParser\Node;
use Microsoft\PhpParser\Node\Expression\AnonymousFunctionCreationExpression;
use Microsoft\PhpParser\Node\MethodDeclaration;
use Microsoft\PhpParser\Node\Statement\FunctionDeclaration;
use phpDocumentor\Reflection\{
DocBlock, DocBlockFactory, Fqsen, Type, TypeResolver, Types
};
@ -232,6 +236,20 @@ class DefinitionResolver
$def->documentation = $this->getDocumentationFromNode($node);
}
$def->parameters = [];
if (($node instanceof MethodDeclaration ||
$node instanceof FunctionDeclaration ||
$node instanceof AnonymousFunctionCreationExpression) &&
$node->parameters !== null
) {
foreach ($node->parameters->getElements() as $param) {
$def->parameters[] = new ParameterInformation(
$this->getDeclarationLineFromNode($param),
$this->getDocumentationFromNode($param)
);
}
}
return $def;
}

View File

@ -9,7 +9,8 @@ use LanguageServer\Protocol\{
TextDocumentSyncKind,
Message,
InitializeResult,
CompletionOptions
CompletionOptions,
SignatureHelpOptions
};
use LanguageServer\FilesFinder\{FilesFinder, ClientFilesFinder, FileSystemFilesFinder};
use LanguageServer\ContentRetriever\{ContentRetriever, ClientContentRetriever, FileSystemContentRetriever};
@ -275,6 +276,9 @@ class LanguageServer extends AdvancedJsonRpc\Dispatcher
$serverCapabilities->completionProvider = new CompletionOptions;
$serverCapabilities->completionProvider->resolveProvider = false;
$serverCapabilities->completionProvider->triggerCharacters = ['$', '>'];
// support signature help
$serverCapabilities->signatureHelpProvider = new SignatureHelpOptions;
$serverCapabilities->signatureHelpProvider->triggerCharacters = ['(',','];
// Support global references
$serverCapabilities->xworkspaceReferencesProvider = true;
$serverCapabilities->xdefinitionProvider = true;

View File

@ -23,4 +23,13 @@ class ParameterInformation
* @var string|null
*/
public $documentation;
/**
* @param string $label The label of this signature. Will be shown in the UI.
* @param string|null $documentation The human-readable doc-comment of this signature.
*/
public function __construct(string $label = null, string $documentation = null)
{
$this->label = $label;
$this->documentation = $documentation;
}
}

View File

@ -29,4 +29,15 @@ class SignatureHelp
* @var int|null
*/
public $activeParameter;
/**
* @param SignatureInformation[] $signatures The signatures.
* @param int|null $activeSignature The active signature.
* @param int|null $activeParameter The active parameter of the active signature.
*/
public function __construct(array $signatures = [], int $activeSignature = null, int $activeParameter = null)
{
$this->signatures = $signatures;
$this->activeSignature = $activeSignature;
$this->activeParameter = $activeParameter;
}
}

View File

@ -31,4 +31,16 @@ class SignatureInformation
* @var ParameterInformation[]|null
*/
public $parameters;
/**
* @param string $label The label of this signature. Will be shown in the UI.
* @param string|null $documentation The human-readable doc-comment of this signature.
* @param ParameterInformation[]|null $parameters The parameters of this signature.
*/
public function __construct(string $label = null, string $documentation = null, array $parameters = null)
{
$this->label = $label;
$this->documentation = $documentation;
$this->parameters = $parameters;
}
}

View File

@ -4,7 +4,7 @@ declare(strict_types = 1);
namespace LanguageServer\Server;
use LanguageServer\{
CompletionProvider, LanguageClient, PhpDocument, PhpDocumentLoader, DefinitionResolver
CompletionProvider, LanguageClient, PhpDocument, PhpDocumentLoader, DefinitionResolver, SignatureHelpProvider
};
use LanguageServer\Index\ReadableIndex;
use LanguageServer\Protocol\{
@ -73,6 +73,10 @@ class TextDocument
* @var \stdClass|null
*/
protected $composerLock;
/**
* @var SignatureHelpProvider
*/
protected $signatureHelpProvider;
/**
* @param PhpDocumentLoader $documentLoader
@ -94,6 +98,7 @@ class TextDocument
$this->client = $client;
$this->definitionResolver = $definitionResolver;
$this->completionProvider = new CompletionProvider($this->definitionResolver, $index);
$this->signatureHelpProvider = new SignatureHelpProvider($this->definitionResolver, $index);
$this->index = $index;
$this->composerJson = $composerJson;
$this->composerLock = $composerLock;
@ -399,4 +404,20 @@ class TextDocument
return [new SymbolLocationInformation($descriptor, $def->symbolInformation->location)];
});
}
/**
* The signature help request is sent from the client to the server to request signature information
* at a given cursor position.
*
* @param TextDocumentIdentifier $textDocument The text document
* @param Position $position The position inside the text document
* @return Promise <SignatureHelp>
*/
public function signatureHelp(TextDocumentIdentifier $textDocument, Position $position): Promise
{
return coroutine(function () use ($textDocument, $position) {
$document = yield $this->documentLoader->getOrLoad($textDocument->uri);
return $this->signatureHelpProvider->provideSignature($document, $position);
});
}
}

View File

@ -0,0 +1,111 @@
<?php
declare(strict_types = 1);
namespace LanguageServer;
use Microsoft\PhpParser\Node\DelimitedList\ArgumentExpressionList;
use Microsoft\PhpParser\Node\Expression\CallExpression;
use Microsoft\PhpParser\Node\Expression\ArgumentExpression;
use LanguageServer\Index\ReadableIndex;
use LanguageServer\Protocol\{
Range,
Position,
SignatureHelp,
SignatureInformation,
ParameterInformation
};
class SignatureHelpProvider
{
/**
* @var DefinitionResolver
*/
private $definitionResolver;
/**
* @var ReadableIndex
*/
private $index;
/**
* @param DefinitionResolver $definitionResolver
* @param ReadableIndex $index
*/
public function __construct(DefinitionResolver $definitionResolver, ReadableIndex $index)
{
$this->definitionResolver = $definitionResolver;
$this->index = $index;
}
/**
* Get the short declaration for a callable (class modifiers, function keyword, etc are stripped)
*
* @param string $declaration
* @return string
*/
protected function getShortDeclaration(string $declaration): string
{
$parts = explode('(', $declaration, 2);
$name = array_reverse(explode(' ', trim($parts[0])))[0];
return $name . '(' . $parts[1];
}
/**
* Returns signature help for a specific cursor position in a document
*
* @param PhpDocument $doc The opened document
* @param Position $pos The cursor position
* @return SignatureHelp
*/
public function provideSignature(PhpDocument $doc, Position $pos) : SignatureHelp
{
$node = $doc->getNodeAtPosition($pos);
$arge = null;
while ($node &&
!($node instanceof ArgumentExpressionList) &&
!($node instanceof CallExpression) &&
$node->parent
) {
if ($node instanceof ArgumentExpression) {
$arge = $node;
}
$node = $node->parent;
}
if (!($node instanceof ArgumentExpressionList) &&
!($node instanceof CallExpression)
) {
return new SignatureHelp;
}
$count = null;
if ($node instanceof ArgumentExpressionList) {
$count = 0;
foreach ($node->getElements() as $param) {
if ($param === $arge) {
break;
}
$count ++;
}
while ($node && !($node instanceof CallExpression) && $node->parent) {
$node = $node->parent;
}
if (!($node instanceof CallExpression)) {
return new SignatureHelp;
}
}
$def = $this->definitionResolver->resolveReferenceNodeToDefinition($node->callableExpression);
if (!$def) {
return new SignatureHelp;
}
return new SignatureHelp(
[
new SignatureInformation(
$this->getShortDeclaration($def->declarationLine),
$def->documentation,
$def->parameters
)
],
0,
$count !== null && $def->parameters !== null && $count < count($def->parameters) ? $count : null
);
}
}

View File

@ -14,7 +14,8 @@ use LanguageServer\Protocol\{
TextDocumentIdentifier,
InitializeResult,
ServerCapabilities,
CompletionOptions
CompletionOptions,
SignatureHelpOptions
};
use AdvancedJsonRpc;
use Webmozart\Glob\Glob;
@ -40,6 +41,8 @@ class LanguageServerTest extends TestCase
$serverCapabilities->completionProvider = new CompletionOptions;
$serverCapabilities->completionProvider->resolveProvider = false;
$serverCapabilities->completionProvider->triggerCharacters = ['$', '>'];
$serverCapabilities->signatureHelpProvider = new SignatureHelpOptions;
$serverCapabilities->signatureHelpProvider->triggerCharacters = ['(',','];
$serverCapabilities->xworkspaceReferencesProvider = true;
$serverCapabilities->xdefinitionProvider = true;
$serverCapabilities->xdependenciesProvider = true;

View File

@ -0,0 +1,248 @@
<?php
declare(strict_types = 1);
namespace LanguageServer\Tests\Server\TextDocument;
use PHPUnit\Framework\TestCase;
use LanguageServer\Tests\MockProtocolStream;
use LanguageServer\{Server, LanguageClient, PhpDocumentLoader, CompletionProvider, DefinitionResolver};
use LanguageServer\Index\{Index, ProjectIndex, DependenciesIndex, GlobalIndex, StubsIndex};
use LanguageServer\ContentRetriever\FileSystemContentRetriever;
use LanguageServer\Protocol\{
TextDocumentIdentifier,
TextEdit,
Range,
Position,
ClientCapabilities,
SignatureHelp,
SignatureInformation,
ParameterInformation
};
use function LanguageServer\pathToUri;
class SignatureHelpTest extends TestCase
{
/**
* @var Server\TextDocument
*/
private $textDocument;
/**
* @var PhpDocumentLoader
*/
private $loader;
public function setUp()
{
$client = new LanguageClient(new MockProtocolStream, new MockProtocolStream);
$projectIndex = new ProjectIndex(new Index, new DependenciesIndex);
$definitionResolver = new DefinitionResolver($projectIndex);
$contentRetriever = new FileSystemContentRetriever;
$this->loader = new PhpDocumentLoader($contentRetriever, $projectIndex, $definitionResolver);
$this->loader->load(pathToUri(__DIR__ . '/../../../fixtures/global_symbols.php'))->wait();
$this->loader->load(pathToUri(__DIR__ . '/../../../fixtures/symbols.php'))->wait();
$this->textDocument = new Server\TextDocument($this->loader, $definitionResolver, $client, $projectIndex);
}
public function testMethodClosed()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/methodClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(9, 22)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "")',
null,
[
new ParameterInformation('string $param = ""')
]
)
]
), $result);
}
public function testMethodClosedReference()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/methodClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(14, 11)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "")',
null,
[
new ParameterInformation('string $param = ""')
]
)
]
), $result);
}
public function testMethodNotClosed()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/methodNotClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(9, 22)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "")',
null,
[
new ParameterInformation('string $param = ""')
]
)
]
), $result);
}
public function testMethodNotClosedReference()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/methodNotClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(14, 14)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "")',
null,
[
new ParameterInformation('string $param = ""')
]
)
]
), $result);
}
public function testFuncClosed()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/funcClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(6, 10)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'helpFunc1(int $count = 0)',
null,
[
new ParameterInformation('int $count = 0')
]
)
]
), $result);
}
public function testFuncNotClosed()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/funcNotClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(6, 10)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'helpFunc2(int $count = 0)',
null,
[
new ParameterInformation('int $count = 0')
]
)
]
), $result);
}
public function testStaticClosed()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/staticClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(9, 19)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "")',
null,
[
new ParameterInformation('string $param = ""')
]
)
]
), $result);
}
public function testStaticNotClosed()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/staticNotClosed.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(9, 19)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "")',
null,
[
new ParameterInformation('string $param = ""')
]
)
]
), $result);
}
public function testMethodActiveParam()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/signature/methodActiveParam.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$result = $this->textDocument->signatureHelp(
new TextDocumentIdentifier($completionUri),
new Position(14, 21)
)->wait();
$this->assertEquals(new SignatureHelp(
[
new SignatureInformation(
'method(string $param = "", int $count = 0, bool $test = null)',
null,
[
new ParameterInformation('string $param = ""'),
new ParameterInformation('int $count = 0'),
new ParameterInformation('bool $test = null')
]
)
],
0,
1
), $result);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -18,7 +18,8 @@
},
"type": null,
"declarationLine": "class MyClass",
"documentation": null
"documentation": null,
"parameters": []
},
"MyClass->mainPropertyName": {
"fqn": "MyClass->mainPropertyName",
@ -38,7 +39,8 @@
"type__tostring": "string",
"type": {},
"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.",
"parameters": []
}
}
}

View File

@ -18,7 +18,8 @@
},
"type": null,
"declarationLine": "class MyClass",
"documentation": null
"documentation": null,
"parameters": []
},
"MyClass->mainPropertyName": {
"fqn": "MyClass->mainPropertyName",
@ -38,7 +39,8 @@
"type__tostring": "string",
"type": {},
"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.",
"parameters": []
}
}
}

View File

@ -25,7 +25,8 @@
},
"type": null,
"declarationLine": "namespace TestNamespace;",
"documentation": null
"documentation": null,
"parameters": []
},
"TestNamespace\\whatever()": {
"fqn": "TestNamespace\\whatever()",
@ -45,7 +46,13 @@
"type__tostring": "\\TestNamespace\\TestClass",
"type": {},
"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.",
"parameters": [
{
"label": "TestClass $param",
"documentation": "Adipisicing non non cillum sint incididunt cillum enim mollit."
}
]
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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