From e63256b438a95f70c998e86bca7c47372391edcb 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 57a7e9c..e683180 100644 --- a/src/PhpDocumentLoader.php +++ b/src/PhpDocumentLoader.php @@ -20,7 +20,7 @@ class PhpDocumentLoader * * @var PhpDocument */ - private $documents = []; + public $documents = []; /** * @var ContentRetriever diff --git a/src/Server/TextDocument.php b/src/Server/TextDocument.php index 5a2819e..ff3646f 100644 --- a/src/Server/TextDocument.php +++ b/src/Server/TextDocument.php @@ -261,7 +261,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 [];