From f970833b0a6d65a38e85ddbedcb9333df6ce5d66 Mon Sep 17 00:00:00 2001 From: jens1o Date: Wed, 15 Nov 2017 18:37:16 +0100 Subject: [PATCH] add more things https://github.com/felixfbecker/php-language-server/issues/200 --- src/DefinitionResolver.php | 5 +++++ src/Protocol/SymbolInformation.php | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/DefinitionResolver.php b/src/DefinitionResolver.php index 66bfe60..1d08a78 100644 --- a/src/DefinitionResolver.php +++ b/src/DefinitionResolver.php @@ -979,6 +979,11 @@ class DefinitionResolver return $this->resolveExpressionNodeToType($node->argumentExpressionList->children[2]->expression); } + // FOREACH KEY VARIABLE + if ($node instanceof Node\ForeachKey) { + return new Types\Integer; + } + // PARAMETERS // Get the type of the parameter: // 1. Doc block diff --git a/src/Protocol/SymbolInformation.php b/src/Protocol/SymbolInformation.php index 6b4d39e..0ac8973 100644 --- a/src/Protocol/SymbolInformation.php +++ b/src/Protocol/SymbolInformation.php @@ -83,6 +83,8 @@ class SymbolInformation ) || $node instanceof Node\UseVariableName || $node instanceof Node\Parameter + || $node instanceof Node\ForeachValue + || $node instanceof Node\ForeachKey ) { $symbol->kind = SymbolKind::VARIABLE; } else { @@ -103,6 +105,8 @@ class SymbolInformation } else { $symbol->name = ltrim((string)$node->name->getText($node->getFileContents()), "$"); } + } else if ($node instanceof Node\ForeachValue || $node instanceof Node\ForeachKey) { + $symbol->name = $node->expression->getName(); } else if (isset($node->variableName)) { $symbol->name = $node->variableName->getText($node); } else if (!isset($symbol->name)) {