You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A full-featured, super fast implementation of Shaun Lebron’s parinfer.
This repo has Vim, Neovim, and Kakoune plugins, and an Emacs plugin is available.
The Rust library can be called from other editors that can load dynamic libraries.
This plugin, unlike others available for Vim, implements "smart" mode.
Rather than switching between "paren" mode and "indent" mode, parinfer uses information about how the user is changing the file to decide what to do.
Re-source your kakrc or restart Kakoune. Then run :plug-install.
plug.kak will download, build and install plugin for you. Optionally
add cargo clean line to the do block to clean plugin from build
files, thus making it load a bit faster.
Manual
$ cd ~/my-projects
$ git clone git@github.com:eraserhd/parinfer-rust.git
$ cd parinfer-rust
$ make install
$ cargo build --release
$ cargo install
The CI server uses [Nix](https://nixos.org/nix/download.html) to make
reproducible build and test environments. It’s a good idea to run tests with
it.
$ nix-build release.nix # Build and test everything
$ cargo test # Run the native tests
$ cargo +nightly web test # Test the WebAssembly version
$ vim --clean -u tests/vim/run.vim # Test against locally-installed Vim
$ ( cd tests/kakoune && ./run.sh ) # Test against locally-installed Kakoune
$ nix-build release.nix -A vim-tests # Test against Nix Vim package
$ nix-build release.nix -A neovim-tests # Test against Nix Neovim package
$ nix-build release.nix -A kakoune-tests # Test against Nix Kakoune package
Vim tests are in a nice, readable format in tests/vim/test-cases.md.
Please add tests for any new features (or even old ones!).
You can set the VIM_TO_TEST environment variable to Vim’s path to test weird or different builds.
Contributors
This wouldn’t be possible without the work of others:
Shaun Lebron - Inventing parinfer and doing the math.
Case Nelson - Writing the nvim-parinfer, from which VimL code and some
inspiration was stolen.
Justin Barclay - Emacs module.
Michael Camilleri - User-defined comments.
Mitsuhiro Nakamura - Support for Common Lisp and Scheme.
ElKowar - User-defined string-delimiters and support for Yuck.