Skip to content

Commit c591894

Browse files
committed
fixed flawed API deprecation warning
We want to warn when extensions change `CompletionItem#insertText` during resolve but the check be better correct...
1 parent b0bcc33 commit c591894

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/vs/workbench/api/common/extHostLanguageFeatures.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1040,14 +1040,22 @@ class CompletionsAdapter {
10401040
additionalTextEdits: resolvedItem.additionalTextEdits
10411041
};
10421042

1043-
if (item.insertText !== resolvedItem.insertText) {
1043+
if (CompletionsAdapter._insertTextIdent(item.insertText) !== CompletionsAdapter._insertTextIdent(resolvedItem.insertText)) {
10441044
this._apiDeprecation.report('CompletionItem.insertText', this._extension, 'extension MAY NOT change \'insertText\' of a CompletionItem during resolve');
10451045
enforcedResolvedItem.insertText = resolvedItem.insertText;
10461046
}
10471047

10481048
return this._convertCompletionItem(enforcedResolvedItem, id);
10491049
}
10501050

1051+
private static _insertTextIdent(insertText: string | vscode.SnippetString | undefined) {
1052+
switch (typeof insertText) {
1053+
case 'string': return insertText;
1054+
case 'undefined': return undefined;
1055+
case 'object': return insertText.value;
1056+
}
1057+
}
1058+
10511059
releaseCompletionItems(id: number): any {
10521060
this._disposables.get(id)?.dispose();
10531061
this._disposables.delete(id);

0 commit comments

Comments
 (0)