summaryrefslogtreecommitdiff
path: root/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java')
-rw-r--r--plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java
index caaa54166e7d..f67f84412a02 100644
--- a/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java
+++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java
@@ -16,6 +16,7 @@ import com.jediterm.pty.PtyProcessTtyConnector;
import com.jediterm.terminal.TtyConnector;
import com.pty4j.PtyProcess;
import com.pty4j.util.PtyUtil;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
@@ -63,6 +64,11 @@ public class LocalTerminalDirectRunner extends AbstractTerminalRunner<PtyProcess
return null;
}
+ @NotNull
+ public static LocalTerminalDirectRunner createTerminalRunner(Project project) {
+ return new LocalTerminalDirectRunner(project);
+ }
+
@Override
protected PtyProcess createProcess(@Nullable String directory) throws ExecutionException {
Map<String, String> envs = new HashMap<String, String>(System.getenv());
@@ -77,10 +83,14 @@ public class LocalTerminalDirectRunner extends AbstractTerminalRunner<PtyProcess
}
private String currentProjectFolder() {
- for (VirtualFile vf : ProjectRootManager.getInstance(myProject).getContentRoots()) {
- return vf.getCanonicalPath();
+ final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(myProject);
+
+ final VirtualFile[] roots = projectRootManager.getContentRoots();
+ if (roots.length == 1) {
+ roots[0].getCanonicalPath();
}
- return null;
+ final VirtualFile baseDir = myProject.getBaseDir();
+ return baseDir == null ? null : baseDir.getCanonicalPath();
}
@Override