@@ -297,22 +297,42 @@ private static CorrectionExtent GetCorrectionExtent(
297297 ParameterAst [ ] parameterAsts )
298298 {
299299 IScriptExtent paramExtent = parameterAsts [ paramIndex ] . Extent ;
300- int endLineNumber , endColumnNumber ;
300+ int startLineNumber , startColumnNumber , endLineNumber , endColumnNumber ;
301+
302+ startLineNumber = paramExtent . StartLineNumber ;
303+ startColumnNumber = paramExtent . StartColumnNumber ;
301304 if ( paramIndex < parameterAsts . Length - 1 )
302305 {
306+
303307 endLineNumber = parameterAsts [ paramIndex + 1 ] . Extent . StartLineNumber ;
304308 endColumnNumber = parameterAsts [ paramIndex + 1 ] . Extent . StartColumnNumber ;
305309 }
306310 else
307311 {
312+ // if last item in the parameter list then need to remove the
313+ // trailing comma after the previous parameter.
314+ if ( paramIndex > 0 )
315+ {
316+ var lp = parameterAsts [ paramIndex - 1 ] ;
317+ if ( ! lp . Name . VariablePath . UserPath . Equals (
318+ "whatif" ,
319+ StringComparison . OrdinalIgnoreCase )
320+ && ! lp . Name . VariablePath . UserPath . Equals (
321+ "confirm" ,
322+ StringComparison . OrdinalIgnoreCase ) )
323+ {
324+ startLineNumber = lp . Extent . EndLineNumber ;
325+ startColumnNumber = lp . Extent . EndColumnNumber ;
326+ }
327+ }
308328 endLineNumber = paramExtent . EndLineNumber ;
309329 endColumnNumber = paramExtent . EndColumnNumber ;
310330 }
311331
312332 return new CorrectionExtent (
313- paramExtent . StartLineNumber ,
333+ startLineNumber ,
314334 endLineNumber ,
315- paramExtent . StartColumnNumber ,
335+ startColumnNumber ,
316336 endColumnNumber ,
317337 "" ,
318338 paramExtent . File ) ;
0 commit comments