From 88ef848e6d12a6d47aac7266edd66e0a4b93e712 Mon Sep 17 00:00:00 2001 From: "Dmitry.Krasilschikov" Date: Tue, 17 Apr 2018 18:59:24 +0300 Subject: [PATCH] IDEA-188810 get rid of RModuleUtil --- .../ruby/ruby/actions/RunAnythingAction.java | 26 ++++++++++++++----- .../ruby/ruby/actions/RunAnythingUtil.java | 10 +------ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingAction.java b/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingAction.java index 34eb51052644..2b967250981e 100644 --- a/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingAction.java +++ b/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingAction.java @@ -34,6 +34,7 @@ import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.keymap.impl.ModifierKeyDoubleClickHandler; import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.util.ProgressIndicatorBase; @@ -41,6 +42,7 @@ import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.ui.popup.ComponentPopupBuilder; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -58,6 +60,7 @@ import com.intellij.ui.components.*; import com.intellij.ui.components.panels.NonOpaquePanel; import com.intellij.ui.popup.AbstractPopup; import com.intellij.util.Alarm; +import com.intellij.util.ArrayUtil; import com.intellij.util.Consumer; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.EmptyIcon; @@ -69,7 +72,6 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.ruby.RBundle; -import org.jetbrains.plugins.ruby.ruby.RModuleUtil; import org.jetbrains.plugins.ruby.ruby.actions.groups.RunAnythingGroup; import javax.accessibility.Accessible; @@ -489,7 +491,16 @@ public class RunAnythingAction extends AnAction implements CustomComponentAction @Nullable private Module getModule() { - return RModuleUtil.getInstance().getModule(myDataContext); + Module module = (Module)myDataContext.getData(LangDataKeys.MODULE.getName()); + if (module != null) { + return module; + } + + if (myVirtualFile != null) { + return ModuleUtilCore.findModuleForFile(myVirtualFile, getProject()); + } + + return null; } @NotNull @@ -508,7 +519,7 @@ public class RunAnythingAction extends AnAction implements CustomComponentAction return projectBaseDir; } - VirtualFile firstContentRoot = RModuleUtil.getInstance().getFirstContentRoot(module); + VirtualFile firstContentRoot = getFirstContentRoot(module); if (firstContentRoot == null) { return projectBaseDir; } @@ -516,6 +527,12 @@ public class RunAnythingAction extends AnAction implements CustomComponentAction return firstContentRoot; } + @Nullable + public VirtualFile getFirstContentRoot(@NotNull final Module module) { + if (module.isDisposed()) return null; + return ArrayUtil.getFirstElement(ModuleRootManager.getInstance(module).getContentRoots()); + } + private void updateOption(BooleanOptionDescription value) { value.setOptionState(!value.isOptionEnabled()); myList.revalidate(); @@ -600,10 +617,7 @@ public class RunAnythingAction extends AnAction implements CustomComponentAction if (wnd == null || wnd.getParent() != null) return; myActionEvent = e; - Module module = RModuleUtil.getInstance().getModule(myActionEvent.getDataContext()); - HashMap dataMap = ContainerUtil.newHashMap(); - dataMap.put(LangDataKeys.MODULE.getName(), module); dataMap.put(CommonDataKeys.PROJECT.getName(), project); dataMap.put(RUN_ANYTHING_EVENT_KEY.getName(), myActionEvent); myDataContext = SimpleDataContext.getSimpleContext(dataMap, e.getDataContext()); diff --git a/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingUtil.java b/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingUtil.java index e0643cabc149..1e1f530d56ac 100644 --- a/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingUtil.java +++ b/ruby/ruby-ext/src/org/jetbrains/plugins/ruby/ruby/actions/RunAnythingUtil.java @@ -36,7 +36,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.ruby.ruby.actions.groups.RunAnythingGroup; import org.jetbrains.plugins.ruby.ruby.actions.setup.RunAnythingActivityProvider; -import org.jetbrains.plugins.ruby.ruby.run.configuration.AbstractRubyRunConfiguration; import javax.swing.*; import javax.swing.border.Border; @@ -362,8 +361,7 @@ public class RunAnythingUtil { RunAnythingProvider provider = RunAnythingProvider.findMatchedProvider(project, pattern, workDirectory); if (provider != null) { triggerDebuggerStatistics(); - runMatchedConfiguration(RunAnythingAction.getExecutor(), workDirectory, project, - provider.createConfiguration(project, pattern, workDirectory)); + runMatchedConfiguration(RunAnythingAction.getExecutor(), project, provider.createConfiguration(project, pattern, workDirectory)); return true; } return false; @@ -371,16 +369,10 @@ public class RunAnythingUtil { private static void runMatchedConfiguration(@NotNull Executor executor, - @NotNull VirtualFile workDirectory, @NotNull Project project, @NotNull RunnerAndConfigurationSettings settings) { RunManagerEx.getInstanceEx(project).setTemporaryConfiguration(settings); RunManager.getInstance(project).setSelectedConfiguration(settings); - RunConfiguration configuration = settings.getConfiguration(); - - if (configuration instanceof AbstractRubyRunConfiguration) { - ((AbstractRubyRunConfiguration)configuration).setWorkingDirectory(workDirectory.getPath()); - } triggerDebuggerStatistics(); ExecutionUtil.runConfiguration(settings, executor);