New port: editors/parinfer-rust

A full-featured, super fast implementation of Shaun Lebron's parinfer.

Parinfer is a proof-of-concept editor mode for Lisp programming
languages.  It simplifies the way we write Lisp by auto-adjusting
parens when indentation changes and vice versa.  The hope is to
make basic Lisp-editing easier for newcomers and experts alike,
while still allowing existing plugins like Paredit to satisfy the
need for more advanced operations.

Parinfer-rust comes with plugins for Kakoune, Vim8, and Neovim.
The Rust library can be called from other editors that can load
dynamic libraries.

This plugin 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.

WWW: https://github.com/eraserhd/parinfer-rust
This commit is contained in:
Tobias Kortkamp 2019-01-26 17:03:48 +00:00
parent 3253cc52b0
commit 5083e3d632
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=491303
5 changed files with 148 additions and 0 deletions

View file

@ -207,6 +207,7 @@
SUBDIR += p5-Proc-InvokeEditor SUBDIR += p5-Proc-InvokeEditor
SUBDIR += p5-Vimana SUBDIR += p5-Vimana
SUBDIR += paredit-mode.el SUBDIR += paredit-mode.el
SUBDIR += parinfer-rust
SUBDIR += pdfedit SUBDIR += pdfedit
SUBDIR += pico-alpine SUBDIR += pico-alpine
SUBDIR += picpas SUBDIR += picpas

View file

