package com.chrisfolger.needsmoredojo.intellij.actions;
import com.chrisfolger.needsmoredojo.core.amd.AMDImport;
import com.chrisfolger.needsmoredojo.core.amd.define.NearestAMDImportLocator;
import com.chrisfolger.needsmoredojo.core.amd.psi.AMDPsiUtil;
import com.chrisfolger.needsmoredojo.core.util.PsiFileUtil;
import com.intellij.ide.highlighter.HtmlFileType;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
public class DeleteSingleImportAction extends JavaScriptAction
{
@Override
public void actionPerformed(AnActionEvent e)
{
final PsiFile psiFile = PsiFileUtil.getPsiFileInCurrentEditor(e.getProject());
Editor editor = e.getData(PlatformDataKeys.EDITOR);
if(editor == null)
{
return;
}
PsiElement element = psiFile.findElementAt(editor.getCaretModel().getOffset());
final AMDImport amdImport = new NearestAMDImportLocator().findNearestImport(element, psiFile);
if(amdImport == null)
{
Notifications.Bus.notify(new Notification("needsmoredojo", "Remove Import", "No valid literal/parameter pair found to delete", NotificationType.WARNING));
return;
}
CommandProcessor.getInstance().executeCommand(psiFile.getProject(), new Runnable() {
@Override
public void run() {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
AMDPsiUtil.removeSingleImport(amdImport);
}
});
}
},
"Remove Import",
"Remove Import");
}
}