Author: koen.aers(a)jboss.com
Date: 2012-02-15 05:58:23 -0500 (Wed, 15 Feb 2012)
New Revision: 38746
Modified:
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeLaunchHelper.java
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/AllCommandsInterceptor.java
Log:
JBIDE-10271: Make the Forge "cd" Command Aware of the Eclipse Workspace
Modified:
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeLaunchHelper.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeLaunchHelper.java 2012-02-15
10:51:41 UTC (rev 38745)
+++
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeLaunchHelper.java 2012-02-15
10:58:23 UTC (rev 38746)
@@ -133,10 +133,16 @@
buffer.append("-Dforge.home=").append(encloseWithDoubleQuotesIfNeeded(location)).append('
');
buffer.append("-Dforge.shell.colorEnabled=true").append(' ');
buffer.append("-Dforge.compatibility.IDE=true").append(' ');
- buffer.append(getClassPathArgument(location));
+ buffer.append(getClassPathArgument(location)).append(' ');
+ buffer.append("-Dforge.workspace=").append(getWorkspaceLocation());
return buffer.toString();
}
+ private static String getWorkspaceLocation() {
+ return encloseWithDoubleQuotesIfNeeded(
+ ResourcesPlugin.getWorkspace().getRoot().getLocation().toString());
+ }
+
private static String getClassPathArgument(String location) {
return "-cp " + encloseWithDoubleQuotesIfNeeded(location +
"/jboss-modules.jar");
}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/AllCommandsInterceptor.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/AllCommandsInterceptor.java 2012-02-15
10:51:41 UTC (rev 38745)
+++
trunk/forge/plugins/org.jboss.tools.forge.runtime.ext/src/org/jboss/tools/forge/runtime/ext/AllCommandsInterceptor.java 2012-02-15
10:58:23 UTC (rev 38746)
@@ -16,24 +16,47 @@
@Override
public String intercept(String line) {
if (line.startsWith("open ")) {
- String crn = shell.getCurrentResource().getFullyQualifiedName();
- String crt = shell.getCurrentResource().getClass().getSimpleName();
- Project project = shell.getCurrentProject();
- String cpn = "";
- if (project != null) {
- cpn = project.getProjectRoot().getFullyQualifiedName();
- }
- String par = line.substring(5);
- sendEscaped(
- " EC: " + line +
- " CRN: " + crn +
- " CRT: " + crt +
- " CPN: " + cpn +
- " PAR: " + par);
- return "\n";
+ return doOpenLine(line);
+ } else if (line.startsWith("cd ")) {
+ return doCdLine(line);
+ } else if (line.startsWith("pick-up ")) {
+ return doPickUpLine(line);
}
return line;
}
+
+ private String doCdLine(String line) {
+ return "cd " + handleWorkspaceShortCut(line.substring(3));
+ }
+
+ private String doPickUpLine(String line) {
+ return "pick-up " + handleWorkspaceShortCut(line.substring(8));
+ }
+
+ private String doOpenLine(String line) {
+ String crn = shell.getCurrentResource().getFullyQualifiedName();
+ String crt = shell.getCurrentResource().getClass().getSimpleName();
+ Project project = shell.getCurrentProject();
+ String cpn = "";
+ if (project != null) {
+ cpn = project.getProjectRoot().getFullyQualifiedName();
+ }
+ String par = handleWorkspaceShortCut(line.substring(5));
+ sendEscaped(
+ " EC: " + line +
+ " CRN: " + crn +
+ " CRT: " + crt +
+ " CPN: " + cpn +
+ " PAR: " + par);
+ return "\n";
+ }
+
+ private String handleWorkspaceShortCut(String str) {
+ if (str.startsWith("#")) {
+ return System.getProperty("forge.workspace") + str.substring(1);
+ }
+ return str;
+ }
private void sendEscaped(String str) {
shell.print(ESCAPE + str + ESCAPE);
Show replies by date