Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Hanging in VS2022
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

sosedada
Senior Member

USA
36 Posts

Posted - Nov 09 2023 :  6:05:10 PM  Show Profile  Reply with Quote
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  Show Profile  Reply with Quote
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
Go to Top of Page

sosedada
Senior Member

USA
36 Posts

Posted - Nov 11 2023 :  2:50:55 PM  Show Profile  Reply with Quote
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
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19022 Posts

Posted - Nov 13 2023 :  07:47:45 AM  Show Profile  Reply with Quote
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
Go to Top of Page

sosedada
Senior Member

USA
36 Posts

Posted - Nov 28 2023 :  4:52:31 PM  Show Profile  Reply with Quote
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
  }
}

Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19022 Posts

Posted - Nov 29 2023 :  05:47:34 AM  Show Profile  Reply with Quote
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
Go to Top of Page

sosedada
Senior Member

USA
36 Posts

Posted - Nov 29 2023 :  3:40:02 PM  Show Profile  Reply with Quote
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.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19022 Posts

Posted - Nov 30 2023 :  07:31:45 AM  Show Profile  Reply with Quote
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
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000