@@ -21,7 +21,7 @@ import { IKeyMods, IQuickPickItemWithResource } from 'vs/platform/quickinput/com
21
21
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService' ;
22
22
import { getSelectionSearchString } from 'vs/editor/contrib/find/browser/findController' ;
23
23
import { withNullAsUndefined } from 'vs/base/common/types' ;
24
- import { prepareQuery , IPreparedQuery , scoreFuzzy2 , pieceToQuery } from 'vs/base/common/fuzzyScorer' ;
24
+ import { prepareQuery , IPreparedQuery , scoreFuzzy2 , pieceToQuery , IPreparedQueryPiece } from 'vs/base/common/fuzzyScorer' ;
25
25
import { IMatch } from 'vs/base/common/filters' ;
26
26
import { Codicon } from 'vs/base/common/codicons' ;
27
27
import { ThemeIcon } from 'vs/base/common/themables' ;
@@ -115,6 +115,11 @@ export class SymbolsQuickAccessProvider extends PickerQuickAccessProvider<ISymbo
115
115
if ( token . isCancellationRequested ) {
116
116
return [ ] ;
117
117
}
118
+ // fix the queries before matching start
119
+ symbolQuery = this . removeWildcards ( symbolQuery ) ;
120
+ if ( containerQuery ) {
121
+ containerQuery = this . removeWildcards ( containerQuery ) ;
122
+ }
118
123
119
124
const symbolPicks : Array < ISymbolQuickPickItem > = [ ] ;
120
125
@@ -225,6 +230,30 @@ export class SymbolsQuickAccessProvider extends PickerQuickAccessProvider<ISymbo
225
230
return symbolPicks ;
226
231
}
227
232
233
+ private removeWildcards ( query : IPreparedQuery ) : IPreparedQuery {
234
+ return {
235
+ expectContiguousMatch : query . expectContiguousMatch ,
236
+ normalized : query . normalized . replaceAll ( '*' , '' ) ,
237
+ normalizedLowercase : query . normalizedLowercase . replaceAll ( '*' , '' ) ,
238
+ original : query . original . replaceAll ( '*' , '' ) ,
239
+ originalLowercase : query . originalLowercase . replaceAll ( '*' , '' ) ,
240
+ pathNormalized : query . pathNormalized . replaceAll ( '*' , '' ) ,
241
+ containsPathSeparator : query . containsPathSeparator ,
242
+ values : query . values ?. map ( ( v ) => this . removeWildcardsInPiece ( v ) )
243
+ } ;
244
+ }
245
+
246
+ private removeWildcardsInPiece ( query : IPreparedQueryPiece ) : IPreparedQueryPiece {
247
+ return {
248
+ expectContiguousMatch : query . expectContiguousMatch ,
249
+ normalized : query . normalized . replaceAll ( '*' , '' ) ,
250
+ normalizedLowercase : query . normalizedLowercase . replaceAll ( '*' , '' ) ,
251
+ original : query . original . replaceAll ( '*' , '' ) ,
252
+ originalLowercase : query . originalLowercase . replaceAll ( '*' , '' ) ,
253
+ pathNormalized : query . pathNormalized . replaceAll ( '*' , '' )
254
+ } ;
255
+ }
256
+
228
257
private async openSymbol ( provider : IWorkspaceSymbolProvider , symbol : IWorkspaceSymbol , token : CancellationToken , options : { keyMods : IKeyMods ; forceOpenSideBySide ?: boolean ; preserveFocus ?: boolean ; forcePinned ?: boolean } ) : Promise < void > {
229
258
230
259
// Resolve actual symbol to open for providers that can resolve
0 commit comments