Open sam-mccall opened 4 years ago
I think this will be hard to get right because in your example there is ::
used as separator and there is no way our fuzzy matcher would simply skip over this separator given it is very language specific.
I think the ideal solution is to let extensions not only return the matching symbols but also do the matching and return positions to highlight. We probably reached the end of what our generic solution can do.
@bpasero Thanks! A couple of other options too:
filterText
specifically for the purposes of matching. (Though AIUI this complicates display)Adding some more info about this, I've detailed our use case for Metals (the Scala language server) here (before realizing it was a duplicate issue) https://github.com/microsoft/vscode/issues/133313
Looking forward to updating milestones, after all, this affects the developer experience.
For qualified workspace-symbols queries like
llvm::Str
, our language server returns results like{containerName: "llvm", name: "StringRef"}
.VSCode attempts to fuzzy-match the query (
llvm::Str
) against the name only (StringRef
). Because this always fails, it doesn't display any results.In #23509 it's suggested this is something extensions should deal with, but it's not clear what extensions can do. The
provideWorkspaceSymbols
extension point must return SymbolInformation which are then filtered byname
. Adding the qualifier toname
means it is displayed twice - once inname
and once incontainerName
.