Clang IntelliSense improvements in VisualGDB 5.2

The upcoming VisualGDB 5.2 comes with several improvements to the Clang IntelliSense engine that make the development experience easier and save time on common tasks. Let’s look at those in detail.include

Performance

First of all, we have radically improved the IntelliSense performance. In VisualGDB 5.1 the bottleneck of the Clang IntelliSense engine was computing the references to variables and functions. For source files with many included headers that could take 5 seconds or more, putting code completion and other features on hold. In VisualGDB 5.2 we have eliminated this bottleneck by making code completion and reference analysis independent. No matter how huge your project is and how long it takes to reparse the source files, code completion will not be interrupted by it.

Another unnecessarily slow feature in VisualGDB 5.1 was the highlighting of nearby references to a variable. If you were actively editing the source code, each time you wanted to see the local references to a variable, it took some annoying seconds for huge projects because VisualGDB had to reparse the source file. VisualGDB 5.2 goes smarter about this by immediately showing the references discovered earlier and updating them once the last version of the file is reparsed.

Automatic header file discovery

Another big annoyance reported by our users was the need to manually specify header search paths for imported projects. While being straight-forward, it could easily take considerable time and become annoying. So in VisualGDB 5.2 we have decided to automate this. Each time VisualGDB discovers that some header files are missing, it will automatically search the nearby directories for those files. If some files cannot be located, you will get a chance to pinpoint them manually or just tell VisualGDB to scan another directory recursively and locate them there:missing

Once the directories have been located, you can add them to your project properties (and to IntelliSense properties) with on click of a mouse:addfiles

If you are using  GNU Make or CMake with VisualGDB-generated make files, it will insert the discovered directories there automatically, saving you more time:debugmak

Header inclusion stack

Another annoyance when working with complex C++ projects could be understanding the context of an error in a header file. Sometimes the code just before the #include<> directive is responsible for the error, but finding it could be tricky if the file is included through a chain of other files. In VisualGDB 5.2 we have added a special popup that shows the source file responsible for including the current header file and allows navigating through the include chain with a few mouse clicks:stack

Improved Find all References

We have also improved the Find Symbol Results window.  In VisualGDB 5.2 it can show variable assignments in a different color, distinguish references inside preprocessor macros and it’s now based on the WPF technology, making it much more responsive than the old window:refs

Download

You can download the preview version of VisualGDB 5.2 on the download page and explore the new features yourself. If you have any feedback on it, you are more then welcome to share it via our support form or send us an email.