Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.intellij.openapi.actionSystem.AnAction;
- import com.intellij.openapi.actionSystem.AnActionEvent;
- import com.intellij.openapi.actionSystem.CommonDataKeys;
- import com.intellij.openapi.compiler.CompilerManager;
- import com.intellij.openapi.module.Module;
- import com.intellij.openapi.module.ModuleManager;
- import com.intellij.openapi.project.Project;
- import com.intellij.openapi.roots.ProjectRootManager;
- import com.intellij.openapi.vfs.VirtualFile;
- import com.intellij.psi.PsiDocumentManager;
- import com.intellij.psi.PsiFile;
- public class CompileAction extends AnAction {
- @Override
- public void update(AnActionEvent e) {
- Project project = e.getProject();
- e.getPresentation().setEnabledAndVisible(project != null);
- }
- @Override
- public void actionPerformed(AnActionEvent e) {
- Project project = e.getProject();
- PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(project);
- PsiFile psiFile = psiDocumentManager.getPsiFile(e.getData(CommonDataKeys.EDITOR).getDocument());
- VirtualFile virtualFile = psiFile.getVirtualFile();
- Module module = ProjectRootManager.getInstance(project).getFileIndex().getModuleForFile(virtualFile);
- CompilerManager compilerManager = CompilerManager.getInstance(project);
- compilerManager.compile(module, null);
- // Get the Base Dir and refresh with the following parameters
- // 'asynchronous' set to false and 'recursive' set to true
- // project.getBaseDir().refresh(false,true);
- }
- }
- // ================== in plugin.xml:
- /*
- <actions>
- <!-- Add your actions here -->
- <action class="CompileAction"
- id="CompileActionID"
- text="Compile Module"
- description="Compiles all files in the module">
- <add-to-group group-id="EditorPopupMenu" anchor="first"/>
- </action>
- </actions>
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement