package com.chrisfolger.needsmoredojo.intellij.actions;
import com.chrisfolger.needsmoredojo.core.amd.AMDImport;
import com.chrisfolger.needsmoredojo.core.amd.define.DefineStatement;
import com.chrisfolger.needsmoredojo.core.amd.importing.ImportCreator;
import com.chrisfolger.needsmoredojo.core.amd.psi.AMDPsiUtil;
import com.intellij.lang.javascript.psi.JSElement;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiElement;
import java.util.List;
public class SendToBeginningAction extends SendToAction
{
@Override
protected String getName()
{
return "Send AMD Import to Beginning";
}
@Override
protected void moveAction(AnActionEvent e, PsiElement define, PsiElement parameter, List<PsiElement> defines, List<PsiElement> parameters, DefineStatement defineStatement)
{
String parameterText = parameter.getText();
AMDPsiUtil.removeSingleImport(new AMDImport((JSElement) define, (JSElement) parameter));
// define is already quoted, so passing an empty quote character
new ImportCreator().createImport(define.getText(), "", parameterText, defineStatement.getArguments(), defineStatement.getFunction().getParameterList());
Editor editor = e.getData(PlatformDataKeys.EDITOR);
int index = defineStatement.getArguments().getFirstChild().getTextOffset();
editor.getScrollingModel().scrollVertically(index);
}
}