jep-cmake

CMake backend for JEP-enabled editors.


Keywords
jep, cmake, language, editor
License
MIT
Install
pip install jep-cmake==0.0.3

Documentation

jep-cmake

Build Status Coveralls Status PyPI Status

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.

Current state and features

  • 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.

Upcoming features and feature ideas

  • 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.

Installation

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.

From Source Code

> git clone https://github.com/jep-project/jep-cmake.git
> cd jep-cmake
> pip install .

From PyPI

> pip install jep-cmake

Usage

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).