diff --git a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingAction.java b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingAction.java index c54117df6c51..cd6a232ab838 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingAction.java @@ -459,15 +459,21 @@ public class RunAnythingAction extends AnAction implements CustomComponentAction Project project = getProject(); if (myVirtualFile != null) { - return ModuleUtilCore.findModuleForFile(myVirtualFile, project); + Module moduleForFile = ModuleUtilCore.findModuleForFile(myVirtualFile, project); + if (moduleForFile != null) { + return moduleForFile; + } } VirtualFile[] selectedFiles = FileEditorManager.getInstance(project).getSelectedFiles(); - if (selectedFiles.length == 0) { - return null; + if (selectedFiles.length != 0) { + Module moduleForFile = ModuleUtilCore.findModuleForFile(selectedFiles[0], project); + if (moduleForFile != null) { + return moduleForFile; + } } - return ModuleUtilCore.findModuleForFile(selectedFiles[0], project); + return null; } @NotNull diff --git a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java index e044a2f87aa5..6b61010cda45 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java @@ -8,14 +8,12 @@ import com.intellij.ide.IdeBundle; import com.intellij.ide.actions.runAnything.activity.RunAnythingProvider; import com.intellij.ide.ui.search.OptionDescription; import com.intellij.ide.util.PropertiesComponent; -import com.intellij.openapi.actionSystem.CommonDataKeys; -import com.intellij.openapi.actionSystem.DataContext; -import com.intellij.openapi.actionSystem.KeyboardShortcut; -import com.intellij.openapi.actionSystem.Shortcut; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.keymap.MacKeymapUtil; +import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.util.Key; @@ -191,6 +189,12 @@ public class RunAnythingUtil { public static void executeMatched(@NotNull DataContext dataContext, @NotNull String pattern) { List commands = RunAnythingCache.getInstance(fetchProject(dataContext)).getState().getCommands(); + + Module module = LangDataKeys.MODULE.getData(dataContext); + if (module == null) { + LOG.info("RunAnything: module hasn't been found, command will be executed in context of 'null' module."); + } + for (RunAnythingProvider provider : RunAnythingProvider.EP_NAME.getExtensions()) { Object value = provider.findMatchingValue(dataContext, pattern); if (value != null) {