Skip to content

Commit 21c7b95

Browse files
committed
polishing the code
1 parent 7a4984d commit 21c7b95

File tree

3 files changed

+15
-33
lines changed

3 files changed

+15
-33
lines changed

src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditor.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,12 @@
109109
display: none;
110110
}
111111

112+
.monaco-editor .interactive-editor .markdownMessage .message * {
113+
margin: unset;
114+
}
115+
112116
.monaco-editor .interactive-editor .markdownMessage .message {
113-
margin: 0px;
117+
margin-left: 5px;
114118
-webkit-line-clamp: 3;
115119
-webkit-box-orient: vertical;
116120
overflow: hidden;

src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorController.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ export class InteractiveEditorController implements IEditorContribution {
408408
store.add(this._instaService.invokeFunction(installSlashCommandSupport, this._zone.widget.inputEditor as IActiveCodeEditor, session.slashCommands));
409409
}
410410

411-
this._zone.widget.updateMessage(session.message ?? localize('welcome.1', "AI-generated code may be incorrect."));
411+
this._zone.widget.updateStatus(session.message ?? localize('welcome.1', "AI-generated code may be incorrect."));
412412

413413
// CANCEL when input changes
414414
this._editor.onDidChangeModel(this.cancelSession, this, store);
@@ -540,7 +540,7 @@ export class InteractiveEditorController implements IEditorContribution {
540540
if (!isCancellationError(e)) {
541541
this._logService.error('[IE] ERROR during request', provider.debugName);
542542
this._logService.error(e);
543-
this._zone.widget.updateMessage(toErrorMessage(e), { classes: ['error'] });
543+
this._zone.widget.updateStatus(toErrorMessage(e), { classes: ['error'] });
544544
// statusWidget
545545
continue;
546546
}
@@ -558,7 +558,7 @@ export class InteractiveEditorController implements IEditorContribution {
558558

559559
if (!reply) {
560560
this._logService.trace('[IE] NO reply or edits', provider.debugName);
561-
this._zone.widget.updateMessage(localize('empty', "No results, please refine your input and try again."), { classes: ['warn'] });
561+
this._zone.widget.updateStatus(localize('empty', "No results, please refine your input and try again."), { classes: ['warn'] });
562562
continue;
563563
}
564564

@@ -662,7 +662,7 @@ export class InteractiveEditorController implements IEditorContribution {
662662
} else {
663663
message = localize('lines.N', "Generated reply and changed {0} lines.", linesChanged);
664664
}
665-
this._zone.widget.updateMessage(message);
665+
this._zone.widget.updateStatus(message);
666666
}
667667

668668

@@ -795,7 +795,7 @@ export class InteractiveEditorController implements IEditorContribution {
795795
const kind = helpful ? InteractiveEditorResponseFeedbackKind.Helpful : InteractiveEditorResponseFeedbackKind.Unhelpful;
796796
this._currentSession.provider.handleInteractiveEditorResponseFeedback?.(this._currentSession.session, this._currentSession.lastResponse instanceof EditResponse ? this._currentSession.lastResponse.raw : this._currentSession.lastResponse, kind);
797797
this._ctxLastFeedbackKind.set(helpful ? 'helpful' : 'unhelpful');
798-
this._zone.widget.updateMessage('Thank you for your feedback!', { resetAfter: 1250 });
798+
this._zone.widget.updateStatus('Thank you for your feedback!', { resetAfter: 1250 });
799799
}
800800
}
801801

src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,6 @@ class InteractiveEditorWidget {
152152

153153
public acceptInput: () => void = InteractiveEditorWidget._noop;
154154
private _cancelInput: () => void = InteractiveEditorWidget._noop;
155-
156-
private _isLastStatusUpdateAMessage: boolean = false;
157-
158155
constructor(
159156
parentEditor: ICodeEditor,
160157
@IModelService private readonly _modelService: IModelService,
@@ -378,40 +375,24 @@ class InteractiveEditorWidget {
378375
this._onDidChangeHeight.fire();
379376
}
380377

381-
updateMarkdownMessage(message: Node | null) {
382-
if (!message) {
383-
return false;
384-
}
378+
updateMarkdownMessage(message: Node) {
385379
reset(this._elements.message, message);
386380
this._elements.statusLabel.innerText = '';
387381
this._elements.markdownMessage.classList.toggle('hidden', false);
388-
this._isLastStatusUpdateAMessage = true;
389-
delete this._elements.statusLabel.dataset['state'];
390382
this._onDidChangeHeight.fire();
391383
return true;
392384
}
393385

394-
updateMessage(message: string, ops: { classes?: string[]; resetAfter?: number } = {}): boolean {
395-
if (!message) {
396-
return false;
397-
}
386+
updateStatus(message: string, ops: { classes?: string[]; resetAfter?: number; keepMessage?: boolean } = {}) {
398387
const isTempMessage = typeof ops.resetAfter === 'number';
399388
if (isTempMessage && !this._elements.statusLabel.dataset['state']) {
400-
const isLastMessageUpdated = this._isLastStatusUpdateAMessage;
401389
const statusLabel = this._elements.statusLabel.innerText;
402-
const markdownMessage = this._elements.message.firstChild;
403390
const classes = Array.from(this._elements.statusLabel.classList.values());
404391
setTimeout(() => {
405-
let updateDone = false;
406-
if (isLastMessageUpdated) {
407-
updateDone = this.updateMarkdownMessage(markdownMessage);
408-
} else {
409-
updateDone = this.updateMessage(statusLabel, { classes });
410-
}
411-
if (!updateDone) {
412-
reset(this._elements.statusLabel);
413-
}
392+
this.updateStatus(statusLabel, { classes, keepMessage: true });
414393
}, ops.resetAfter);
394+
} else if (!isTempMessage && !ops.keepMessage) {
395+
this._elements.markdownMessage.classList.toggle('hidden', true);
415396
}
416397
this._elements.status.classList.toggle('hidden', false);
417398
reset(this._elements.statusLabel, message);
@@ -421,10 +402,7 @@ class InteractiveEditorWidget {
421402
} else {
422403
delete this._elements.statusLabel.dataset['state'];
423404
}
424-
this._elements.markdownMessage.classList.toggle('hidden', true);
425-
this._isLastStatusUpdateAMessage = false;
426405
this._onDidChangeHeight.fire();
427-
return true;
428406
}
429407

430408
reset() {

0 commit comments

Comments
 (0)