mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
xml/jsp/dom intentions: make files writable outside write action
This commit is contained in:
-2
@@ -16,7 +16,6 @@
|
||||
package com.intellij.codeInsight.daemon.quickFix;
|
||||
|
||||
import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
@@ -78,7 +77,6 @@ class RenameFileReferenceIntentionAction implements IntentionAction, LocalQuickF
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
myFileReference.handleElementRename(myExistingElementName);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.lang.ant.quickfix;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.lang.ant.AntBundle;
|
||||
@@ -58,7 +57,7 @@ public class AntCreateTargetFix implements LocalQuickFix {
|
||||
if (containingFile instanceof XmlFile) {
|
||||
final XmlFile xmlFile = (XmlFile)containingFile;
|
||||
final XmlTag rootTag = xmlFile.getRootTag();
|
||||
if (rootTag != null && FileModificationService.getInstance().prepareFileForWrite(xmlFile)) {
|
||||
if (rootTag != null) {
|
||||
final XmlTag propTag = rootTag.createChildTag(TAG_NAME, rootTag.getNamespace(), "", false);
|
||||
propTag.setAttribute(NAME_ATTR, myCanonicalText);
|
||||
final DomElement contextElement = DomUtil.getDomElement(descriptor.getPsiElement());
|
||||
|
||||
+1
-12
@@ -22,10 +22,8 @@
|
||||
*/
|
||||
package org.intellij.lang.xpath.validation.inspections.quickfix;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
|
||||
import com.intellij.codeInspection.SuppressIntentionAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -67,16 +65,7 @@ public interface XPathQuickFixFactory {
|
||||
@NotNull PsiFile file,
|
||||
Editor editor, @NotNull PsiElement startElement,
|
||||
@NotNull PsiElement endElement) {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
invokeImpl(project, file);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
Logger.getInstance(getClass().getName()).error(e);
|
||||
}
|
||||
invokeImpl(project, file);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+3
-20
@@ -15,25 +15,20 @@
|
||||
*/
|
||||
package org.intellij.lang.xpath.xslt.quickfix;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInsight.template.TemplateBuilderImpl;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.LocalTimeCounter;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -56,10 +51,6 @@ public abstract class AbstractFix implements IntentionAction {
|
||||
editor.getCaretModel().moveToOffset(xmlTag.getTextRange().getStartOffset());
|
||||
}
|
||||
|
||||
protected static void deleteFromDocument(Editor editor, PsiElement dummy) {
|
||||
editor.getDocument().deleteString(dummy.getTextRange().getStartOffset(), dummy.getTextRange().getEndOffset());
|
||||
}
|
||||
|
||||
protected static TemplateBuilderImpl createTemplateBuilder(XmlTag xmlTag) {
|
||||
final PsiFile psiFile = PsiFileFactory.getInstance(xmlTag.getProject())
|
||||
.createFileFromText("dummy.xml", StdFileTypes.XML, xmlTag.getText(), LocalTimeCounter.currentTime(), true, false);
|
||||
@@ -97,7 +88,7 @@ public abstract class AbstractFix implements IntentionAction {
|
||||
if (requiresEditor) {
|
||||
final DataContext dataContext = DataManager.getInstance().getDataContext();
|
||||
|
||||
editor = LangDataKeys.EDITOR.getData(dataContext);
|
||||
editor = CommonDataKeys.EDITOR.getData(dataContext);
|
||||
if (editor == null) {
|
||||
if ((editor = FileEditorManager.getInstance(project).getSelectedTextEditor()) == null) {
|
||||
return;
|
||||
@@ -112,15 +103,7 @@ public abstract class AbstractFix implements IntentionAction {
|
||||
if (!isAvailable(project, editor, psiFile)) {
|
||||
return;
|
||||
}
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(psiFile)) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
invoke(project, editor, psiFile);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
Logger.getInstance(getClass().getName()).error(e);
|
||||
}
|
||||
invoke(project, editor, psiFile);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -15,22 +15,18 @@
|
||||
*/
|
||||
package com.intellij.util.xml.highlighting;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.xml.XmlAttribute;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author peter
|
||||
*/
|
||||
public class DefineAttributeQuickFix implements LocalQuickFix {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.spring.model.highlighting.DefineAttributeQuickFix");
|
||||
private final String myAttrName;
|
||||
private final String myNamespace;
|
||||
|
||||
@@ -54,15 +50,9 @@ public class DefineAttributeQuickFix implements LocalQuickFix {
|
||||
}
|
||||
|
||||
public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) {
|
||||
try {
|
||||
final XmlTag tag = (XmlTag)descriptor.getPsiElement();
|
||||
if (!FileModificationService.getInstance().preparePsiElementForWrite(descriptor.getPsiElement().getContainingFile())) return;
|
||||
final XmlAttribute attribute = tag.setAttribute(myAttrName, myNamespace, "");
|
||||
new OpenFileDescriptor(project, tag.getContainingFile().getVirtualFile(),
|
||||
attribute.getValueElement().getTextRange().getStartOffset() + 1).navigate(true);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
XmlTag tag = (XmlTag)descriptor.getPsiElement();
|
||||
XmlAttribute attribute = tag.setAttribute(myAttrName, myNamespace, "");
|
||||
new OpenFileDescriptor(project, tag.getContainingFile().getVirtualFile(),
|
||||
attribute.getValueElement().getTextRange().getStartOffset() + 1).navigate(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.util.xml.highlighting;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
@@ -28,7 +27,6 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.xml.XmlAttributeValue;
|
||||
import com.intellij.psi.xml.XmlElement;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.ProcessingContext;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -266,14 +264,7 @@ public class DomHighlightingHelperImpl extends DomHighlightingHelper {
|
||||
}
|
||||
|
||||
private void doFix(XmlTag parentTag) {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(parentTag.getContainingFile())) return;
|
||||
|
||||
try {
|
||||
parentTag.add(parentTag.createChildTag(tagName, tagNamespace, null, false));
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
parentTag.add(parentTag.createChildTag(tagName, tagNamespace, null, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-3
@@ -16,7 +16,6 @@
|
||||
package com.intellij.codeInsight.daemon.impl.analysis;
|
||||
|
||||
import com.intellij.application.options.XmlSettings;
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.completion.ExtendedTagInsertHandler;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInsight.daemon.impl.ShowAutoImportPass;
|
||||
@@ -156,8 +155,6 @@ public class CreateNSDeclarationIntentionFix implements HintAction, LocalQuickFi
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
|
||||
final PsiElement element = myElement.retrieve();
|
||||
if (element == null) return;
|
||||
XmlFile xmlFile = getFile();
|
||||
|
||||
-2
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.codeInsight.daemon.impl.analysis;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInsight.intention.HighPriorityAction;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
@@ -75,7 +74,6 @@ public class InsertRequiredAttributeFix extends LocalQuickFixAndIntentionActionO
|
||||
@Nullable("is null when called from inspection") final Editor editor,
|
||||
@NotNull PsiElement startElement,
|
||||
@NotNull PsiElement endElement) {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
XmlTag myTag = (XmlTag)startElement;
|
||||
ASTNode treeElement = SourceTreeToPsiMap.psiElementToTree(myTag);
|
||||
|
||||
|
||||
+8
-20
@@ -17,11 +17,8 @@
|
||||
package com.intellij.codeInspection.htmlInspections;
|
||||
|
||||
import com.intellij.codeInsight.AutoPopupController;
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -61,24 +58,15 @@ public class AddAttributeValueIntentionFix extends LocalQuickFixAndIntentionActi
|
||||
return;
|
||||
}
|
||||
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(attribute.getContainingFile())) {
|
||||
return;
|
||||
}
|
||||
final XmlAttribute attributeWithValue = XmlElementFactory.getInstance(project).createAttribute(attribute.getName(), "", startElement);
|
||||
final PsiElement newAttribute = attribute.replace(attributeWithValue);
|
||||
|
||||
new WriteCommandAction(project) {
|
||||
@Override
|
||||
protected void run(@NotNull final Result result) {
|
||||
final XmlAttribute attributeWithValue = XmlElementFactory.getInstance(getProject()).createAttribute(attribute.getName(), "", startElement);
|
||||
final PsiElement newAttribute = attribute.replace(attributeWithValue);
|
||||
|
||||
if (editor != null && newAttribute != null && newAttribute instanceof XmlAttribute && newAttribute.isValid()) {
|
||||
final XmlAttributeValue valueElement = ((XmlAttribute)newAttribute).getValueElement();
|
||||
if (valueElement != null) {
|
||||
editor.getCaretModel().moveToOffset(valueElement.getTextOffset());
|
||||
AutoPopupController.getInstance(newAttribute.getProject()).scheduleAutoPopup(editor);
|
||||
}
|
||||
}
|
||||
if (editor != null && newAttribute != null && newAttribute instanceof XmlAttribute && newAttribute.isValid()) {
|
||||
final XmlAttributeValue valueElement = ((XmlAttribute)newAttribute).getValueElement();
|
||||
if (valueElement != null) {
|
||||
editor.getCaretModel().moveToOffset(valueElement.getTextOffset());
|
||||
AutoPopupController.getInstance(newAttribute.getProject()).scheduleAutoPopup(editor);
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-3
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.psi.impl.source.resolve.reference.impl.providers;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInsight.template.Template;
|
||||
import com.intellij.codeInsight.template.TemplateManager;
|
||||
@@ -85,8 +84,6 @@ class CreateXmlElementIntentionAction implements IntentionAction {
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
|
||||
final XmlTag rootTag = myTargetFile.getDocument().getRootTag();
|
||||
|
||||
OpenFileDescriptor descriptor = new OpenFileDescriptor(
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.xml.actions;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.lang.xhtml.XHTMLLanguage;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
@@ -81,8 +80,6 @@ public class XmlSplitTagAction implements IntentionAction {
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
|
||||
if (editor != null) {
|
||||
final int offset = editor.getCaretModel().getOffset();
|
||||
final PsiElement psiElement = file.findElementAt(offset);
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.xml.util;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.template.Template;
|
||||
import com.intellij.codeInsight.template.TemplateManager;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
@@ -59,7 +58,6 @@ public class AddDtdDeclarationFix implements LocalQuickFix {
|
||||
public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) {
|
||||
final PsiElement element = descriptor.getPsiElement();
|
||||
final PsiFile containingFile = element.getContainingFile();
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(containingFile)) return;
|
||||
|
||||
@NonNls String prefixToInsert = "";
|
||||
@NonNls String suffixToInsert = "";
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
*/
|
||||
package com.intellij.xml.util;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInspection.LocalQuickFixOnPsiElement;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
@@ -78,7 +77,6 @@ public class CheckValidXmlInScriptBodyInspection extends CheckValidXmlInScriptBo
|
||||
@Override
|
||||
public void invoke(@NotNull Project project, @NotNull PsiFile file, @NotNull PsiElement startElement, @NotNull PsiElement endElement) {
|
||||
final PsiFile psiFile = startElement.getContainingFile();
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(psiFile)) return;
|
||||
final TextRange range = startElement.getTextRange();
|
||||
OpenFileDescriptor descriptor = new OpenFileDescriptor(
|
||||
project,
|
||||
|
||||
-2
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.codeInsight.daemon.impl.analysis;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -55,7 +54,6 @@ public class RemoveAttributeIntentionFix extends LocalQuickFixAndIntentionAction
|
||||
@Nullable("is null when called from inspection") Editor editor,
|
||||
@NotNull PsiElement startElement,
|
||||
@NotNull PsiElement endElement) {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
PsiElement next = findNextAttribute((XmlAttribute)startElement);
|
||||
startElement.delete();
|
||||
|
||||
|
||||
-3
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.codeInsight.daemon.impl.analysis;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -58,8 +57,6 @@ public class RemoveTagIntentionFix extends LocalQuickFixAndIntentionActionOnPsiE
|
||||
@Nullable("is null when called from inspection") Editor editor,
|
||||
@NotNull PsiElement startElement,
|
||||
@NotNull PsiElement endElement) {
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
|
||||
final XmlTag next = editor != null ? PsiTreeUtil.getNextSiblingOfType(startElement, XmlTag.class) : null;
|
||||
final XmlTag prev = editor != null ? PsiTreeUtil.getPrevSiblingOfType(startElement, XmlTag.class) : null;
|
||||
|
||||
|
||||
+1
-13
@@ -16,12 +16,9 @@
|
||||
|
||||
package com.intellij.codeInspection.htmlInspections;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -56,15 +53,6 @@ public class RemoveAttributeIntentionAction implements LocalQuickFix {
|
||||
final XmlAttribute myAttribute = PsiTreeUtil.getParentOfType(e, XmlAttribute.class);
|
||||
if (myAttribute == null) return;
|
||||
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(myAttribute.getContainingFile())) {
|
||||
return;
|
||||
}
|
||||
|
||||
new WriteCommandAction(project) {
|
||||
@Override
|
||||
protected void run(@NotNull final Result result) throws Throwable {
|
||||
myAttribute.delete();
|
||||
}
|
||||
}.execute();
|
||||
myAttribute.delete();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-12
@@ -16,14 +16,11 @@
|
||||
|
||||
package com.intellij.codeInspection.htmlInspections;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -67,7 +64,6 @@ public class RemoveExtraClosingTagIntentionAction implements LocalQuickFix, Inte
|
||||
return;
|
||||
}
|
||||
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
|
||||
doFix(psiElement);
|
||||
}
|
||||
|
||||
@@ -101,14 +97,8 @@ public class RemoveExtraClosingTagIntentionAction implements LocalQuickFix, Inte
|
||||
@Override
|
||||
public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) {
|
||||
final PsiElement element = descriptor.getPsiElement();
|
||||
if (!element.isValid() || !(element instanceof XmlToken)) return;
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(element.getContainingFile())) return;
|
||||
if (!(element instanceof XmlToken)) return;
|
||||
|
||||
new WriteCommandAction(project) {
|
||||
@Override
|
||||
protected void run(@NotNull final Result result) throws Throwable {
|
||||
doFix(element);
|
||||
}
|
||||
}.execute();
|
||||
doFix(element);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-3
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.intellij.codeInspection.htmlInspections;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -70,8 +69,7 @@ public class RenameTagBeginOrEndIntentionAction implements IntentionAction {
|
||||
final int offset = editor.getCaretModel().getOffset();
|
||||
PsiElement psiElement = file.findElementAt(offset);
|
||||
|
||||
if (psiElement == null || !psiElement.isValid()) return;
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(psiElement.getContainingFile())) return;
|
||||
if (psiElement == null) return;
|
||||
|
||||
if (psiElement instanceof PsiWhiteSpace) psiElement = PsiTreeUtil.prevLeaf(psiElement);
|
||||
if (psiElement instanceof XmlToken) {
|
||||
|
||||
+1
-14
@@ -17,13 +17,10 @@
|
||||
package com.intellij.codeInspection.htmlInspections;
|
||||
|
||||
import com.intellij.codeHighlighting.HighlightDisplayLevel;
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.daemon.XmlErrorMessages;
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor;
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.html.HtmlTag;
|
||||
@@ -148,17 +145,7 @@ public class XmlWrongRootElementInspection extends HtmlLocalInspectionTool {
|
||||
@Override
|
||||
public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) {
|
||||
final XmlTag myTag = PsiTreeUtil.getParentOfType(descriptor.getPsiElement(), XmlTag.class);
|
||||
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(myTag.getContainingFile())) {
|
||||
return;
|
||||
}
|
||||
|
||||
new WriteCommandAction(project) {
|
||||
@Override
|
||||
protected void run(@NotNull final Result result) throws Throwable {
|
||||
myTag.setName(myText);
|
||||
}
|
||||
}.execute();
|
||||
myTag.setName(myText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,21 +16,17 @@
|
||||
|
||||
package com.intellij.xml.util;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.html.HTMLLanguage;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
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.util.IncorrectOperationException;
|
||||
import com.intellij.xml.XmlBundle;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -43,7 +39,6 @@ import java.util.Set;
|
||||
* @author Maxim Mossienko
|
||||
*/
|
||||
public class CheckEmptyTagInspection extends XmlSuppressableInspectionTool {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.xml.util.CheckEmptyTagInspection");
|
||||
@NonNls private static final Set<String> ourTagsWithEmptyEndsNotAllowed =
|
||||
new THashSet<>(Arrays.asList(HtmlUtil.SCRIPT_TAG_NAME, "div", "iframe"));
|
||||
|
||||
@@ -117,17 +112,7 @@ public class CheckEmptyTagInspection extends XmlSuppressableInspectionTool {
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
final XmlTag tag = (XmlTag)descriptor.getPsiElement();
|
||||
if (tag == null) return;
|
||||
final PsiFile psiFile = tag.getContainingFile();
|
||||
|
||||
if (psiFile == null) return;
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(psiFile)) return;
|
||||
|
||||
try {
|
||||
XmlUtil.expandTag(tag);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
XmlUtil.expandTag(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user