diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 27aa97b93c5..dcc2fab9afb 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -210,7 +210,8 @@ export type SuggestionType = 'method' | 'file' | 'reference' | 'customcolor' - | 'folder'; + | 'folder' + | 'type-parameter'; /** * @internal @@ -494,7 +495,8 @@ export enum SymbolKind { EnumMember = 21, Struct = 22, Event = 23, - Operator = 24 + Operator = 24, + TypeParameter = 25 } @@ -529,6 +531,7 @@ export const symbolKindToCssClass = (function () { _fromMapping[SymbolKind.Struct] = 'struct'; _fromMapping[SymbolKind.Event] = 'event'; _fromMapping[SymbolKind.Operator] = 'operator'; + _fromMapping[SymbolKind.TypeParameter] = 'type-parameter'; return function toCssClassName(kind: SymbolKind): string { return _fromMapping[kind] || 'property'; diff --git a/src/vs/editor/contrib/suggest/browser/media/Template_16x_vscode.svg b/src/vs/editor/contrib/suggest/browser/media/Template_16x_vscode.svg new file mode 100644 index 00000000000..788cc8d6450 --- /dev/null +++ b/src/vs/editor/contrib/suggest/browser/media/Template_16x_vscode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vs/editor/contrib/suggest/browser/media/Template_16x_vscode_inverse.svg b/src/vs/editor/contrib/suggest/browser/media/Template_16x_vscode_inverse.svg new file mode 100644 index 00000000000..6cec71cb033 --- /dev/null +++ b/src/vs/editor/contrib/suggest/browser/media/Template_16x_vscode_inverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vs/editor/contrib/suggest/browser/media/suggest.css b/src/vs/editor/contrib/suggest/browser/media/suggest.css index 4ee0c397f26..3714be6e58f 100644 --- a/src/vs/editor/contrib/suggest/browser/media/suggest.css +++ b/src/vs/editor/contrib/suggest/browser/media/suggest.css @@ -134,6 +134,7 @@ .monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.class { background-image: url('Class_16x.svg'); } .monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.interface { background-image: url('Interface_16x.svg'); } .monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.struct { background-image: url('Structure_16x_vscode.svg'); } +.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.type-parameter { background-image: url('Template_16x_vscode.svg'); } .monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.module { background-image: url('Namespace_16x.svg'); } .monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.property { background-image: url('Property_16x.svg'); } .monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.unit { background-image: url('Ruler_16x.svg'); } @@ -272,6 +273,9 @@ .monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.struct, .monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.struct { background-image: url('Structure_16x_vscode_inverse.svg'); } +.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.type-parameter, +.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.type-parameter { background-image: url('Template_16x_vscode_inverse.svg'); } + .monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.module, .monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.module { background-image: url('Namespace_inverse_16x.svg'); } diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 0f10390ac50..6d9c528a60b 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -4749,6 +4749,7 @@ declare module monaco.languages { Struct = 22, Event = 23, Operator = 24, + TypeParameter = 25, } /** diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 92ac4472116..05c594b6e43 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -1877,7 +1877,8 @@ declare module 'vscode' { EnumMember = 21, Struct = 22, Event = 23, - Operator = 24 + Operator = 24, + TypeParameter = 25 } /** @@ -2442,7 +2443,8 @@ declare module 'vscode' { Constant = 20, Struct = 21, Event = 22, - Operator = 23 + Operator = 23, + TypeParameter = 24 } /** diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index c159a6e38c6..cbb9164d699 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -205,6 +205,7 @@ export namespace SymbolKind { _fromMapping[types.SymbolKind.Struct] = modes.SymbolKind.Struct; _fromMapping[types.SymbolKind.Event] = modes.SymbolKind.Event; _fromMapping[types.SymbolKind.Operator] = modes.SymbolKind.Operator; + _fromMapping[types.SymbolKind.TypeParameter] = modes.SymbolKind.TypeParameter; export function from(kind: vscode.SymbolKind): modes.SymbolKind { return _fromMapping[kind] || modes.SymbolKind.Property; @@ -294,6 +295,7 @@ export const CompletionItemKind = { case types.CompletionItemKind.Folder: return 'folder'; case types.CompletionItemKind.Event: return 'event'; case types.CompletionItemKind.Operator: return 'operator'; + case types.CompletionItemKind.TypeParameter: return 'type-parameter'; } return 'property'; }, diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index 53cc58a6d8a..a49e6c80e3c 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -763,7 +763,8 @@ export enum SymbolKind { EnumMember = 21, Struct = 22, Event = 23, - Operator = 24 + Operator = 24, + TypeParameter = 25 } export class SymbolInformation { @@ -876,7 +877,8 @@ export enum CompletionItemKind { Constant = 20, Struct = 21, Event = 22, - Operator = 23 + Operator = 23, + TypeParameter = 24 } export class CompletionItem { diff --git a/src/vs/workbench/parts/quickopen/browser/media/Template_16x_vscode.svg b/src/vs/workbench/parts/quickopen/browser/media/Template_16x_vscode.svg new file mode 100644 index 00000000000..788cc8d6450 --- /dev/null +++ b/src/vs/workbench/parts/quickopen/browser/media/Template_16x_vscode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/media/Template_16x_vscode_inverse.svg b/src/vs/workbench/parts/quickopen/browser/media/Template_16x_vscode_inverse.svg new file mode 100644 index 00000000000..6cec71cb033 --- /dev/null +++ b/src/vs/workbench/parts/quickopen/browser/media/Template_16x_vscode_inverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/media/gotoSymbolHandler.css b/src/vs/workbench/parts/quickopen/browser/media/gotoSymbolHandler.css index f0b7095b8a0..c761838633d 100644 --- a/src/vs/workbench/parts/quickopen/browser/media/gotoSymbolHandler.css +++ b/src/vs/workbench/parts/quickopen/browser/media/gotoSymbolHandler.css @@ -53,6 +53,16 @@ background-image: url('Operator_16x_vscode_inverse.svg'); } +.monaco-workbench .quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon.type-parameter { + background-image: url('Template_16x_vscode.svg'); + background-repeat: no-repeat; + background-position: 0 -2px; +} +.vs-dark .monaco-workbench .quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon.type-parameter, +.hc-black .monaco-workbench .quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon.type-parameter { + background-image: url('Template_16x_vscode_inverse.svg'); +} + .monaco-workbench .quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon.method, .monaco-workbench .quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon.function, .monaco-workbench .quick-open-widget .quick-open-tree .quick-open-entry .quick-open-entry-icon.constructor,