Saturday September 19, 2020
Although QuasarDB is mostly run on Linux, most of the development team works primarily on Windows using Visual Studio. It’s because VS has the most advanced native debugger, sitting on top of the Windows Debug API.
In its latest version, VS 2019 comes with a lot, including clang-format, support for Boost.Test, C++ 20 support, integrated CMake support, git support, etc.
After asking the development team which extension they use the most, I narrowed the list to three, and I am now sharing this with you.
In VS 2019, clang-format is integrated. Auto formatting of the code source is a must that will save a lot of time during code reviews as formatting will be the same for everyone. That also means no more bikeshedding. Formatting is defined by the format file, once and for all, no discussion.
There is only one big thing missing: formatting must be called explicitly. With this extension, every time you save your file, clang-format is applied.
Get the extension here.
When debugging your program from Visual Studio, you may need to specify command-line arguments. That can be cumbersome as you need to go to a submenu inside the project’s properties to do that. The command line may be long, and you have only a small edit box for it.
The smart command enables you to break down each parameter into different items, group them, and enable/disable them independently at will.
Get it here.
While technically more a collection of extension than a single extension, the power tools had to make it to the list.
In the power tools, I like the tool to fix mixed tabs, the timestamp in the debug output windows and copy as HTML from the text editor, which is great if you need to copy/paste code samples for a presentation.
Get it here.
An archaism of C++ that grinds my gears the most is explicit header inclusion. It would be great to have a plugin that enables you to explore headers within the source code, displaying dependencies as a tree, and even allow you to re-arrange them. This way, you could quickly spot unnecessary includes and remove them, potentially shortening compilation time.
I know what you are saying; what about Visual Assist X? The most famous Visual Studio extension! Yes, I use it every day, and the autocompletion based on clang is just terrific. But it is not free of charge, and thus, cannot be in this list!