in idea-plugin/src/main/java/com/jetbrains/ide/streamdeck/util/ActionExecutor.java [105:130]
public static void performAction(@NotNull AnAction action, @Nullable Component c) {
if (c == null) {
c = ApplicationManager.getApplication().getService(IdeFocusManager.class).getLastFocusedIdeWindow();
}
FileEditor fileEditor = new FocusBasedCurrentEditorProvider().getCurrentEditor();
VirtualFile virtualFile = null;
if (fileEditor != null) {
virtualFile = fileEditor.getFile();
}
IdeFrame ideFrame = ApplicationManager.getApplication().getService(IdeFocusManager.class)
.getLastFocusedFrame();
if (ideFrame != null) {
Project project = ideFrame.getProject();
if (project != null) {
Editor editor = ProjectUtil.getFocusedEditor(project);
if (virtualFile != null) {
PsiFile psiFile = PsiManager.getInstance(project).findFile(virtualFile);
}
}
}
DataContext context = DataManager.getInstance().getDataContext(c);
AnActionEvent event = ProjectUtil.createFromAnAction(action, null, ActionPlaces.MAIN_TOOLBAR, context);
action.actionPerformed(event);
}