diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/SpringXMLCompletionEngine.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/SpringXMLCompletionEngine.java index 461b1489d..9290963f1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/SpringXMLCompletionEngine.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/SpringXMLCompletionEngine.java @@ -184,7 +184,7 @@ public class SpringXMLCompletionEngine implements ICompletionEngine, LanguageSpe case AttributeName: if (scanner.getTokenOffset() <= offset && offset < scanner.getTokenEnd()) { if (node.getParentNode() != null && node.getParentNode() instanceof DOMDocument - && namespace.equals("http://www.springframework.org/schema/beans") && node.getNodeName().equals("beans")) { + && namespace.equals("http://www.springframework.org/schema/beans") && node.getLocalName().equals("beans")) { return NamespaceCompletionProvider.createNamespaceCompletionProposals(doc, offset, token, node); } } @@ -192,7 +192,7 @@ public class SpringXMLCompletionEngine implements ICompletionEngine, LanguageSpe case Whitespace: if (scanner.getTokenOffset() <= offset && offset < scanner.getTokenEnd()) { if (node.getParentNode() != null && node.getParentNode() instanceof DOMDocument - && namespace.equals("http://www.springframework.org/schema/beans") && node.getNodeName().equals("beans")) { + && namespace.equals("http://www.springframework.org/schema/beans") && node.getLocalName().equals("beans")) { return NamespaceCompletionProvider.createNamespaceCompletionProposals(doc, offset, token, node); } } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/xml/test/XMLContentAssistTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/xml/test/XMLContentAssistTest.java index 9347031c1..8b3c51b6f 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/xml/test/XMLContentAssistTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/xml/test/XMLContentAssistTest.java @@ -324,7 +324,29 @@ public class XMLContentAssistTest { editorContent); } + @Test + void testAddNamespaceCompletionWhenBeansElementFullyQualified() throws Exception { + Editor editor = new Editor(harness, """ + + + xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> + + + + + """, + LanguageId.XML); + + List completions = editor.getCompletions(); + assertEquals(ALL_NAMESPACE_COMPLETIONS, completions.size()); + } @Test void testNoNamespaceCompletionOutsideOfMainElement1() throws Exception {