Skip to content

Commit

Permalink
style: improve inline input decoration (#4343)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ricbet authored Feb 6, 2025
1 parent 44b56d6 commit 7fbe3bc
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import { EInlineChatStatus, EResultKind } from '../inline-chat/inline-chat.servi
import { InlineDiffController } from '../inline-diff';
import { InlineInputPreviewDecorationID } from '../internal.type';


import { InlineInputChatWidget } from './inline-input-widget';
import styles from './inline-input.module.less';
import { InlineInputService } from './inline-input.service';
Expand Down Expand Up @@ -344,7 +343,23 @@ export class InlineInputController extends BaseAIMonacoEditorController {
this.inputDisposable = new Disposable();
}

monacoEditor.setSelection(selection);
const decorationsCollection = monacoEditor.createDecorationsCollection();
decorationsCollection.set([
{
range: monaco.Range.fromPositions(
{ lineNumber: selection.startLineNumber, column: 1 },
{
lineNumber: selection.endLineNumber,
column: monacoEditor.getModel()!.getLineMaxColumn(selection.endLineNumber),
},
),
options: ModelDecorationOptions.register({
description: InlineInputPreviewDecorationID,
isWholeLine: true,
className: styles.input_decoration_pending_container,
}),
},
]);

const inlineInputChatWidget = this.injector.get(InlineInputChatWidget, [monacoEditor, defaultValue]);
inlineInputChatWidget.show({ selection });
Expand All @@ -356,6 +371,7 @@ export class InlineInputController extends BaseAIMonacoEditorController {
this.inputDisposable.addDispose(
inlineInputChatWidget.onDispose(() => {
this.cancelToken();
decorationsCollection.clear();
this.aiNativeContextKey.inlineInputWidgetIsVisible.set(false);
}),
);
Expand All @@ -375,6 +391,7 @@ export class InlineInputController extends BaseAIMonacoEditorController {
inlineInputChatWidget.onInteractiveInputValue(async (value) => {
inputValue = value;
monacoEditor.focus();
decorationsCollection.clear();

const handler = this.inlineInputService.getInteractiveInputHandler();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@
.input_wrapper {
transform: translateY(-4px);
}

.input_decoration_pending_container {
background-color: var(--vscode-diffEditor-unchangedCodeBackground);
}

0 comments on commit 7fbe3bc

Please sign in to comment.