Author |
Topic |
|
sosedada
Senior Member
USA
36 Posts |
Posted - Nov 09 2023 : 6:05:10 PM
|
I've been using VA for eons and it works great in my large .sln with 228 projects.
We have a separate new project, and decided to try using cmake+vcpkg for it. VA spends hours processing files in various build directories and, when active, frequently hangs and otherwise seems incapable of knowing the context of symbols when doing navigate to definition if the symbol name has any conflicts in the libraries, even for member variables.
I've tried living with just intellisense (which seems to work pretty accurately), but miss all the other features I'm used to. How can I make it work better in the short term and help you make it more useful in the long term?
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Nov 10 2023 : 07:59:04 AM
|
Apologies for this, that is a terrible result from VA. By default VA is trying to parse everything in the directory tree, which is obviously not what you want.
I think the solution is turned On:
VA Options -> Performance -> Do not parse files excluded by .vscode\settings.json (requires restart)
and then setting up a ".vscode\settings.json" file in the root directory that you are opening. For the "settings.json" file, a simple start file would be:
{
"files.exclude": {
"one_deep/unreal": true,
"two_deep/unreal": true,
"bin": true,
"output": true
}
} where each line specifies a directory name, or directory path, that VA will exclude from being parsed. Everything under the excluded directory should be completely ignored by VA.
Obviously you need to edit the file to specify the directories you want to exclude, starting with the build directories.
Does this sample make sense, can you see what the file is aiming to do? |
zen is the art of being at one with the two'ness |
|
|
sosedada
Senior Member
USA
36 Posts |
Posted - Nov 11 2023 : 2:50:55 PM
|
Looks like you forgot settings node in there. But things seem much better at a first test, at least I didn't spent more than a little bit parsing after a rebuild database. Will see how everything works out next week. Thanks!
{
"settings": {
"files.exclude": {
"out": true,
"out/build": true,
"vcpkg_installed": true,
"**/blds": true,
"**/pkgs": true
}
}
}
|
Edited by - sosedada on Nov 11 2023 2:51:24 PM |
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Nov 13 2023 : 07:47:45 AM
|
Apologies for that, I edited a sample "settings.json" file that is working for me, so I am not sure why you needed to add a settings block. Still, I am glad this is helping.
Please do let me know if you still have any problems with this, but hopefully excluding the build and any "problem" directories is the solution. |
zen is the art of being at one with the two'ness |
|
|
sosedada
Senior Member
USA
36 Posts |
Posted - Nov 28 2023 : 4:52:31 PM
|
So, I haven't had as much hanging since my last post, but it has happened. I also see "VA: Parsing ..." status messages that include paths in my settings.json. Additionally, Go To Definition still has frequent failures. Find Symbol with "Show only symbols defined in the current solution" checked shows various boost and other library hits.
I just updated to build 2508.
My .vscode/settings.json looks like:
{
"settings": {
"files.exclude": {
"out": true,
"out/build": true,
"vcpkg_installed": true,
"**/blds": true,
"**/pkgs": true
}
},
"files.exclude": {
"out": true,
"out/build": true,
"vcpkg_installed": true,
"**/blds": true,
"**/pkgs": true
}
}
|
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Nov 29 2023 : 05:47:34 AM
|
Can you please give me a couple of directory or file paths that are not being excluded? I can then set up a similar directory layout here, and see what results I get.
I don't want to just guess at what directories should be excluded, since I might guess wrong and then be testing the wrong thing. |
zen is the art of being at one with the two'ness |
|
|
sosedada
Senior Member
USA
36 Posts |
Posted - Nov 29 2023 : 3:40:02 PM
|
I made a copy of the folder I'm using to try to send a repro case and I've been unable to get parsing messages or mis-navigation so far. I trimmed down the system a bit for sharing, but just some secret implementation details that I wouldn't have thought would be impactful. I'll play around with it more and maybe try a new location for my regular dev.
One other thing that I would think shouldn't matter is that I have a structure like:
d:\dev\parent - .git - other projects with .sln's - current project with cmake
Also, I don't know if your symbol database is smart enough to de-duplicate, so my test is invalid because the same headers were already parsed in their original location.
|
|
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Nov 30 2023 : 07:31:45 AM
|
If you haven't tried our latest build, VA 2508 yet, the release notes list:
Fixed multiple issues with file exclusion logic when reading from ".vscode\settings.json" configs. (case=149167)
http://www.wholetomato.com/downloads
so it may well help. But if you still have problems, a sample directory tree with empty code files to show what should be included and excluded would be enough for me to work with. Any files you send will be kept confidential, and only used for testing purposes, but even with assurances I understand you have to be careful what you consider sharing.
Files can be sent directly to me via email, so no need to share to many details here. Just send me the files via email:
[email protected]
including this thread ID or URL in the description, so we can match it up. |
zen is the art of being at one with the two'ness |
|
|
|
Topic |
|