@@ -28,7 +28,6 @@ import { EInlineChatStatus, EResultKind } from '../inline-chat/inline-chat.servi
28
28
import { InlineDiffController } from '../inline-diff' ;
29
29
import { InlineInputPreviewDecorationID } from '../internal.type' ;
30
30
31
-
32
31
import { InlineInputChatWidget } from './inline-input-widget' ;
33
32
import styles from './inline-input.module.less' ;
34
33
import { InlineInputService } from './inline-input.service' ;
@@ -344,7 +343,23 @@ export class InlineInputController extends BaseAIMonacoEditorController {
344
343
this . inputDisposable = new Disposable ( ) ;
345
344
}
346
345
347
- monacoEditor . setSelection ( selection ) ;
346
+ const decorationsCollection = monacoEditor . createDecorationsCollection ( ) ;
347
+ decorationsCollection . set ( [
348
+ {
349
+ range : monaco . Range . fromPositions (
350
+ { lineNumber : selection . startLineNumber , column : 1 } ,
351
+ {
352
+ lineNumber : selection . endLineNumber ,
353
+ column : monacoEditor . getModel ( ) ! . getLineMaxColumn ( selection . endLineNumber ) ,
354
+ } ,
355
+ ) ,
356
+ options : ModelDecorationOptions . register ( {
357
+ description : InlineInputPreviewDecorationID ,
358
+ isWholeLine : true ,
359
+ className : styles . input_decoration_pending_container ,
360
+ } ) ,
361
+ } ,
362
+ ] ) ;
348
363
349
364
const inlineInputChatWidget = this . injector . get ( InlineInputChatWidget , [ monacoEditor , defaultValue ] ) ;
350
365
inlineInputChatWidget . show ( { selection } ) ;
@@ -356,6 +371,7 @@ export class InlineInputController extends BaseAIMonacoEditorController {
356
371
this . inputDisposable . addDispose (
357
372
inlineInputChatWidget . onDispose ( ( ) => {
358
373
this . cancelToken ( ) ;
374
+ decorationsCollection . clear ( ) ;
359
375
this . aiNativeContextKey . inlineInputWidgetIsVisible . set ( false ) ;
360
376
} ) ,
361
377
) ;
@@ -375,6 +391,7 @@ export class InlineInputController extends BaseAIMonacoEditorController {
375
391
inlineInputChatWidget . onInteractiveInputValue ( async ( value ) => {
376
392
inputValue = value ;
377
393
monacoEditor . focus ( ) ;
394
+ decorationsCollection . clear ( ) ;
378
395
379
396
const handler = this . inlineInputService . getInteractiveInputHandler ( ) ;
380
397
0 commit comments