mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
collapse tag fix preview
GitOrigin-RevId: bbc562920e937d428b130ca88ba6fc59309f0efc
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bffaed5bef
commit
d0aa498bad
@@ -46,9 +46,9 @@ public class CollapseTagTest extends BasePlatformTestCase {
|
||||
public void testCollapseInnerTag() {
|
||||
myFixture.enableInspections(new CheckTagEmptyBodyInspection());
|
||||
PsiFile file = myFixture.configureByText(XmlFileType.INSTANCE, "<a>\n" +
|
||||
" <b></b><caret>\n" +
|
||||
" <b><caret></b>\n" +
|
||||
"</a>");
|
||||
assertFalse(new CollapseTagIntention().isAvailable(getProject(), myFixture.getEditor(), file));
|
||||
assertTrue(new CollapseTagIntention().isAvailable(getProject(), myFixture.getEditor(), file));
|
||||
IntentionAction action = myFixture.findSingleIntention("Collapse");
|
||||
assertNotNull(action);
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), () -> action.invoke(getProject(), myFixture.getEditor(), file));
|
||||
|
||||
@@ -6,15 +6,13 @@ import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.codeInspection.XmlSuppressableInspectionTool;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.XmlElementVisitor;
|
||||
import com.intellij.psi.html.HtmlTag;
|
||||
import com.intellij.psi.xml.XmlChildRole;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.psi.xml.XmlTokenType;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.xml.XmlExtension;
|
||||
import com.intellij.xml.analysis.XmlAnalysisBundle;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -47,7 +45,7 @@ public class CheckTagEmptyBodyInspection extends XmlSuppressableInspectionTool {
|
||||
holder.registerProblem(
|
||||
tag,
|
||||
XmlAnalysisBundle.message("xml.inspections.tag.empty.body"),
|
||||
isCollapsibleTag(tag) ? new Fix(tag) : null
|
||||
isCollapsibleTag(tag) ? new CollapseTagIntention() : null
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -67,26 +65,4 @@ public class CheckTagEmptyBodyInspection extends XmlSuppressableInspectionTool {
|
||||
public String getShortName() {
|
||||
return "CheckTagEmptyBody";
|
||||
}
|
||||
|
||||
public static class Fix extends CollapseTagIntention {
|
||||
private final SmartPsiElementPointer<XmlTag> myPointer;
|
||||
|
||||
public Fix(XmlTag tag) {
|
||||
myPointer = SmartPointerManager.getInstance(tag.getProject()).createSmartPsiElementPointer(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
|
||||
XmlTag tag = myPointer.getElement();
|
||||
if (tag == null) {
|
||||
return;
|
||||
}
|
||||
applyFix(project, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user