/pants.el

Front-end to the pants build system

Primary LanguageEmacs LispMIT LicenseMIT

pants.el

Description

This library provides an interface to pants, a fast, scalable build system.

Install

Get a copy of the repository:

git clone git@github.com:fcuny/pants.el.git

Then update your Emacs configuration:

(use-package pants
  :load-file "~/workspace/pants.el/pants.el"
  :bind (("C-c b" . pants-find-build-file)
         ("C-c r" . pants-run-binary)
         ("C-c t" . pants-run-test))
  :mode (("BUILD\\'" . pants-build-mode))
  :custom
  (pants-source-tree-root "/Users/fcuny/workspace/source")
  (pants-bury-compilation-buffer t)
  (pants-extra-args "-q"))

Configuration

There’s a few variables that you can set:

  • pants-completion-system: Which completion system to use. The possible values are Ivy, Ido and Helm. Ivy is the default one.
  • pants-source-tree-root: Path to the repository.
  • pants-ini: Name of the pants.ini file to use (default is pants.ini).
  • pants-exec-name: Path to the pants executable in the repository (default is pants)
  • pants-build-file: Name of the BUILD file to look for
  • pants-bury-compilation-buffer: Set to true if you want to bury the compilation buffer after running successfully a command
  • pants-extra-args: Optional arguments to use with every call to pants (for example: “-q”)
  • pants-exec-args: Optional arguments to the pants executable. The default is --no-color
  • pants-build-format-exec: Path to the `buildifier` executable. Required in order to format BUILD files.

Usage

Go to the closest BUILD file

Do m-x pants-find-build-file.

Run a binary target

Do m-x pants-run-binary. It will present a list of targets and let you select which one to run.

Run a test target

Do m-x pants-run-test. It will present a list of targets and let you select which one to run.

Jump to a REPL

Do m-x pants-run-python-repl. It will present a list of targets and create a REPL.

Format the BUILD file

Do m-x pants-build-fmt. It will format the BUILD file using `buildifier`.