@ -0,0 +1,65 @@
# $FreeBSD$
PORTNAME= parinfer-rust
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0-198
DISTVERSIONSUFFIX= -g506ae2b
CATEGORIES= editors
MAINTAINER= tobik@FreeBSD.org
COMMENT= Infer parentheses for Clojure, Lisp, and Scheme
LICENSE= ISCL
LICENSE_FILE= ${WRKSRC}/LICENSE.md
USES= cargo
USE_GITHUB= yes
GH_ACCOUNT= eraserhd
USE_LDCONFIG= yes
CARGO_CRATES= base-x-0.2.2 \
discard-1.0.3 \
dtoa-0.4.2 \
getopts-0.2.18 \
itoa-0.4.1 \
libc-0.2.40 \
proc-macro2-0.2.3 \
proc-macro2-0.3.8 \
quote-0.4.2 \
quote-0.5.2 \
serde-1.0.55 \
serde_derive-1.0.55 \
serde_json-1.0.17 \
stdweb-0.4.5 \
stdweb-derive-0.4.0 \
stdweb-internal-macros-0.1.0 \
syn-0.12.15 \
syn-0.13.10 \
unicode-segmentation-1.2.1 \
unicode-width-0.1.5 \
unicode-xid-0.1.0 \
winapi-0.3.6 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-x86_64-pc-windows-gnu-0.4.0
PLIST_FILES= bin/parinfer-rust \
lib/libparinfer_rust.so \
share/kak/rc/extra/parinfer.kak \
share/vim/vimfiles/doc/parinfer.txt \
share/vim/vimfiles/plugin/parinfer.vim
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/parinfer-rust
${INSTALL_LIB} ${CARGO_TARGET_DIR}/*/libparinfer_rust.so \
${STAGEDIR}${PREFIX}/lib
@${MKDIR} ${STAGEDIR}${PREFIX}/share/kak/rc/extra \
${STAGEDIR}${PREFIX}/share/vim/vimfiles/doc \
${STAGEDIR}${PREFIX}/share/vim/vimfiles/plugin
${INSTALL_DATA} ${WRKSRC}/rc/parinfer.kak \
${STAGEDIR}${PREFIX}/share/kak/rc/extra
${INSTALL_DATA} ${WRKSRC}/doc/parinfer.txt \
${STAGEDIR}${PREFIX}/share/vim/vimfiles/doc
${INSTALL_DATA} ${WRKSRC}/plugin/parinfer.vim \
${STAGEDIR}${PREFIX}/share/vim/vimfiles/plugin
.include <bsd.port.mk>

View file

@ -0,0 +1,51 @@
TIMESTAMP = 1548517117
SHA256 (rust/crates/base-x-0.2.2.tar.gz) = 2f59103b47307f76e03bef1633aec7fa9e29bfb5aa6daf5a334f94233c71f6c1
SIZE (rust/crates/base-x-0.2.2.tar.gz) = 9636
SHA256 (rust/crates/discard-1.0.3.tar.gz) = 9a9117502da3c5657cb8e2ca7ffcf52d659f00c78c5127d1ebadc2ebe76465be
SIZE (rust/crates/discard-1.0.3.tar.gz) = 4191
SHA256 (rust/crates/dtoa-0.4.2.tar.gz) = 09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab
SIZE (rust/crates/dtoa-0.4.2.tar.gz) = 14227
SHA256 (rust/crates/getopts-0.2.18.tar.gz) = 0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797
SIZE (rust/crates/getopts-0.2.18.tar.gz) = 18416
SHA256 (rust/crates/itoa-0.4.1.tar.gz) = c069bbec61e1ca5a596166e55dfe4773ff745c3d16b700013bcaff9a6df2c682
SIZE (rust/crates/itoa-0.4.1.tar.gz) = 10563
SHA256 (rust/crates/libc-0.2.40.tar.gz) = 6fd41f331ac7c5b8ac259b8bf82c75c0fb2e469bbf37d2becbba9a6a2221965b
SIZE (rust/crates/libc-0.2.40.tar.gz) = 327272
SHA256 (rust/crates/proc-macro2-0.2.3.tar.gz) = cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0
SIZE (rust/crates/proc-macro2-0.2.3.tar.gz) = 21558
SHA256 (rust/crates/proc-macro2-0.3.8.tar.gz) = 1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7
SIZE (rust/crates/proc-macro2-0.3.8.tar.gz) = 24412
SHA256 (rust/crates/quote-0.4.2.tar.gz) = 1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408
SIZE (rust/crates/quote-0.4.2.tar.gz) = 14756
SHA256 (rust/crates/quote-0.5.2.tar.gz) = 9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8
SIZE (rust/crates/quote-0.5.2.tar.gz) = 14982
SHA256 (rust/crates/serde-1.0.55.tar.gz) = 97f6a6c3caba0cf8f883b53331791036404ce3c1bd895961cf8bb2f8cecfd84b
SIZE (rust/crates/serde-1.0.55.tar.gz) = 68121
SHA256 (rust/crates/serde_derive-1.0.55.tar.gz) = f51b0ef935cf8a41a77bce553da1f8751a739b7ad82dd73669475a22e6ecedb0
SIZE (rust/crates/serde_derive-1.0.55.tar.gz) = 45154
SHA256 (rust/crates/serde_json-1.0.17.tar.gz) = f3ad6d546e765177cf3dded3c2e424a8040f870083a0e64064746b958ece9cb1
SIZE (rust/crates/serde_json-1.0.17.tar.gz) = 64689
SHA256 (rust/crates/stdweb-0.4.5.tar.gz) = 742b8202779433bf7a405bffe9921dd9bee497a46fb9024f5b6cfb92823c5843
SIZE (rust/crates/stdweb-0.4.5.tar.gz) = 162013
SHA256 (rust/crates/stdweb-derive-0.4.0.tar.gz) = 6aa46e9b38ea028a8a327ae6db35a486ace3eb834f5600bb3b6a71c0b6b1bd4b
SIZE (rust/crates/stdweb-derive-0.4.0.tar.gz) = 3660
SHA256 (rust/crates/stdweb-internal-macros-0.1.0.tar.gz) = b0bb3289dfd46bba44d80ed47a9b3d4c43bf6c1d7931b29e2fa86bd6697ccf59
SIZE (rust/crates/stdweb-internal-macros-0.1.0.tar.gz) = 4089
SHA256 (rust/crates/syn-0.12.15.tar.gz) = c97c05b8ebc34ddd6b967994d5c6e9852fa92f8b82b3858c39451f97346dcce5
SIZE (rust/crates/syn-0.12.15.tar.gz) = 132636
SHA256 (rust/crates/syn-0.13.10.tar.gz) = 77961dcdac942fa8bc033c16f3a790b311c8a27d00811b878ebd8cf9b7ba39d5
SIZE (rust/crates/syn-0.13.10.tar.gz) = 134334
SHA256 (rust/crates/unicode-segmentation-1.2.1.tar.gz) = aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1
SIZE (rust/crates/unicode-segmentation-1.2.1.tar.gz) = 68223
SHA256 (rust/crates/unicode-width-0.1.5.tar.gz) = 882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526
SIZE (rust/crates/unicode-width-0.1.5.tar.gz) = 15761
SHA256 (rust/crates/unicode-xid-0.1.0.tar.gz) = fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc
SIZE (rust/crates/unicode-xid-0.1.0.tar.gz) = 16000
SHA256 (rust/crates/winapi-0.3.6.tar.gz) = 92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0
SIZE (rust/crates/winapi-0.3.6.tar.gz) = 1029391
SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = 2918815
SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 2947998
SHA256 (eraserhd-parinfer-rust-v0.2.0-198-g506ae2b_GH0.tar.gz) = e6365486b7b94c51c3d04a83b1a0948eba18cbde42ed960ecd64f5e22d48e3cd
SIZE (eraserhd-parinfer-rust-v0.2.0-198-g506ae2b_GH0.tar.gz) = 274654

View file

@ -0,0 +1,13 @@
--- plugin/parinfer.vim.orig 2019-01-26 15:56:17 UTC
+++ plugin/parinfer.vim
@@ -9,6 +9,10 @@ if !exists('g:parinfer_force_balance')
endif
if !exists('g:parinfer_dylib_path')
+ let g:parinfer_dylib_path = 'libparinfer_rust.so'
+endif
+
+if !exists('g:parinfer_dylib_path')
if has('macunix')
let g:parinfer_dylib_path = expand('<sfile>:p:h:h'). '/target/release/libparinfer_rust.dylib'
elseif has('unix')

View file

@ -0,0 +1,18 @@
A full-featured, super fast implementation of Shaun Lebron's parinfer.
Parinfer is a proof-of-concept editor mode for Lisp programming
languages. It simplifies the way we write Lisp by auto-adjusting
parens when indentation changes and vice versa. The hope is to
make basic Lisp-editing easier for newcomers and experts alike,
while still allowing existing plugins like Paredit to satisfy the
need for more advanced operations.
Parinfer-rust comes with plugins for Kakoune, Vim8, and Neovim.
The Rust library can be called from other editors that can load
dynamic libraries.
This plugin 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.
WWW: https://github.com/eraserhd/parinfer-rust