diff --git a/packages/plugin-ext/src/common/plugin-api-rpc-model.ts b/packages/plugin-ext/src/common/plugin-api-rpc-model.ts index 82b712f9c1f4e..64aa35a6c38f5 100644 --- a/packages/plugin-ext/src/common/plugin-api-rpc-model.ts +++ b/packages/plugin-ext/src/common/plugin-api-rpc-model.ts @@ -16,6 +16,7 @@ import * as theia from '@theia/plugin'; import { UriComponents } from './uri-components'; +import { CompletionItemTag } from '../plugin/types-impl'; // Should contains internal Plugin API types @@ -114,6 +115,9 @@ export interface Completion { commitCharacters?: string[]; additionalTextEdits?: SingleEditOperation[]; command?: Command; + tags?: CompletionItemTag[]; + /** @deprecated use tags instead. */ + deprecated?: boolean; } export interface SingleEditOperation { diff --git a/packages/plugin-ext/src/plugin/languages/completion.ts b/packages/plugin-ext/src/plugin/languages/completion.ts index 212539c1e8067..b593472d1f8b4 100644 --- a/packages/plugin-ext/src/plugin/languages/completion.ts +++ b/packages/plugin-ext/src/plugin/languages/completion.ts @@ -16,7 +16,7 @@ import { URI } from 'vscode-uri'; import * as theia from '@theia/plugin'; -import { CompletionList, Range, SnippetString } from '../types-impl'; +import { CompletionItemTag, CompletionList, Range, SnippetString } from '../types-impl'; import { DocumentsExtImpl } from '../documents'; import * as Converter from '../type-converters'; import { Position } from '../../common/plugin-api-rpc'; @@ -146,6 +146,10 @@ export class CompletionAdapter { }; } + const tags = (!!item.tags?.length || item.deprecated === true) + ? [CompletionItemTag.Deprecated] + : undefined; + return { id, parentId, @@ -161,7 +165,8 @@ export class CompletionAdapter { range, additionalTextEdits: item.additionalTextEdits && item.additionalTextEdits.map(Converter.fromTextEdit), command: this.commands.converter.toSafeCommand(item.command, toDispose), - commitCharacters: item.commitCharacters + commitCharacters: item.commitCharacters, + tags }; } diff --git a/packages/plugin/src/theia.d.ts b/packages/plugin/src/theia.d.ts index c98a4ad227002..149e1e599d460 100644 --- a/packages/plugin/src/theia.d.ts +++ b/packages/plugin/src/theia.d.ts @@ -6489,6 +6489,11 @@ declare module '@theia/plugin' { */ textEdit?: TextEdit; + /** + * @deprecated Use `CompletionItem.tags` instead. + */ + deprecated?: boolean; + /** * Creates a new completion item. *