From 2057d06eb40dbc7aa5d2d0a3ea3a8867d35f7435 Mon Sep 17 00:00:00 2001 From: shan1024 Date: Fri, 17 Feb 2017 17:28:39 +0530 Subject: [PATCH 1/2] Update run configurations This commit will update the run configurations to support ballerina run main FILE_NAME.bal ballerina run service FILE_NAME.bal commands. Resolves #115 --- .../run/configuration/BallerinaApplicationRunningState.java | 3 ++- .../idea/run/configuration/BallerinaServiceRunningState.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java index 806c83d4..44fe01fa 100644 --- a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java +++ b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java @@ -36,7 +36,7 @@ public BallerinaApplicationRunningState(Project project, String params, Executio @Override public String getCommand() { - return "run"; + return "main"; } @NotNull @@ -44,6 +44,7 @@ public String getCommand() { protected ProcessHandler startProcess() throws ExecutionException { GeneralCommandLine commandLine = new GeneralCommandLine(); commandLine.setExePath(ObjectUtils.notNull(BallerinaSdkUtil.getBallerinaExecutablePath(getProject()))); + commandLine.addParameter("run"); commandLine.addParameter(getCommand()); commandLine.addParameter(BallerinaRunUtil.getOpenFilePath(getProject())); commandLine.withCharset(CharsetToolkit.UTF8_CHARSET); diff --git a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaServiceRunningState.java b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaServiceRunningState.java index 42ec03a5..79bf8067 100644 --- a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaServiceRunningState.java +++ b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaServiceRunningState.java @@ -44,6 +44,7 @@ public String getCommand() { protected ProcessHandler startProcess() throws ExecutionException { GeneralCommandLine commandLine = new GeneralCommandLine(); commandLine.setExePath(ObjectUtils.notNull(BallerinaSdkUtil.getBallerinaExecutablePath(getProject()))); + commandLine.addParameter("run"); commandLine.addParameter(getCommand()); commandLine.addParameter(BallerinaRunUtil.getOpenFilePath(getProject())); commandLine.withCharset(CharsetToolkit.UTF8_CHARSET); From 26a1fe74b68eae7c755b0def89809679792a26cb Mon Sep 17 00:00:00 2001 From: shan1024 Date: Fri, 17 Feb 2017 17:37:31 +0530 Subject: [PATCH 2/2] Add multi parameter support to run config Resolves #117 --- .../BallerinaApplicationRunningState.java | 19 ++++++++++++++++++- .../run/configuration/BallerinaRunUtil.java | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java index 44fe01fa..142e6892 100644 --- a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java +++ b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaApplicationRunningState.java @@ -28,6 +28,13 @@ import org.ballerinalang.plugins.idea.sdk.BallerinaSdkUtil; import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static org.ballerinalang.plugins.idea.run.configuration.BallerinaRunUtil.PARAMETER_REGEX; + public class BallerinaApplicationRunningState extends BallerinaRunningState { public BallerinaApplicationRunningState(Project project, String params, ExecutionEnvironment environment) { @@ -49,10 +56,20 @@ protected ProcessHandler startProcess() throws ExecutionException { commandLine.addParameter(BallerinaRunUtil.getOpenFilePath(getProject())); commandLine.withCharset(CharsetToolkit.UTF8_CHARSET); // Add program arguments - commandLine.addParameter(getParams()); + getArguments(getParams()).forEach(commandLine::addParameter); KillableColoredProcessHandler handler = new KillableColoredProcessHandler(commandLine, true); ProcessTerminatedListener.attach(handler); return handler; } + + private List getArguments(String params) { + List results = new ArrayList<>(); + Pattern pattern = Pattern.compile(PARAMETER_REGEX); + Matcher matcher = pattern.matcher(params); + while (matcher.find()) { + results.add(matcher.group(0)); + } + return results; + } } diff --git a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaRunUtil.java b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaRunUtil.java index 634c4c62..505814c1 100644 --- a/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaRunUtil.java +++ b/src/org/ballerinalang/plugins/idea/run/configuration/BallerinaRunUtil.java @@ -25,6 +25,8 @@ public class BallerinaRunUtil { + public static String PARAMETER_REGEX = "\".+?(?