Skip to content

Commit 903fb88

Browse files
committed
also report late commands as deprecated API but let it slip through for now
microsoft#184924
1 parent cf23221 commit 903fb88

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

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

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { URI, UriComponents } from 'vs/base/common/uri';
7-
import { mixin } from 'vs/base/common/objects';
7+
import { equals, mixin } from 'vs/base/common/objects';
88
import type * as vscode from 'vscode';
99
import * as typeConvert from 'vs/workbench/api/common/extHostTypeConverters';
1010
import { Range, Disposable, CompletionList, SnippetString, CodeActionKind, SymbolInformation, DocumentSymbol, SemanticTokensEdits, SemanticTokens, SemanticTokensEdit, Location, InlineCompletionTriggerKind, InternalDataTransferItem, CodeActionTriggerKind } from 'vs/workbench/api/common/extHostTypes';
@@ -1033,25 +1033,39 @@ class CompletionsAdapter {
10331033
return undefined;
10341034
}
10351035

1036+
const dto1 = this._convertCompletionItem(item, id);
1037+
10361038
const resolvedItem = await this._provider.resolveCompletionItem!(item, token);
10371039

10381040
if (!resolvedItem) {
10391041
return undefined;
10401042
}
10411043

1042-
const enforcedResolvedItem = {
1043-
...item,
1044-
documentation: resolvedItem.documentation,
1045-
detail: resolvedItem.detail,
1046-
additionalTextEdits: resolvedItem.additionalTextEdits
1047-
};
1048-
10491044
if (CompletionsAdapter._insertTextIdent(item.insertText) !== CompletionsAdapter._insertTextIdent(resolvedItem.insertText)) {
10501045
this._apiDeprecation.report('CompletionItem.insertText', this._extension, 'extension MAY NOT change \'insertText\' of a CompletionItem during resolve');
1051-
enforcedResolvedItem.insertText = resolvedItem.insertText;
10521046
}
10531047

1054-
return this._convertCompletionItem(enforcedResolvedItem, id);
1048+
if (!equals(item.command, resolvedItem.command)) {
1049+
this._apiDeprecation.report('CompletionItem.command', this._extension, 'extension MAY NOT change \'command\' of a CompletionItem during resolve');
1050+
}
1051+
1052+
const dto2 = this._convertCompletionItem(resolvedItem, id);
1053+
1054+
return {
1055+
...dto1,
1056+
[extHostProtocol.ISuggestDataDtoField.documentation]: dto2[extHostProtocol.ISuggestDataDtoField.documentation],
1057+
[extHostProtocol.ISuggestDataDtoField.detail]: dto2[extHostProtocol.ISuggestDataDtoField.detail],
1058+
[extHostProtocol.ISuggestDataDtoField.additionalTextEdits]: dto2[extHostProtocol.ISuggestDataDtoField.additionalTextEdits],
1059+
1060+
// (fishy) async insertText
1061+
[extHostProtocol.ISuggestDataDtoField.insertText]: dto2[extHostProtocol.ISuggestDataDtoField.insertText],
1062+
[extHostProtocol.ISuggestDataDtoField.insertTextRules]: dto2[extHostProtocol.ISuggestDataDtoField.insertTextRules],
1063+
1064+
// (fishy) async command
1065+
[extHostProtocol.ISuggestDataDtoField.commandIdent]: dto2[extHostProtocol.ISuggestDataDtoField.commandIdent],
1066+
[extHostProtocol.ISuggestDataDtoField.commandId]: dto2[extHostProtocol.ISuggestDataDtoField.commandId],
1067+
[extHostProtocol.ISuggestDataDtoField.commandArguments]: dto2[extHostProtocol.ISuggestDataDtoField.commandArguments],
1068+
};
10551069
}
10561070

10571071
private static _insertTextIdent(insertText: string | vscode.SnippetString | undefined) {

0 commit comments

Comments
 (0)