IDEA-188810 get rid of RModuleUtil

This commit is contained in:
Dmitry.Krasilschikov
2018-04-24 14:12:42 +03:00
parent 127ec54973
commit 88ef848e6d
2 changed files with 21 additions and 15 deletions
@@ -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<String, Object> 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());
@@ -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);