提交 ab241248 编写于 作者: J Johannes Rieken

use map over switch, "more strict" signature, don't send default type,...

use map over switch, "more strict" signature, don't send default type, https://github.com/microsoft/vscode/issues/95325
上级 e14cf0ff
......@@ -406,7 +406,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
return {
label: data[ISuggestDataDtoField.label2] || data[ISuggestDataDtoField.label],
kind: data[ISuggestDataDtoField.kind],
kind: data[ISuggestDataDtoField.kind] || modes.CompletionItemKind.Property,
tags: data[ISuggestDataDtoField.kindModifier],
detail: data[ISuggestDataDtoField.detail],
documentation: data[ISuggestDataDtoField.documentation],
......
......@@ -1104,7 +1104,7 @@ export const enum ISuggestDataDtoField {
export interface ISuggestDataDto {
[ISuggestDataDtoField.label]: string;
[ISuggestDataDtoField.label2]?: string | modes.CompletionItemLabel;
[ISuggestDataDtoField.kind]: modes.CompletionItemKind;
[ISuggestDataDtoField.kind]?: modes.CompletionItemKind;
[ISuggestDataDtoField.detail]?: string;
[ISuggestDataDtoField.documentation]?: string | IMarkdownString;
[ISuggestDataDtoField.sortText]?: string;
......
......@@ -956,7 +956,7 @@ class SuggestAdapter {
//
[extHostProtocol.ISuggestDataDtoField.label]: item.label,
[extHostProtocol.ISuggestDataDtoField.label2]: item.label2,
[extHostProtocol.ISuggestDataDtoField.kind]: typeConvert.CompletionItemKind.from(item.kind),
[extHostProtocol.ISuggestDataDtoField.kind]: item.kind ? typeConvert.CompletionItemKind.from(item.kind) : undefined,
[extHostProtocol.ISuggestDataDtoField.kindModifier]: item.tags && item.tags.map(typeConvert.CompletionItemTag.from),
[extHostProtocol.ISuggestDataDtoField.detail]: item.detail,
[extHostProtocol.ISuggestDataDtoField.documentation]: typeof item.documentation === 'undefined' ? undefined : typeConvert.MarkdownString.fromStrict(item.documentation),
......
......@@ -808,70 +808,72 @@ export namespace CompletionItemTag {
export namespace CompletionItemKind {
export function from(kind: types.CompletionItemKind | undefined): modes.CompletionItemKind {
switch (kind) {
case types.CompletionItemKind.Method: return modes.CompletionItemKind.Method;
case types.CompletionItemKind.Function: return modes.CompletionItemKind.Function;
case types.CompletionItemKind.Constructor: return modes.CompletionItemKind.Constructor;
case types.CompletionItemKind.Field: return modes.CompletionItemKind.Field;
case types.CompletionItemKind.Variable: return modes.CompletionItemKind.Variable;
case types.CompletionItemKind.Class: return modes.CompletionItemKind.Class;
case types.CompletionItemKind.Interface: return modes.CompletionItemKind.Interface;
case types.CompletionItemKind.Struct: return modes.CompletionItemKind.Struct;
case types.CompletionItemKind.Module: return modes.CompletionItemKind.Module;
case types.CompletionItemKind.Property: return modes.CompletionItemKind.Property;
case types.CompletionItemKind.Unit: return modes.CompletionItemKind.Unit;
case types.CompletionItemKind.Value: return modes.CompletionItemKind.Value;
case types.CompletionItemKind.Constant: return modes.CompletionItemKind.Constant;
case types.CompletionItemKind.Enum: return modes.CompletionItemKind.Enum;
case types.CompletionItemKind.EnumMember: return modes.CompletionItemKind.EnumMember;
case types.CompletionItemKind.Keyword: return modes.CompletionItemKind.Keyword;
case types.CompletionItemKind.Snippet: return modes.CompletionItemKind.Snippet;
case types.CompletionItemKind.Text: return modes.CompletionItemKind.Text;
case types.CompletionItemKind.Color: return modes.CompletionItemKind.Color;
case types.CompletionItemKind.File: return modes.CompletionItemKind.File;
case types.CompletionItemKind.Reference: return modes.CompletionItemKind.Reference;
case types.CompletionItemKind.Folder: return modes.CompletionItemKind.Folder;
case types.CompletionItemKind.Event: return modes.CompletionItemKind.Event;
case types.CompletionItemKind.Operator: return modes.CompletionItemKind.Operator;
case types.CompletionItemKind.TypeParameter: return modes.CompletionItemKind.TypeParameter;
case types.CompletionItemKind.Issue: return modes.CompletionItemKind.Issue;
case types.CompletionItemKind.User: return modes.CompletionItemKind.User;
}
return modes.CompletionItemKind.Property;
}
const _from = new Map<types.CompletionItemKind, modes.CompletionItemKind>([
[types.CompletionItemKind.Method, modes.CompletionItemKind.Method],
[types.CompletionItemKind.Function, modes.CompletionItemKind.Function],
[types.CompletionItemKind.Constructor, modes.CompletionItemKind.Constructor],
[types.CompletionItemKind.Field, modes.CompletionItemKind.Field],
[types.CompletionItemKind.Variable, modes.CompletionItemKind.Variable],
[types.CompletionItemKind.Class, modes.CompletionItemKind.Class],
[types.CompletionItemKind.Interface, modes.CompletionItemKind.Interface],
[types.CompletionItemKind.Struct, modes.CompletionItemKind.Struct],
[types.CompletionItemKind.Module, modes.CompletionItemKind.Module],
[types.CompletionItemKind.Property, modes.CompletionItemKind.Property],
[types.CompletionItemKind.Unit, modes.CompletionItemKind.Unit],
[types.CompletionItemKind.Value, modes.CompletionItemKind.Value],
[types.CompletionItemKind.Constant, modes.CompletionItemKind.Constant],
[types.CompletionItemKind.Enum, modes.CompletionItemKind.Enum],
[types.CompletionItemKind.EnumMember, modes.CompletionItemKind.EnumMember],
[types.CompletionItemKind.Keyword, modes.CompletionItemKind.Keyword],
[types.CompletionItemKind.Snippet, modes.CompletionItemKind.Snippet],
[types.CompletionItemKind.Text, modes.CompletionItemKind.Text],
[types.CompletionItemKind.Color, modes.CompletionItemKind.Color],
[types.CompletionItemKind.File, modes.CompletionItemKind.File],
[types.CompletionItemKind.Reference, modes.CompletionItemKind.Reference],
[types.CompletionItemKind.Folder, modes.CompletionItemKind.Folder],
[types.CompletionItemKind.Event, modes.CompletionItemKind.Event],
[types.CompletionItemKind.Operator, modes.CompletionItemKind.Operator],
[types.CompletionItemKind.TypeParameter, modes.CompletionItemKind.TypeParameter],
[types.CompletionItemKind.Issue, modes.CompletionItemKind.Issue],
[types.CompletionItemKind.User, modes.CompletionItemKind.User],
]);
export function from(kind: types.CompletionItemKind): modes.CompletionItemKind {
return _from.get(kind) ?? modes.CompletionItemKind.Property;
}
const _to = new Map<modes.CompletionItemKind, types.CompletionItemKind>([
[modes.CompletionItemKind.Method, types.CompletionItemKind.Method],
[modes.CompletionItemKind.Function, types.CompletionItemKind.Function],
[modes.CompletionItemKind.Constructor, types.CompletionItemKind.Constructor],
[modes.CompletionItemKind.Field, types.CompletionItemKind.Field],
[modes.CompletionItemKind.Variable, types.CompletionItemKind.Variable],
[modes.CompletionItemKind.Class, types.CompletionItemKind.Class],
[modes.CompletionItemKind.Interface, types.CompletionItemKind.Interface],
[modes.CompletionItemKind.Struct, types.CompletionItemKind.Struct],
[modes.CompletionItemKind.Module, types.CompletionItemKind.Module],
[modes.CompletionItemKind.Property, types.CompletionItemKind.Property],
[modes.CompletionItemKind.Unit, types.CompletionItemKind.Unit],
[modes.CompletionItemKind.Value, types.CompletionItemKind.Value],
[modes.CompletionItemKind.Constant, types.CompletionItemKind.Constant],
[modes.CompletionItemKind.Enum, types.CompletionItemKind.Enum],
[modes.CompletionItemKind.EnumMember, types.CompletionItemKind.EnumMember],
[modes.CompletionItemKind.Keyword, types.CompletionItemKind.Keyword],
[modes.CompletionItemKind.Snippet, types.CompletionItemKind.Snippet],
[modes.CompletionItemKind.Text, types.CompletionItemKind.Text],
[modes.CompletionItemKind.Color, types.CompletionItemKind.Color],
[modes.CompletionItemKind.File, types.CompletionItemKind.File],
[modes.CompletionItemKind.Reference, types.CompletionItemKind.Reference],
[modes.CompletionItemKind.Folder, types.CompletionItemKind.Folder],
[modes.CompletionItemKind.Event, types.CompletionItemKind.Event],
[modes.CompletionItemKind.Operator, types.CompletionItemKind.Operator],
[modes.CompletionItemKind.TypeParameter, types.CompletionItemKind.TypeParameter],
[modes.CompletionItemKind.User, types.CompletionItemKind.User],
[modes.CompletionItemKind.Issue, types.CompletionItemKind.Issue],
]);
export function to(kind: modes.CompletionItemKind): types.CompletionItemKind {
switch (kind) {
case modes.CompletionItemKind.Method: return types.CompletionItemKind.Method;
case modes.CompletionItemKind.Function: return types.CompletionItemKind.Function;
case modes.CompletionItemKind.Constructor: return types.CompletionItemKind.Constructor;
case modes.CompletionItemKind.Field: return types.CompletionItemKind.Field;
case modes.CompletionItemKind.Variable: return types.CompletionItemKind.Variable;
case modes.CompletionItemKind.Class: return types.CompletionItemKind.Class;
case modes.CompletionItemKind.Interface: return types.CompletionItemKind.Interface;
case modes.CompletionItemKind.Struct: return types.CompletionItemKind.Struct;
case modes.CompletionItemKind.Module: return types.CompletionItemKind.Module;
case modes.CompletionItemKind.Property: return types.CompletionItemKind.Property;
case modes.CompletionItemKind.Unit: return types.CompletionItemKind.Unit;
case modes.CompletionItemKind.Value: return types.CompletionItemKind.Value;
case modes.CompletionItemKind.Constant: return types.CompletionItemKind.Constant;
case modes.CompletionItemKind.Enum: return types.CompletionItemKind.Enum;
case modes.CompletionItemKind.EnumMember: return types.CompletionItemKind.EnumMember;
case modes.CompletionItemKind.Keyword: return types.CompletionItemKind.Keyword;
case modes.CompletionItemKind.Snippet: return types.CompletionItemKind.Snippet;
case modes.CompletionItemKind.Text: return types.CompletionItemKind.Text;
case modes.CompletionItemKind.Color: return types.CompletionItemKind.Color;
case modes.CompletionItemKind.File: return types.CompletionItemKind.File;
case modes.CompletionItemKind.Reference: return types.CompletionItemKind.Reference;
case modes.CompletionItemKind.Folder: return types.CompletionItemKind.Folder;
case modes.CompletionItemKind.Event: return types.CompletionItemKind.Event;
case modes.CompletionItemKind.Operator: return types.CompletionItemKind.Operator;
case modes.CompletionItemKind.TypeParameter: return types.CompletionItemKind.TypeParameter;
case modes.CompletionItemKind.User: return types.CompletionItemKind.User;
case modes.CompletionItemKind.Issue: return types.CompletionItemKind.Issue;
}
return types.CompletionItemKind.Property;
return _to.get(kind) ?? types.CompletionItemKind.Property;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册