From f87dbb9518a817e9da415f6a604bcf5241c65a01 Mon Sep 17 00:00:00 2001 From: Alan Li Date: Wed, 10 May 2017 10:11:14 -0400 Subject: [PATCH] Fix text document loader bug. --- src/PhpDocumentLoader.php | 2 +- src/Server/TextDocument.php | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/PhpDocumentLoader.php b/src/PhpDocumentLoader.php index 728225d..9f6e672 100644 --- a/src/PhpDocumentLoader.php +++ b/src/PhpDocumentLoader.php @@ -19,7 +19,7 @@ class PhpDocumentLoader * * @var PhpDocument */ - private $documents = []; + public $documents = []; /** * @var ContentRetriever diff --git a/src/Server/TextDocument.php b/src/Server/TextDocument.php index aa76ec2..76062ff 100644 --- a/src/Server/TextDocument.php +++ b/src/Server/TextDocument.php @@ -265,7 +265,15 @@ class TextDocument public function definition(TextDocumentIdentifier $textDocument, Position $position): Promise { return coroutine(function () use ($textDocument, $position) { - $document = yield $this->documentLoader->getOrLoad($textDocument->uri); + $documentLoader = $this->documentLoader;//->getOrLoad($textDocument->uri); + $document = null; + if (isset($documentLoader->documents[$textDocument->uri])) { + $document = $documentLoader->documents[$textDocument->uri]; + } else { + $document = yield $documentLoader->load($textDocument->uri); + $documentLoader->documents[$textDocument->uri] = $document; + } + $node = $document->getNodeAtPosition($position); if ($node === null) { return [];