Best Tag Parser configuration for multiple workspaces #6801
-
(Updated with new info) @sean-mcmanus I tried to explain it better. What is the expected way to setup browse.path includes for projects with multiple workspaces? I keep getting the feeling this is a bug so wanted to make sure. Let's say we have 2 workspaces, in our project, Foo and Bar. Foo is considered our main workspace and has a Foo.code-workspace:
We have no files.exclude settings set anywhere. First Configuration, we try, is named Separate and is configured like so: SeparateFoo workspace browse.path setting:
Bar workspace browse.path setting:
Second Configuration is named Empty Array on Secondary Workspace and is configured like so: Empty Array on Secondary WorkspaceFoo workspace browse.path setting:
Bar workspace browse.path setting:
Questions:
Stats Using a Unreal Engine 4.26 Project that is not using Compile Commands: Separate Configuration
Empty Array on Secondary Workspace Configuration
This also holds true for UE 4.25 projects. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 7 replies
-
The configurations should be identical if the files.exclude and other settings that affect the parsing are identical. I tried the repro with a simple project and my database sizes are identical. It's possible your 1st/FooIncludes workspace folder may have some files.exclude that the 2nd/BarIncludes project doesn't have. Can you open each folder as a single workspace folder with the combined browse path and see if they have the same size? |
Beta Was this translation helpful? Give feedback.
-
UE4 Project Files OnlyThe same configuration we have in the root post but we remove C:/Foo/src from browse.path This shows the logs to a UE 4.26 project without Main Project source files in browse.path. Just our UE4 source paths are there. LogsMain Project workspace (has browse.path) , UE4 workspace (empty array)
Main Project workspace (Empty array) , UE4 workspace (has browse.path)
More Settings InfoI used my extension to gather all the workspace configs for the UE 4.26 project. I did a diff and all settings were the same except for that one setting.Here are some of the settings I found:
(Update) UpdatedDiffing all settings showed Launch and Tasks we're the only difference between Main Workspace settings and UE4 Workspace Settings.files.exclude was set to:
|
Beta Was this translation helpful? Give feedback.
-
I combined both workspace into one workspace and unfortunately it shows this: Combine Workspace Main + UE4 source (Opened as a folder)
So if we go back and look at the Empty Array on Secondary Workspace Configuration, it seems like, for whatever reason, it's the best and only way to get better tag parser performance on large projects. Maybe it's bugged somehow I'm not seeing. But the stats are so extreme that it needs to be looked at: Empty Array on Secondary Workspace
I also posted a bunch more stats about different configs and settings above. |
Beta Was this translation helpful? Give feedback.
-
Ah yeah, the behavior you're seeing is because of the the "limitSymbolsToIncludedHeaders" setting, which is default to true, so in that case when it iterates over the browse.path for a particular workspace folder, the code that is external to the workspace folder will not get parsed unless it matches the name of a header that is included by another file in that workspace. So in your case, when |
Beta Was this translation helpful? Give feedback.
The configurations should be identical if the files.exclude and other settings that affect the parsing are identical. I tried the repro with a simple project and my database sizes are identical. It's possible your 1st/FooIncludes workspace folder may have some files.exclude that the 2nd/BarIncludes project doesn't have. Can you open each folder as a single workspace folder with the combined browse path and see if they have the same size?