diff --git a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/references/participants/XMLReferencesLinkedEditingRangesParticipant.java b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/references/participants/XMLReferencesLinkedEditingRangesParticipant.java index 6637bf339..b1d3b4930 100644 --- a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/references/participants/XMLReferencesLinkedEditingRangesParticipant.java +++ b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/extensions/references/participants/XMLReferencesLinkedEditingRangesParticipant.java @@ -15,6 +15,7 @@ import org.eclipse.lemminx.extensions.references.XMLReferencesPlugin; import org.eclipse.lemminx.extensions.references.search.SearchEngine; +import org.eclipse.lemminx.extensions.references.search.SearchNode; import org.eclipse.lemminx.extensions.references.search.SearchQuery; import org.eclipse.lemminx.extensions.references.search.SearchQueryFactory; import org.eclipse.lemminx.services.extensions.ILinkedEditingRangesParticipant; @@ -39,6 +40,11 @@ public XMLReferencesLinkedEditingRangesParticipant(XMLReferencesPlugin plugin) { @Override public void findLinkedEditingRanges(ILinkedEditingRangesRequest request, List ranges, CancelChecker cancelChecker) { + if (request.getNode() == null || request.getNode().isOwnerDocument()) { + // Linked editing range should work only for attribute or text node + return; + } + SearchQuery query = SearchQueryFactory.createToQuery(request.getNode(), request.getOffset(), plugin.getReferencesSettings()); if (query == null) { diff --git a/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/references/XMLReferencesLinkedEditingRangesExtensionsTest.java b/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/references/XMLReferencesLinkedEditingRangesExtensionsTest.java index 34864c6f1..4ba41ae16 100644 --- a/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/references/XMLReferencesLinkedEditingRangesExtensionsTest.java +++ b/org.eclipse.lemminx/src/test/java/org/eclipse/lemminx/extensions/references/XMLReferencesLinkedEditingRangesExtensionsTest.java @@ -97,7 +97,6 @@ public void teiOnXMLId() throws BadLocationException { @Test public void docbookOnLinked() throws BadLocationException { - // highlighting on define/@name String xml = "\r\n" // + "\r\n" @@ -117,7 +116,6 @@ public void docbookOnLinked() throws BadLocationException { @Test public void docbookOnChapterId() throws BadLocationException { - // highlighting on define/@name String xml = "\r\n" // + "\r\n" @@ -137,6 +135,12 @@ public void docbookOnChapterId() throws BadLocationException { le(r(4, 23, 4, 32), r(2, 17, 2, 26))); } + @Test + public void noLinkedEditingRangeForDocument() throws BadLocationException { + String xml = "|"; + testLinkedEditingFor(xml, "file:///test/docbook.xml", null); + } + @Test public void webOnServletMapping() throws BadLocationException { String xml = "