package org.intellij.plugins.xsltDebugger; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.XmlElement; import com.intellij.psi.xml.XmlTag; import org.intellij.lang.xpath.XPathFile; import org.intellij.lang.xpath.context.VariableContext; import org.intellij.lang.xpath.context.XPathQuickFixFactoryImpl; import org.intellij.lang.xpath.psi.XPathElement; import org.intellij.lang.xpath.psi.XPathVariableReference; import org.intellij.lang.xpath.validation.inspections.quickfix.XPathQuickFixFactory; import org.intellij.lang.xpath.xslt.context.XsltContextProvider; import org.intellij.lang.xpath.xslt.context.XsltVariableContext; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class BreakpointContext extends XsltContextProvider { public BreakpointContext(PsiElement contextElement) { super((XmlElement)contextElement); } @Override @NotNull public XPathQuickFixFactory getQuickFixFactory() { return XPathQuickFixFactoryImpl.INSTANCE; } @Override public PsiFile[] getRelatedFiles(XPathFile file) { return PsiFile.EMPTY_ARRAY; } @Override @NotNull public VariableContext getVariableContext() { return new XsltVariableContext() { @Override @Nullable protected XmlTag getContextTagImpl(XPathElement element) { return PsiTreeUtil.getParentOfType(getContextElement(), XmlTag.class, false); } @Override @NotNull public IntentionAction[] getUnresolvedVariableFixes(XPathVariableReference reference) { return IntentionAction.EMPTY_ARRAY; } }; } }