aboutsummaryrefslogtreecommitdiffstats
path: root/editors
diff options
context:
space:
mode:
authortobik <tobik@FreeBSD.org>2019-01-27 01:03:48 +0800
committertobik <tobik@FreeBSD.org>2019-01-27 01:03:48 +0800
commit08ce2d713cf63874fb74fab27ac70cddfb94c36d (patch)
tree6d65a12d04c96773e17a4ce08d8c8490fd7952c4 /editors
parent61663a720858ce7536561db37336d73d3fa81442 (diff)
downloadfreebsd-ports-gnome-08ce2d713cf63874fb74fab27ac70cddfb94c36d.tar.gz
freebsd-ports-gnome-08ce2d713cf63874fb74fab27ac70cddfb94c36d.tar.zst
freebsd-ports-gnome-08ce2d713cf63874fb74fab27ac70cddfb94c36d.zip
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
Diffstat (limited to 'editors')
-rw-r--r--editors/Makefile1
-rw-r--r--editors/parinfer-rust/Makefile65
-rw-r--r--editors/parinfer-rust/distinfo51
-rw-r--r--editors/parinfer-rust/files/patch-plugin_parinfer.vim13
-rw-r--r--editors/parinfer-rust/pkg-descr18
5 files changed, 148 insertions, 0 deletions
diff --git a/editors/Makefile b/editors/Makefile
index e90a869bc672..ab37ff56edc0 100644
--- a/editors/Makefile
+++ b/editors/Makefile
@@ -207,6 +207,7 @@
SUBDIR += p5-Proc-InvokeEditor
SUBDIR += p5-Vimana
SUBDIR += paredit-mode.el
+ SUBDIR += parinfer-rust
SUBDIR += pdfedit
SUBDIR += pico-alpine
SUBDIR += picpas
diff --git a/editors/parinfer-rust/Makefile b/editors/parinfer-rust/Makefile
new file mode 100644
index 000000000000..fd5c9693fc60
--- /dev/null
+++ b/editors/parinfer-rust/Makefile
@@ -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>
diff --git a/editors/parinfer-rust/distinfo b/editors/parinfer-rust/distinfo
new file mode 100644
index 000000000000..3379c881f723
--- /dev/null
+++ b/editors/parinfer-rust/distinfo
@@ -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
diff --git a/editors/parinfer-rust/files/patch-plugin_parinfer.vim b/editors/parinfer-rust/files/patch-plugin_parinfer.vim
new file mode 100644
index 000000000000..4bd8e86250d9
--- /dev/null
+++ b/editors/parinfer-rust/files/patch-plugin_parinfer.vim
@@ -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')
diff --git a/editors/parinfer-rust/pkg-descr b/editors/parinfer-rust/pkg-descr
new file mode 100644
index 000000000000..e4148b533119
--- /dev/null
+++ b/editors/parinfer-rust/pkg-descr
@@ -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