JEP-based CMake support in the making.
This is a command line application implementing a JEP backend for CMake. It enables editors that have JEP-plugin installed to improve their CMake editing support beyong pure syntax highlighting.
- Parser for CMake files.
- Builds dictionary of user functions and macros.
- Code completion of commands (built-in and user functions and macros), from local and (directly or indirectly) imported modules.
- Code completion for all files in a project, including parent CMake files.
- Code completion for variables (respecting scope rules).
- Code completion for targets.
- Go to definition of commands, variables, targets.
- Error annotations.
- Renaming of user commands, variables, targets.
jep-cmake
can be installed in various ways. To run it requires an installed Python interpreter, version 3.3 or greater.
After installation, the used Python environment has a new command jep-cmake
, that will run the backend.
> git clone https://github.com/jep-project/jep-cmake.git
> cd jep-cmake
> pip install .
> pip install jep-cmake
See the JEP protocol for detailed instruction how to configure JEP via a .jep
file. In the most simple situation (jep-cmake
in path, ...) the following .jep
file in the root folder of your project that contains CMake files should be enough:
*.cmake,CMakeLists.txt:
jep-cmake
See jep-cmake -h
for available command line options:
> jep-cmake -h
usage: jep-cmake-script.py [-h] [--version {2.8.12,3.4}] [--builtin-cmake]
[--builtin-ctest] [--builtin-deprecated]
JEP backend providing CMake editing support.
optional arguments:
-h, --help show this help message and exit
--version {2.8.12,3.4}
CMake version to be supported, mainly used for
completion of built-in commands.
--builtin-cmake If specified, built-in CMake commands are part of code
completion.
--builtin-ctest If specified, built-in ctest commands are part of code
completion.
--builtin-deprecated If specified, built-in CMake commands that have been
deprecated are part of code completion.
The various built-in options are available to finetune the backend's interaction with the editor being used. Some editors already support code completion for built-in CMake commands. In that case it is more efficient remove them from the backends completion options (by not specifying the corresponding command line option).