ref: 2da1dde5ea566f82ebe6532bc6d3b8670fd77ce8 dotfiles/vim/.vim/after/plugin/projectionist/cmake.vim -rw-r--r-- 1.8 KiB
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.