@@ -17,18 +17,16 @@ import { IEditorService, SIDE_GROUP, ACTIVE_GROUP } from 'vs/workbench/services/
1717import { Range } from 'vs/editor/common/core/range' ;
1818import { IConfigurationService } from 'vs/platform/configuration/common/configuration' ;
1919import { IWorkbenchEditorConfiguration } from 'vs/workbench/common/editor' ;
20- import { IKeyMods } from 'vs/platform/quickinput/common/quickInput' ;
21- import { URI } from 'vs/base/common/uri' ;
20+ import { IKeyMods , IQuickPickItemWithResource } from 'vs/platform/quickinput/common/quickInput' ;
2221import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService' ;
2322import { getSelectionSearchString } from 'vs/editor/contrib/find/findController' ;
2423import { withNullAsUndefined } from 'vs/base/common/types' ;
2524import { prepareQuery , IPreparedQuery , scoreFuzzy2 , pieceToQuery } from 'vs/base/common/fuzzyScorer' ;
2625import { IMatch } from 'vs/base/common/filters' ;
2726
28- interface ISymbolQuickPickItem extends IPickerQuickAccessItem {
29- resource : URI | undefined ;
27+ interface ISymbolQuickPickItem extends IPickerQuickAccessItem , IQuickPickItemWithResource {
3028 score ?: number ;
31- symbol : IWorkspaceSymbol ;
29+ symbol ? : IWorkspaceSymbol ;
3230}
3331
3432export class SymbolsQuickAccessProvider extends PickerQuickAccessProvider < ISymbolQuickPickItem > {
@@ -67,7 +65,12 @@ export class SymbolsQuickAccessProvider extends PickerQuickAccessProvider<ISymbo
6765 @IConfigurationService private readonly configurationService : IConfigurationService ,
6866 @ICodeEditorService private readonly codeEditorService : ICodeEditorService
6967 ) {
70- super ( SymbolsQuickAccessProvider . PREFIX , { canAcceptInBackground : true } ) ;
68+ super ( SymbolsQuickAccessProvider . PREFIX , {
69+ canAcceptInBackground : true ,
70+ noResultsPick : {
71+ label : localize ( 'noSymbolResults' , "No workspace symbol matching" )
72+ }
73+ } ) ;
7174 }
7275
7376 private get configuration ( ) {
@@ -241,22 +244,30 @@ export class SymbolsQuickAccessProvider extends PickerQuickAccessProvider<ISymbo
241244 if ( symbolA . score && symbolB . score ) {
242245 if ( symbolA . score > symbolB . score ) {
243246 return - 1 ;
244- } else if ( symbolA . score < symbolB . score ) {
247+ }
248+
249+ if ( symbolA . score < symbolB . score ) {
245250 return 1 ;
246251 }
247252 }
248253
249254 // By name
250- const symbolAName = symbolA . symbol . name . toLowerCase ( ) ;
251- const symbolBName = symbolB . symbol . name . toLowerCase ( ) ;
252- const res = symbolAName . localeCompare ( symbolBName ) ;
253- if ( res !== 0 ) {
254- return res ;
255+ if ( symbolA . symbol && symbolB . symbol ) {
256+ const symbolAName = symbolA . symbol . name . toLowerCase ( ) ;
257+ const symbolBName = symbolB . symbol . name . toLowerCase ( ) ;
258+ const res = symbolAName . localeCompare ( symbolBName ) ;
259+ if ( res !== 0 ) {
260+ return res ;
261+ }
255262 }
256263
257264 // By kind
258- const symbolAKind = SymbolKinds . toCssClassName ( symbolA . symbol . kind ) ;
259- const symbolBKind = SymbolKinds . toCssClassName ( symbolB . symbol . kind ) ;
260- return symbolAKind . localeCompare ( symbolBKind ) ;
265+ if ( symbolA . symbol && symbolB . symbol ) {
266+ const symbolAKind = SymbolKinds . toCssClassName ( symbolA . symbol . kind ) ;
267+ const symbolBKind = SymbolKinds . toCssClassName ( symbolB . symbol . kind ) ;
268+ return symbolAKind . localeCompare ( symbolBKind ) ;
269+ }
270+
271+ return 0 ;
261272 }
262273}
0 commit comments