diff --git a/src/main/java/com/codemp/intellij/actions/buffer/BufferCreateWithContentAction.java b/src/main/java/com/codemp/intellij/actions/buffer/BufferCreateWithContentAction.java new file mode 100644 index 0000000..32f2e9b --- /dev/null +++ b/src/main/java/com/codemp/intellij/actions/buffer/BufferCreateWithContentAction.java @@ -0,0 +1,35 @@ +package com.codemp.intellij.actions.buffer; + +import com.codemp.intellij.CodeMP; +import com.codemp.intellij.jni.CodeMPHandler; +import com.codemp.intellij.util.ActionUtil; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.ui.Messages; +import org.jetbrains.annotations.NotNull; + +public class BufferCreateWithContentAction extends AnAction { + + public static void createWithContent(AnActionEvent event, String buffer, boolean silent) throws Exception { + String content = ActionUtil.getCurrentEditor(event).getDocument().getText(); + CodeMPHandler.createWithContent(buffer, content); + if(!silent) Messages.showInfoMessage(String.format("Created buffer %s with content %s!", buffer, content), + "Create CodeMP Buffer" ); + CodeMP.LOGGER.debug("Created buffer {} with content {}!", buffer, content); + } + @Override + public void actionPerformed(@NotNull AnActionEvent e) { + String buffer = Messages.showInputDialog( + "Buffer name:", + "Create CodeMP Buffer with Content", + Messages.getQuestionIcon()); + + try { + createWithContent(e, buffer, false); + } catch(Exception ex) { + Messages.showErrorDialog(String.format( + "Failed to create buffer with name %s: %s!", + buffer, ex.getMessage()), "Create CodeMP Buffer with Content"); + } + } +}