C++ project management
I tried Qt Creator to simplify my development experience for C++. There is a lot of things I liked about it:
- Shiny responsive GUI with bells and whistles
- Function arguments hint in the code editor
- Easy code navigation: go to declaration, find usages etc
- Integrated debugger
- Automated project management for CMake
And for sure the whole idea of getting project configured, built and debugged just out of the box is very attractive. However, I did encounter challenging things too:
- Generic projects still have to be configured manually (consider gradle build)
- Code completion may become unstable for some reason, showing errors in every line randomly
- There is no fuzzy search yet
- Catch C++ test framework isn’t well integrated (jump to the first error?)
- Not to mention I’m still more productive with neovim
Then the realization happened that we have had all this in Vim for quite a long
time, but it just needed to be set up manually. This may be a tedious and
distracting process. Luckily, it could be easily automated the way Qt Creator
handles generic projects. So meet cproj
, a system to handle generic C++
projects within my dotfiles:
-
ycm-update.sh will prepare a compact YouCompleteMe deployment with correct system includes in
~/.vim/includes.txt
-
cproj-init executed in project root will create a template directory
.cproj
withfiles
andcflags
in it -
cproj-scan executed in project root will create a compilation database in
.cproj.out
and add the project to rtags (it’s convenient to haverdm
socket-activated in systemd) -
Finally, YCM will load the same project settings!
So I’m likely to go further with both neovim for productivity and Qt Creator for curiosity and inspiration. But clearly Vim is still the best.