Pest mode provides a major mode for editing Pest files. It also contains a few advanced features.
Current stable version: 0.1.
Pest-mode features:
- Syntax highlighting
- Indentation
- Imenu integration
- xref integration
- Eldoc integration (requires
pesta
) - Flymake/flycheck integration for syntax checking (requires
pesta
) - Language studio, where you can experiment the grammar (requires
pesta
)
pest-mode
, flymake-pest
, and flycheck-pest
are now on MELPA.
- Just
M-x package-install
bothpest-mode
andflymake-pest
. - Install
pesta
(see below).
To manually install pest-mode
, download the file and put it in your load-path
, and write in your config file:
(autoload 'pest-mode "pest-mode")
(add-to-list #'auto-mode-alist '("\\.pest\\'" . pest-mode))
If you use use-package
and quelpa
, life is easier:
(use-package pest-mode
:quelpa (pest-mode :fetcher github :repo "ksqsf/pest-mode")
:mode "\\.pest\\'"
:hook (pest-mode . flymake-mode))
To use the more advanced features, you must have pesta
installed.
pesta
is now on crates.io, so just do
cargo install pesta --force
Or, if you prefer the manual way,
- Install the Rust toolchain.
cd pesta && cargo build --release
- Find the executable
pesta
undertarget/release
, and (optionally) put it in yourPATH
.
Note: you have to customize pest-pesta-executable
if pesta
is not
in your PATH
.
If you have added pest-mode
to auto-mode-alist
, then it should be enabled automatically on any .pest
file.
In a .pest
file,
-
pest-test-input
(default keybindingC-c C-t
): open a buffer to test the current grammar -
flymake-mode
: enable syntax checking
In a testing buffer,
-
pest-select-rule
(default keybindingC-c C-r
): select the start rule for all other purposes -
pest-analyze-input
(default keybindingC-c C-c
): analyze the input and report the structure -
flymake-mode
(enabled by default): enable syntax checking -
eldoc-mode
(enabled by default): enable displaying the parse tree path
All of the following require pesta
.