Skip to content

Commit 92d66fc

Browse files
committed
switch saxon-java task provider to use processExecution instead of shellExecution
1 parent c41d076 commit 92d66fc

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

src/saxonTaskProvider.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,15 @@ export class SaxonTaskProvider implements vscode.TaskProvider {
150150
let xsltParameters: XSLTParameter[] = xsltTask.parameters ? xsltTask.parameters : [];
151151
let xsltParametersCommand: string[] = []
152152
for (const param of xsltParameters) {
153-
xsltParametersCommand.push('"' + param.name + '=' + param.value + '"');
153+
xsltParametersCommand.push(param.name + '=' + param.value);
154154
}
155155
let classPaths: string[] = [xsltTask.saxonJar];
156156
if (xsltTask.classPathEntries) {
157157
classPaths = classPaths.concat(xsltTask.classPathEntries);
158158
}
159159

160160
for (const propName in xsltTask) {
161-
let propValue = SaxonTaskProvider.escapeString(this.getProp(xsltTask, propName));
161+
let propValue = this.getProp(xsltTask, propName);
162162
switch (propName) {
163163
case 'xsltFile':
164164
commandLineArgs.push('-xsl:' + propValue);
@@ -205,17 +205,13 @@ export class SaxonTaskProvider implements vscode.TaskProvider {
205205
}
206206
}
207207

208-
if (xsltParametersCommand.length > 0) {
209-
commandLineArgs.push(xsltParametersCommand.join(' '));
210-
}
211208

212209
let rawClassPathString = classPaths.join(pathSeparator());
213-
const classPathString = SaxonTaskProvider.escapeString(rawClassPathString);
214-
let resolvedCommandLine = commandLineArgs.join(' ');
215210
// this is overriden if problemMatcher is set in the tasks.json file
216211
let problemMatcher = "$saxon-xslt";
217-
let commandline = `java -cp ${classPathString} net.sf.saxon.Transform ${resolvedCommandLine}`;
218-
let newTask = new vscode.Task(xsltTask, xsltTask.label, source, new vscode.ShellExecution(commandline), problemMatcher);
212+
const javaArgs = ['-cp', rawClassPathString, 'net.sf.saxon.Transform'];
213+
const processExecution = new vscode.ProcessExecution('java', javaArgs.concat(commandLineArgs).concat(xsltParametersCommand));
214+
let newTask = new vscode.Task(xsltTask, xsltTask.label, source, processExecution, problemMatcher);
219215
return newTask;
220216
} else {
221217
return undefined;

0 commit comments

Comments
 (0)