@@ -125,6 +125,7 @@ protected override void Initialize()
125
125
this . SetRequestHandler ( SetPSSARulesRequest . Type , this . HandleSetPSSARulesRequest ) ;
126
126
127
127
this . SetRequestHandler ( ScriptFileMarkersRequest . Type , this . HandleScriptFileMarkersRequest ) ;
128
+ this . SetRequestHandler ( ScriptRegionRequest . Type , this . HandleGetFormatScriptRegionRequest ) ;
128
129
129
130
this . SetRequestHandler ( GetPSHostProcessesRequest . Type , this . HandleGetPSHostProcessesRequest ) ;
130
131
@@ -235,6 +236,48 @@ await RunScriptDiagnostics(
235
236
await sendresult ;
236
237
}
237
238
239
+ private async Task HandleGetFormatScriptRegionRequest (
240
+ ScriptRegionRequestParams requestParams ,
241
+ RequestContext < ScriptRegionRequestResult > requestContext )
242
+ {
243
+ var scriptFile = this . editorSession . Workspace . GetFile ( requestParams . fileUri ) ;
244
+ var lineNumber = requestParams . line ;
245
+ var columnNumber = requestParams . column ;
246
+ ScriptRegion scriptRegion = null ;
247
+
248
+ switch ( requestParams . character )
249
+ {
250
+ case "\n " :
251
+ // find the smallest statement ast that occupies
252
+ // the element before \n or \r\n and return the extent.
253
+ -- lineNumber ; // vscode sends the next line when pressed enter
254
+ var line = scriptFile . GetLine ( lineNumber ) ;
255
+ if ( ! String . IsNullOrEmpty ( line ) )
256
+ {
257
+ scriptRegion = this . editorSession . LanguageService . GetSmallestStatementAstRegion (
258
+ scriptFile ,
259
+ lineNumber ,
260
+ line . Length ) ;
261
+ }
262
+ break ;
263
+
264
+ case "}" :
265
+ scriptRegion = this . editorSession . LanguageService . GetSmallestStatementAstRegion (
266
+ scriptFile ,
267
+ lineNumber ,
268
+ columnNumber ) ;
269
+ break ;
270
+
271
+ default :
272
+ break ;
273
+ }
274
+
275
+ await requestContext . SendResult ( new ScriptRegionRequestResult
276
+ {
277
+ scriptRegion = scriptRegion
278
+ } ) ;
279
+ }
280
+
238
281
private async Task HandleScriptFileMarkersRequest (
239
282
ScriptFileMarkerRequestParams requestParams ,
240
283
RequestContext < ScriptFileMarkerRequestResultParams > requestContext )
0 commit comments