jonbinney / cmake.vim

Incorporates the functionality of CMake into Vim.

Home Page:http://jalcine.github.io/cmake.vim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stories in Ready

With the power of gray skull, CMake support in Vim is born. This allows for CMake commands for building, installing, cleaning and invoking custom targets within Vim. It makes uses of vimux if found and can provide integrations for Syntastic and YouCompleteMe.


cmake.vim 0.3.0 is a Vim plugin that allows you to use CMake within Vim for your projects. This is alpha-grade software and may turn your CMake project into a cat-overrun Telnet session.

If lost, run :help cmake for a bit of guidance.

Requirements

At the time of writing, cmake.vim has been tested with Vim 7.3+ in nocp mode and CMake 2.8.

Installing

I recommending using Vundle to install plugins. The line necessary to add this plugin is as follows:

Bundle 'jalcine/cmake.vim`

Getting Started

After you installed the plugin, just cd into the directory where the top-level CMakeLists.txt can be found and run:

" Create a new binary directory for your clean project.
:CMakeCreateProject <build-dir-name>

" Build all of the targets.
:CMakeBuild

With that, you created (or re-configured in a vanilla-setup) a new binary directory and built the project.

Commands

cmake.vim defines a few methods for generic interaction with CMake. Check out :help cmake-methods for more information.

Options

In order for CMake to operate, it has to know where the build directory is located. This is done automatically by the plugin but it does need help in the event that you happen to build your CMake project in a sub-directory. Check out :help cmake-options for more information.

Integrations

See :help cmake-integrations for tips on integrations cmake.vim with other plug-ins like Syntastic or YouCompleteMe. Long story short, it's freaking awesome but could use some work. With this version, the integrations are now target-specific, allowing for fine-grained integration for every single file.

Known Issues

  • With the more recent changes to YouCompleteMe; it's become a bit difficult to dynamically add per-file flags. Right now, the best suggestion is to use the JSON compilation file in your .ycm_extra_conf.py to pass in all of the flags for your project.

  • Getting and setting variables is still rough around the edges.

To-Dos

  • Provide :CMakeBuildTarget that'd build the target provided. If a file is to be provided, find the target for that file and build the target it belongs to (restricted to source files). Implemented as :CMakeBuildCurrent.
    • Also for :CMakeCleanTarget since we can determine pre-target cleaning information.
  • Improve integration's use flag lookup and discovery on a per-target basis and a per-file basis (restricted to source files).
  • Pass an argument string to :CMakeCreateBuild.
  • Allow setting and getting values using :CMakeGetVar and :CMakeSetVar.
  • Expose cmake.vim's buffer commands only in worthy buffers.

License

This code is released and available under the MIT license. Multiply and be fruitful.

Author

I'm Jacky Alcine and I like code. A lot. I also chat a lot like a firehose so follow with caution!

Bitdeli Badge

About

Incorporates the functionality of CMake into Vim.

http://jalcine.github.io/cmake.vim

License:MIT License