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
Add wildcard support for includeDir #10388
Conversation
@microsoft-github-policy-service agree |
But it also output the following message:
|
Thanks for submitting this. We've been busy reviewing other PRs this past week but we'll try to get around to review this next week. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this expand subdirectories on the right side, such that it could potentially generate a large number of directories? If so, can that behavior be suppressed in favor of our existing recursive includes support? We want to avoid that because it negatively effects performance of our parser. It's okay for "internal" wildcard directories, since those are not as likely to generate a large number of directories.
The right However, if there are any middle I understand your worries about the performance impact. luckily for us I've amended my commit to specify a |
FYI, we've been unexpectedly busy and haven't had time to review this yet. Our current target would be 1.15.0, since 1.14.x is entering stabilization mode. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've been busy with the 1.14.x release. I may be able to review this next week or the week after.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see this change actually working. First, the changes only appear to be in getErrorsForConfigUI which is only invoked when the configuration UI is loaded. But even when I do that, I get 0 results for
"includePath": [
"${workspaceFolder}/*/inc"
],
How are you testing your change?
Also, there might be an issue with an incorrect squiggle appearing in the json UI editor for c_cpp_properties.json.
I indeed tested through the Configuration UI. What kind of squiggle ? |
that's interesting. I'll try to find a windows machine to test. thanks for the info. I'll keep you informed. |
Hi @gerlero, the only windows machine I found was my company machine which has network restrictions (no github push/pull allowed) I could circumvent they restrictions but that's risky. |
@gerlero : do you have a windows machine ? |
If you have a theoretical fix we could test it for you. Or can you download a zip of repo-branch for use on the Windows machine and then just re-do the fix/push on your other machine? |
Current status of my corporate windows machine and it "Secure Web Gateway" (aka man in the middle HTTPS proxy) :
Having battled with JavaScript ecosystem in the past, I'm not surprised having so much hard time doing a simple environment setup. However I was wondering if some of those issues are more windows or Node related ? |
We're still using yarn 1.22.x and it may not work with yarn 3.5. |
It get stuck at the same step even with yarn 1.22 I tried running a W11 VM but it was unbearable on my 8Go laptop So I finally got my hands on a dualboot PC and it seems to be working, and without a surprise the issue was that the windows separator I'll just need to get the changes back into git. |
@sean-mcmanus I've rebased onto main and committed the fix in a separate commit for easier review. |
@yne You're hitting some linter issues...they look minor/easy to fix. We have a |
I'll let you handle this part 💪 |
For example, using the following tree: rootUri - sources - main - main.c - vendor - khash.h - headers - C001 - a.h - C002 - b.h The following directory paths works: - `sources/**` for plain old recursive path - `headers/C*/` dynamic path - `missing/` reported as "not found" - `missing/*` expanded as empty result (silent fail) Note: bakslash paths need to be slash-converted to avoid be considered as "Dynamic"
@yne Yeah, it's possible "main" requires changes in the binary that only available with 1.16.1 which will be released later today. |
@yne FYI, main is "locked down" for the 1.16.2 release (maybe for Thursday) until we merge to the release branch. I think this can get into 1.17.0 (pre-release). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm OK with this - I haven't tested the functionality.
This can get merged ahead of #11085
After attempting to test the feature myself, the support for dynamic paths does not seem to work, as a result we will delay checking this in. The example configuration did not yield the correct include paths. Log Output: ------- Workspace parsing diagnostics ------- |
@yne Can headers/C*/** be made to work? The expanded paths should just preserve the "**" at the end so we can process those. Or did you want to exclude that for some reason? |
the ending ** are kept out of glob process and re-added post-globbing It worked on windows in my last fix but I cannot test it again now (see: my last braindead vscode issue) Is there any formal verification procedure we could agreed upon ? I'll let you tell me when I can start debugging again (after the problematic plugin migration?) |
The feature does work as long as "**" is excluded. I will make a note for that to be a future improvement and we can go ahead and check this in for now. |
@browntarik @yne On Windows (and Linux/Mac), |
@yne FYI, you don't need to fix this. I think @browntarik was going to (i.e. #11135 is assigned to him). The shipped 1.16.3 binaries should be usable for testing. |
@sean-mcmanus I need this feature, how can I try it ASAP ? |
@haolly It should be available in our 1.17.0 release. We're not sure when that will be yet, because we're still working on fixing some issues. |
For example, using the following tree:
sources/**
headers/C*/
missing/
missing/*
Fixes #723