Update projectionist configs for cmake and compile_commands
Slightly refactor CMake projections
Reconfigure cmake projections
Split up projectionist config into multiple files
Now there is one file per "project type" for projectionist. This was
necessary as the projectionist_heuristics variable continued to grow.
This commit also improves support for C++ and CMake projects by
automatically detecting projects with a compile_commands.json file and
setting the 'path' variable based on the contents of that file.
Enhance C/C++ environment
* Set formatprg to use Google style if .clang-format file not found
* Create an indent file for C++ to use two spaces for indent (per
Google's style recommendations)
* For CMake projects, use projectionist to set makeprg to rebuild cmake
files and :Dispatch to run 'make'
* Tell ALE to use compile_commands.json if they're available
Change path for vim-projectionist
The full globbed path was causing really slow startup times in large
directories with no real benefit.
Only add include to path if header files are found
Improve and cleanup filetype plugins
* Combine C and C++ filetypes - having both was entirely redundant
* Add a tags ftplugin to make tags files act like tags browsers
* Add a few new projections for Cmake and C-family files
* Add a few new mappings:
- <Space>t for :tags
- <Space>r for :registers
- <Space>m for :marks
- <Space>M for :marks ABCDE...wxyz
[vim] Update plugin headers and guards
[vim] Add projection for vim runtime directory
Add rust configs for vim and zsh
Installs vim-polyglot to keep vim language specific features up-to-date
in between vim/nvim production releases. Also has the added benefit of
keeping vim and neovim language files consistent.