Skip to content

Commit e083ae8

Browse files
authored
1 parent dc31b10 commit e083ae8

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/vs/workbench/contrib/inlineCompletions/browser/inlineCompletionLanguageStatusBarContribution.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,29 @@
55

66
import { localize } from '../../../../nls.js';
77
import { createHotClass } from '../../../../base/common/hotReloadHelpers.js';
8-
import { Disposable } from '../../../../base/common/lifecycle.js';
8+
import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
99
import { autorunWithStore, derived } from '../../../../base/common/observable.js';
1010
import { debouncedObservable } from '../../../../base/common/observableInternal/utils.js';
1111
import Severity from '../../../../base/common/severity.js';
1212
import { ICodeEditor } from '../../../../editor/browser/editorBrowser.js';
1313
import { InlineCompletionsController } from '../../../../editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js';
1414
import { ILanguageStatusService } from '../../../services/languageStatus/common/languageStatusService.js';
15+
import { observableCodeEditor } from '../../../../editor/browser/observableCodeEditor.js';
1516

1617
export class InlineCompletionLanguageStatusBarContribution extends Disposable {
1718
public static readonly hot = createHotClass(InlineCompletionLanguageStatusBarContribution);
1819

1920
public static Id = 'vs.editor.contrib.inlineCompletionLanguageStatusBarContribution';
21+
public static readonly languageStatusBarDisposables = new Set<DisposableStore>();
2022

2123
private readonly _c = InlineCompletionsController.get(this._editor);
2224

2325
private readonly _state = derived(this, reader => {
2426
const model = this._c?.model.read(reader);
2527
if (!model) { return undefined; }
28+
if (!observableCodeEditor(this._editor).isFocused.read(reader)) {
29+
return undefined;
30+
}
2631

2732
return {
2833
model,
@@ -51,6 +56,15 @@ export class InlineCompletionLanguageStatusBarContribution extends Disposable {
5156
noSuggestion: { shortLabel: '$(circle-slash)', label: '$(copilot) ' + localize('noInlineSuggestionAvailable', "No inline suggestion available"), loading: false, },
5257
};
5358

59+
// Make sure previous status is cleared before the new is registered. This works, but is a bit hacky.
60+
// TODO: Use a workbench contribution to get singleton behavior.
61+
InlineCompletionLanguageStatusBarContribution.languageStatusBarDisposables.forEach(d => d.clear());
62+
63+
InlineCompletionLanguageStatusBarContribution.languageStatusBarDisposables.add(store);
64+
store.add({
65+
dispose: () => InlineCompletionLanguageStatusBarContribution.languageStatusBarDisposables.delete(store)
66+
});
67+
5468
store.add(this._languageStatusService.addStatus({
5569
accessibilityInfo: undefined,
5670
busy: statusMap[status].loading,

0 commit comments

Comments
 (0)