From 42d0c7b714f91d272207380737eb075ee2d46b8a Mon Sep 17 00:00:00 2001 From: Jens Hausdorf Date: Fri, 9 Jun 2017 22:12:32 +0200 Subject: [PATCH] Improve handling of abstract classes (#391) --- src/DefinitionResolver.php | 8 ++++++-- src/LanguageServer.php | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/DefinitionResolver.php b/src/DefinitionResolver.php index 0570ed1..cf2f8a6 100644 --- a/src/DefinitionResolver.php +++ b/src/DefinitionResolver.php @@ -114,7 +114,7 @@ class DefinitionResolver // For everything else, get the doc block summary corresponding to the current node. $docBlock = $this->getDocBlock($node); if ($docBlock !== null) { - // check wether we have a description, when true, add a new paragraph + // check whether we have a description, when true, add a new paragraph // with the description $description = $docBlock->getDescription()->render(); @@ -174,7 +174,11 @@ class DefinitionResolver $def->fqn = $fqn; // Determines whether the suggestion will show after "new" - $def->canBeInstantiated = $node instanceof Node\Statement\ClassDeclaration; + $def->canBeInstantiated = ( + $node instanceof Node\Statement\ClassDeclaration && + // check whether it is not an abstract class + ($node->abstractOrFinalModifier === null || $node->abstractOrFinalModifier->kind !== PhpParser\TokenKind::AbstractKeyword) + ); // Interfaces, classes, traits, namespaces, functions, and global const elements $def->isGlobal = ( diff --git a/src/LanguageServer.php b/src/LanguageServer.php index 173abfe..118dd93 100644 --- a/src/LanguageServer.php +++ b/src/LanguageServer.php @@ -106,7 +106,7 @@ class LanguageServer extends AdvancedJsonRpc\Dispatcher protected $definitionResolver; /** - * @param PotocolReader $reader + * @param ProtocolReader $reader * @param ProtocolWriter $writer */ public function __construct(ProtocolReader $reader, ProtocolWriter $writer) @@ -132,7 +132,7 @@ class LanguageServer extends AdvancedJsonRpc\Dispatcher // If a ResponseError is thrown, send it back in the Response $error = $e; } catch (Throwable $e) { - // If an unexpected error occured, send back an INTERNAL_ERROR error response + // If an unexpected error occurred, send back an INTERNAL_ERROR error response $error = new AdvancedJsonRpc\Error( (string)$e, AdvancedJsonRpc\ErrorCode::INTERNAL_ERROR,