From a8f60c9cf69f9c28b5c4dfd6a2313b9158302003 Mon Sep 17 00:00:00 2001 From: Jens Hausdorf Date: Wed, 7 Feb 2018 20:55:25 +0100 Subject: [PATCH] fix(completion): do not propose trigger character in HTML - || $context->triggerKind === CompletionTriggerKind::INVOKED - || $context->triggerCharacter === '<' + && ( + $context->triggerKind === CompletionTriggerKind::INVOKED + || $context->triggerCharacter === '<' + ) ) ) || $pos == new Position(0, 0) diff --git a/tests/Server/TextDocument/CompletionTest.php b/tests/Server/TextDocument/CompletionTest.php index 80d3026..2b4e9ff 100644 --- a/tests/Server/TextDocument/CompletionTest.php +++ b/tests/Server/TextDocument/CompletionTest.php @@ -444,7 +444,7 @@ class CompletionTest extends TestCase ], true), $items); } - public function testHtmlWithPrefix() + public function testHtmlWontBeProposedWithoutCompletionContext() { $completionUri = pathToUri(__DIR__ . '/../../../fixtures/completion/html_with_prefix.php'); $this->loader->open($completionUri, file_get_contents($completionUri)); @@ -452,7 +452,21 @@ class CompletionTest extends TestCase new TextDocumentIdentifier($completionUri), new Position(0, 1) )->wait(); - $this->assertCompletionsListSubset(new CompletionList([ + + $this->assertEquals(new CompletionList([], true), $items); + } + + public function testHtmlWontBeProposedWithPrefixWithCompletionContext() + { + $completionUri = pathToUri(__DIR__ . '/../../../fixtures/completion/html_with_prefix.php'); + $this->loader->open($completionUri, file_get_contents($completionUri)); + $items = $this->textDocument->completion( + new TextDocumentIdentifier($completionUri), + new Position(0, 1), + new CompletionContext(CompletionTriggerKind::TRIGGER_CHARACTER, '<') + )->wait(); + + $this->assertEquals(new CompletionList([ new CompletionItem( '