Skip to content

Commit ff47293

Browse files
authored
log warning when having ignored invalid completion items (microsoft#184156)
fixes microsoft#181464
1 parent 29c9daa commit ff47293

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/vs/editor/contrib/suggest/browser/suggestModel.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { FuzzyScoreOptions } from 'vs/base/common/filters';
3131
import { assertType } from 'vs/base/common/types';
3232
import { InlineCompletionContextKeys } from 'vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys';
3333
import { SnippetController2 } from 'vs/editor/contrib/snippet/browser/snippetController2';
34+
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
3435

3536
export interface ICancelEvent {
3637
readonly retrigger: boolean;
@@ -158,6 +159,7 @@ export class SuggestModel implements IDisposable {
158159
@IContextKeyService private readonly _contextKeyService: IContextKeyService,
159160
@IConfigurationService private readonly _configurationService: IConfigurationService,
160161
@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,
162+
@IEnvironmentService private readonly _envService: IEnvironmentService,
161163
) {
162164
this._currentSelection = this._editor.getSelection() || new Selection(1, 1, 1, 1);
163165

@@ -544,6 +546,15 @@ export class SuggestModel implements IDisposable {
544546
// finally report telemetry about durations
545547
this._reportDurationsTelemetry(completions.durations);
546548

549+
// report invalid completions by source
550+
if (!this._envService.isBuilt || this._envService.isExtensionDevelopment) {
551+
for (const item of completions.items) {
552+
if (item.isInvalid) {
553+
this._logService.warn(`[suggest] did IGNORE invalid completion item from ${item.provider._debugDisplayName}`, item.completion);
554+
}
555+
}
556+
}
557+
547558
}).catch(onUnexpectedError);
548559
}
549560

src/vs/editor/contrib/suggest/test/browser/suggestController.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtil
3131
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
3232
import { LanguageFeaturesService } from 'vs/editor/common/services/languageFeaturesService';
3333
import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures';
34+
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
3435

3536
suite('SuggestController', function () {
3637

@@ -73,6 +74,10 @@ suite('SuggestController', function () {
7374
}],
7475
[ILabelService, new class extends mock<ILabelService>() { }],
7576
[IWorkspaceContextService, new class extends mock<IWorkspaceContextService>() { }],
77+
[IEnvironmentService, new class extends mock<IEnvironmentService>() {
78+
override isBuilt: boolean = true;
79+
override isExtensionDevelopment: boolean = false;
80+
}],
7681
);
7782

7883
model = disposables.add(createTextModel('', undefined, undefined, URI.from({ scheme: 'test-ctrl', path: '/path.tst' })));

src/vs/editor/contrib/suggest/test/browser/suggestModel.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { LanguageFeaturesService } from 'vs/editor/common/services/languageFeatu
3939
import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures';
4040
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
4141
import { getSnippetSuggestSupport, setSnippetSuggestSupport } from 'vs/editor/contrib/suggest/browser/suggest';
42+
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
4243

4344

4445
function createMockEditor(model: TextModel, languageFeaturesService: ILanguageFeaturesService): ITestCodeEditor {
@@ -59,6 +60,10 @@ function createMockEditor(model: TextModel, languageFeaturesService: ILanguageFe
5960
}],
6061
[ILabelService, new class extends mock<ILabelService>() { }],
6162
[IWorkspaceContextService, new class extends mock<IWorkspaceContextService>() { }],
63+
[IEnvironmentService, new class extends mock<IEnvironmentService>() {
64+
override isBuilt: boolean = true;
65+
override isExtensionDevelopment: boolean = false;
66+
}],
6267
),
6368
});
6469
editor.registerAndInstantiateContribution(SnippetController2.ID, SnippetController2);

0 commit comments

Comments
 (0)