diff --git a/src/CompletionProvider.php b/src/CompletionProvider.php index b32a5b8..933b8e7 100644 --- a/src/CompletionProvider.php +++ b/src/CompletionProvider.php @@ -166,10 +166,12 @@ class CompletionProvider || ( $node instanceof Node\Statement\InlineHtml && ( - $context === null + $context !== null // Make sure to not suggest on the > 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 f3fa017..26a04aa 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( '