-
Notifications
You must be signed in to change notification settings - Fork 30.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[regression] Workspace symbol search doesn't show results when query contains * #149144
Comments
This is a duplicate. Unfortunately, I don't recall the exact issue number nor its title 😳 Anyways, searching for issues with the same labels will likely help you 👉 |
@raulvaldoleiros @jrieken I checked with the lastest vscode insiders build, assuming the fix for #148833 is included, it doesn't fix the issue when the query contains * |
#98215 is related but not the same topic. The similar use case in Java is to search types with "full qualified name". E.g. input Back to this wildcard search problem with @fbricon I did a bisect test on old versions of vscode, finding it was working in v1.43.0, and not working since v1.44.0. @jrieken Is that because fuzzy matcher no longer skips Attaching videos of the comparison, where the response of workspace/symbol should be the same. SymbolSearch-1.43.0.mp4SymbolSearch-1.44.0.mp4 |
Sorry, that's a really long time ago (~2yrs) and I don't really remember. Fuzzy score would always use every character but it might be that we have consolidated different algorithms during that time. Tho, in our defence it was always written that query character best all match: "A good rule of thumb is to match case-insensitive and to simply check that the..." |
Got it. AFAIK currently without Anyway let's get back to this use case. And @fbricon do you have any comment or any concern if we change the behavior of Java LS? |
"Yes" to both. A really simple and very fast way to do filtering is to ensure that all query characters appear in their order in the symbol name (ignoring casing). Like export function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number, fillMinWordPosArr = false): boolean {
while (patternPos < patternLen && wordPos < wordLen) {
if (patternLow[patternPos] === wordLow[wordPos]) {
patternPos += 1;
}
wordPos += 1;
}
return patternPos === patternLen; // pattern must be exhausted
} When results are shown inside VS Code we use the same(*) filter logic but sort by "match rank", e.g |
@jrieken May I ask what is the current status of this issue? Is this a duplicate issue, or is this a regression issue (and thus should be reopened, since it is tagged with the flairs, It's kind of hard to keep track of this issue, especially when it's difficult to locate the original issue you mentioned about it 17 days ago. If we still couldn't find the original issue, may I recommend just not mark it as a duplicate, and just say it's a regression issue? We do have footage from Eskibear showing the regression between v1.43.0 and v1.44.0. |
@jrieken can you accept the recommendation of @tommai78101 ? I still have the issue using vscode java and it really has a huge impact on my performance, eventually I will move to intellij if this keeps this way :( |
Any updates on this? |
Does this issue occur when all extensions are disabled?: Maybe
We (vscode-java team) noticed that workspace symbol search doesn't show results anymore when the query contains a
*
character. This used to work at least 3 years ago, but I have no idea when that regression occurred.The language server properly returns the search results, but they're just not displayed.
Steps to Reproduce:
"java.trace.level":"verbose"
for vscode-java)*Exception
. You can see in the "Language Support for Java" output that results are returned, but none are actually displayed:The text was updated successfully, but these errors were encountered: