From 70ca73b6640e9fd1ca40dbbecb9f51f73d7a062b Mon Sep 17 00:00:00 2001 From: Seiphon <871358932@qq.com> Date: Thu, 24 Oct 2019 14:29:32 +0800 Subject: [PATCH] improve getCurrentAttribute method for AbstractPositionReqest --- .../eclipse/lsp4xml/services/AbstractPositionRequest.java | 4 ++++ .../src/test/java/org/eclipse/lsp4xml/XMLAssert.java | 5 +++++ .../services/extensions/AggregetedHoverValuesTest.java | 1 + 3 files changed, 10 insertions(+) diff --git a/org.eclipse.lsp4xml/src/main/java/org/eclipse/lsp4xml/services/AbstractPositionRequest.java b/org.eclipse.lsp4xml/src/main/java/org/eclipse/lsp4xml/services/AbstractPositionRequest.java index 7378d2e533..5a20f23dcd 100644 --- a/org.eclipse.lsp4xml/src/main/java/org/eclipse/lsp4xml/services/AbstractPositionRequest.java +++ b/org.eclipse.lsp4xml/src/main/java/org/eclipse/lsp4xml/services/AbstractPositionRequest.java @@ -12,6 +12,7 @@ import org.eclipse.lsp4j.Position; import org.eclipse.lsp4xml.commons.BadLocationException; +import org.eclipse.lsp4xml.dom.DOMAttr; import org.eclipse.lsp4xml.dom.DOMDocument; import org.eclipse.lsp4xml.dom.DOMElement; import org.eclipse.lsp4xml.dom.DOMNode; @@ -101,6 +102,9 @@ public String getCurrentTag() { @Override public String getCurrentAttributeName() { + if (node != null && node.isAttribute() && ((DOMAttr) node).getName() != null) { + return ((DOMAttr) node).getName(); + } return currentAttributeName; } diff --git a/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/XMLAssert.java b/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/XMLAssert.java index f14e62d4c8..195d44d5f5 100644 --- a/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/XMLAssert.java +++ b/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/XMLAssert.java @@ -62,6 +62,7 @@ import org.eclipse.lsp4xml.extensions.contentmodel.settings.ContentModelSettings; import org.eclipse.lsp4xml.extensions.contentmodel.settings.XMLValidationSettings; import org.eclipse.lsp4xml.services.XMLLanguageService; +import org.eclipse.lsp4xml.services.extensions.IHoverRequest; import org.eclipse.lsp4xml.services.extensions.diagnostics.IXMLErrorCode; import org.eclipse.lsp4xml.services.extensions.save.AbstractSaveContext; import org.eclipse.lsp4xml.settings.SharedSettings; @@ -578,6 +579,10 @@ public static void assertHover(XMLLanguageService xmlLanguageService, String val } } + public static void assertHoverAttributeName(IHoverRequest request) { + Assert.assertNotNull(request.getCurrentAttributeName()); + } + private static String getHoverLabel(Hover hover) { Either>, MarkupContent> contents = hover != null ? hover.getContents() : null; if (contents == null) { diff --git a/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/services/extensions/AggregetedHoverValuesTest.java b/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/services/extensions/AggregetedHoverValuesTest.java index 5a8e0e27b9..c246567cc9 100644 --- a/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/services/extensions/AggregetedHoverValuesTest.java +++ b/org.eclipse.lsp4xml/src/test/java/org/eclipse/lsp4xml/services/extensions/AggregetedHoverValuesTest.java @@ -91,6 +91,7 @@ public String onTag(IHoverRequest request) throws Exception { @Override public String onAttributeName(IHoverRequest request) throws Exception { + XMLAssert.assertHoverAttributeName(request); return TEST_FOR_ATTRIBUTENAME_HOVER; } }