aboutsummaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorAshish SHUKLA <ashish@FreeBSD.org>2021-09-18 07:11:13 +0000
committerAshish SHUKLA <ashish@FreeBSD.org>2021-09-18 07:13:40 +0000
commit430f5e1fdff4644bc9a7547ceea62a927cd61578 (patch)
tree37828211a217d193a95286503fc52079b179eb48 /editors
parent45943b854c98a2300f9c35dcf9b88d889fd33709 (diff)
downloadports-430f5e1fdff4644bc9a7547ceea62a927cd61578.tar.gz
ports-430f5e1fdff4644bc9a7547ceea62a927cd61578.zip
editors/helix: New port: Post-modern modal text editor
A kakoune / neovim inspired editor, written in Rust. Features: o Vim-like modal editing o Multiple selections o Built-in language server support o Smart, incremental syntax highlighting and code editing via tree-sitter WWW: https://helix-editor.com/
Diffstat (limited to 'editors')
-rw-r--r--editors/Makefile1
-rw-r--r--editors/helix/Makefile169
-rw-r--r--editors/helix/distinfo287
-rw-r--r--editors/helix/files/patch-helix-core_src_lib.rs11
-rw-r--r--editors/helix/pkg-descr14
-rw-r--r--editors/helix/pkg-plist78
6 files changed, 560 insertions, 0 deletions
diff --git a/editors/Makefile b/editors/Makefile
index 79b5cba41c67..22a8de2b9812 100644
--- a/editors/Makefile
+++ b/editors/Makefile
@@ -53,6 +53,7 @@
SUBDIR += gobby
SUBDIR += gomate
SUBDIR += gummi
+ SUBDIR += helix
SUBDIR += heme
SUBDIR += hexcurse
SUBDIR += hexedit
diff --git a/editors/helix/Makefile b/editors/helix/Makefile
new file mode 100644
index 000000000000..22302149e49c
--- /dev/null
+++ b/editors/helix/Makefile
@@ -0,0 +1,169 @@
+PORTNAME= helix
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.4.1
+CATEGORIES= editors
+
+MAINTAINER= ashish@FreeBSD.org
+COMMENT= Post-modern modal text editor
+
+LICENSE= MPL20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= cargo
+
+USE_GITHUB= yes
+GH_ACCOUNT= helix-editor
+GH_TUPLE= \
+ ikatyang:tree-sitter-toml:7cff70b:tree_sitter_toml/helix-syntax/languages/tree-sitter-toml \
+ tree-sitter:tree-sitter-agda:ca69cdf:tree_sitter_agda/helix-syntax/languages/tree-sitter-agda \
+ tree-sitter:tree-sitter-bash:a8eb5cb:tree_sitter_bash/helix-syntax/languages/tree-sitter-bash \
+ tree-sitter:tree-sitter-c-sharp:53a65a9:tree_sitter_c_sharp/helix-syntax/languages/tree-sitter-c-sharp \
+ tree-sitter:tree-sitter-c:f05e279:tree_sitter_c/helix-syntax/languages/tree-sitter-c \
+ tree-sitter:tree-sitter-cpp:c612124:tree_sitter_cpp/helix-syntax/languages/tree-sitter-cpp \
+ tree-sitter:tree-sitter-css:94e1023:tree_sitter_css/helix-syntax/languages/tree-sitter-css \
+ IceDragon200:tree-sitter-elixir:295e62a:tree_sitter_elixir/helix-syntax/languages/tree-sitter-elixir \
+ tree-sitter:tree-sitter-go:2a83dfd:tree_sitter_go/helix-syntax/languages/tree-sitter-go \
+ tree-sitter:tree-sitter-haskell:237f4eb:tree_sitter_haskell/helix-syntax/languages/tree-sitter-haskell \
+ tree-sitter:tree-sitter-html:d93af48:tree_sitter_html/helix-syntax/languages/tree-sitter-html \
+ tree-sitter:tree-sitter-java:bd6186c:tree_sitter_java/helix-syntax/languages/tree-sitter-java \
+ tree-sitter:tree-sitter-javascript:4a95461:tree_sitter_javascript/helix-syntax/languages/tree-sitter-javascript \
+ tree-sitter:tree-sitter-json:65bceef:tree_sitter_json/helix-syntax/languages/tree-sitter-json \
+ tree-sitter:tree-sitter-julia:0ba7a24:tree_sitter_julia/helix-syntax/languages/tree-sitter-julia \
+ latex-lsp:tree-sitter-latex:7f72066:tree_sitter_latex/helix-syntax/languages/tree-sitter-latex \
+ cstrahan:tree-sitter-nix:50f38ce:tree_sitter_nix/helix-syntax/languages/tree-sitter-nix \
+ tree-sitter:tree-sitter-php:0d63eaf:tree_sitter_php/helix-syntax/languages/tree-sitter-php \
+ tree-sitter:tree-sitter-python:d6210ce:tree_sitter_python/helix-syntax/languages/tree-sitter-python \
+ tree-sitter:tree-sitter-ruby:dfff673:tree_sitter_ruby/helix-syntax/languages/tree-sitter-ruby \
+ tree-sitter:tree-sitter-rust:a360da0:tree_sitter_rust/helix-syntax/languages/tree-sitter-rust \
+ tree-sitter:tree-sitter-scala:fb23ed9:tree_sitter_scala/helix-syntax/languages/tree-sitter-scala \
+ tree-sitter:tree-sitter-swift:a22fa5e:tree_sitter_swift/helix-syntax/languages/tree-sitter-swift \
+ tree-sitter:tree-sitter-typescript:3e897ea:tree_sitter_typescript/helix-syntax/languages/tree-sitter-typescript
+CARGO_CARGOTOML= ${WRKSRC}/helix-term/Cargo.toml
+CARGO_INSTALL_PATH= ./helix-term
+CARGO_CRATES= aho-corasick-0.7.18 \
+ anyhow-1.0.42 \
+ arc-swap-1.3.0 \
+ autocfg-1.0.1 \
+ bitflags-1.3.1 \
+ bstr-0.2.16 \
+ bytes-1.0.1 \
+ cassowary-0.3.0 \
+ cc-1.0.69 \
+ cfg-if-1.0.0 \
+ chardetng-0.1.14 \
+ chrono-0.4.19 \
+ clipboard-win-4.2.1 \
+ crossbeam-utils-0.8.5 \
+ crossterm-0.20.0 \
+ crossterm_winapi-0.8.0 \
+ dirs-next-2.0.0 \
+ dirs-sys-next-0.1.2 \
+ either-1.6.1 \
+ encoding_rs-0.8.28 \
+ error-code-2.3.0 \
+ etcetera-0.3.2 \
+ fern-0.6.0 \
+ fnv-1.0.7 \
+ form_urlencoded-1.0.1 \
+ futf-0.1.4 \
+ futures-core-0.3.16 \
+ futures-executor-0.3.16 \
+ futures-task-0.3.16 \
+ futures-util-0.3.16 \
+ fuzzy-matcher-0.3.7 \
+ getrandom-0.2.3 \
+ globset-0.4.8 \
+ hermit-abi-0.1.19 \
+ idna-0.2.3 \
+ ignore-0.4.18 \
+ instant-0.1.10 \
+ itoa-0.4.7 \
+ jsonrpc-core-18.0.0 \
+ lazy_static-1.4.0 \
+ libc-0.2.99 \
+ libloading-0.7.0 \
+ lock_api-0.4.4 \
+ log-0.4.14 \
+ lsp-types-0.89.2 \
+ mac-0.1.1 \
+ matches-0.1.9 \
+ memchr-2.4.0 \
+ mio-0.7.13 \
+ miow-0.3.7 \
+ new_debug_unreachable-1.0.4 \
+ ntapi-0.3.6 \
+ num-integer-0.1.44 \
+ num-traits-0.2.14 \
+ num_cpus-1.13.0 \
+ once_cell-1.8.0 \
+ parking_lot-0.11.1 \
+ parking_lot_core-0.8.3 \
+ percent-encoding-2.1.0 \
+ pin-project-lite-0.2.7 \
+ pin-utils-0.1.0 \
+ proc-macro2-1.0.28 \
+ pulldown-cmark-0.8.0 \
+ quickcheck-1.0.3 \
+ quote-1.0.9 \
+ rand-0.8.4 \
+ rand_core-0.6.3 \
+ redox_syscall-0.2.10 \
+ redox_users-0.4.0 \
+ regex-1.5.4 \
+ regex-syntax-0.6.25 \
+ ropey-1.3.1 \
+ ryu-1.0.5 \
+ same-file-1.0.6 \
+ scopeguard-1.1.0 \
+ serde-1.0.127 \
+ serde_derive-1.0.127 \
+ serde_json-1.0.66 \
+ serde_repr-0.1.7 \
+ signal-hook-0.3.9 \
+ signal-hook-mio-0.2.1 \
+ signal-hook-registry-1.4.0 \
+ signal-hook-tokio-0.3.0 \
+ similar-1.3.0 \
+ slab-0.4.4 \
+ slotmap-1.0.5 \
+ smallvec-1.6.1 \
+ str-buf-1.0.5 \
+ syn-1.0.74 \
+ tendril-0.4.2 \
+ thiserror-1.0.26 \
+ thiserror-impl-1.0.26 \
+ thread_local-1.1.3 \
+ threadpool-1.8.1 \
+ tinyvec-1.3.1 \
+ tinyvec_macros-0.1.0 \
+ tokio-1.10.0 \
+ tokio-macros-1.3.0 \
+ tokio-stream-0.1.7 \
+ toml-0.5.8 \
+ tree-sitter-0.19.5 \
+ unicase-2.6.0 \
+ unicode-bidi-0.3.6 \
+ unicode-general-category-0.4.0 \
+ unicode-normalization-0.1.19 \
+ unicode-segmentation-1.8.0 \
+ unicode-width-0.1.8 \
+ unicode-xid-0.2.2 \
+ url-2.2.2 \
+ utf-8-0.7.6 \
+ version_check-0.9.3 \
+ walkdir-2.3.2 \
+ wasi-0.10.2+wasi-snapshot-preview1 \
+ which-4.2.2 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-util-0.1.5 \
+ winapi-x86_64-pc-windows-gnu-0.4.0
+
+post-patch:
+ ${GREP} -F -Rl '%%DATADIR%%' ${WRKSRC}/ | ${XARGS} ${REINPLACE_CMD} -e 's,%%DATADIR%%,${DATADIR},'
+
+post-install:
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+ cd ${WRKSRC} && ${COPYTREE_SHARE} runtime ${STAGEDIR}${DATADIR}
+
+.include <bsd.port.mk>
diff --git a/editors/helix/distinfo b/editors/helix/distinfo
new file mode 100644
index 000000000000..9432502ad117
--- /dev/null
+++ b/editors/helix/distinfo
@@ -0,0 +1,287 @@
+TIMESTAMP = 1631911211
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/anyhow-1.0.42.crate) = 595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486
+SIZE (rust/crates/anyhow-1.0.42.crate) = 34827
+SHA256 (rust/crates/arc-swap-1.3.0.crate) = e906254e445520903e7fc9da4f709886c84ae4bc4ddaf0e093188d66df4dc820
+SIZE (rust/crates/arc-swap-1.3.0.crate) = 63680
+SHA256 (rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
+SIZE (rust/crates/autocfg-1.0.1.crate) = 12908
+SHA256 (rust/crates/bitflags-1.3.1.crate) = 2da1976d75adbe5fbc88130ecd119529cf1cc6a93ae1546d8696ee66f0d21af1
+SIZE (rust/crates/bitflags-1.3.1.crate) = 22434
+SHA256 (rust/crates/bstr-0.2.16.crate) = 90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279
+SIZE (rust/crates/bstr-0.2.16.crate) = 330346
+SHA256 (rust/crates/bytes-1.0.1.crate) = b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040
+SIZE (rust/crates/bytes-1.0.1.crate) = 48142
+SHA256 (rust/crates/cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53
+SIZE (rust/crates/cassowary-0.3.0.crate) = 22876
+SHA256 (rust/crates/cc-1.0.69.crate) = e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2
+SIZE (rust/crates/cc-1.0.69.crate) = 56044
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chardetng-0.1.14.crate) = 36a5a2ca47925d19fb6835f53b3e70dec0d25659211c8ee5cc784f1fd6838f9c
+SIZE (rust/crates/chardetng-0.1.14.crate) = 55972
+SHA256 (rust/crates/chrono-0.4.19.crate) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73
+SIZE (rust/crates/chrono-0.4.19.crate) = 155663
+SHA256 (rust/crates/clipboard-win-4.2.1.crate) = 4e4ea1881992efc993e4dc50a324cdbd03216e41bdc8385720ff47efc9bd2ca8
+SIZE (rust/crates/clipboard-win-4.2.1.crate) = 12142
+SHA256 (rust/crates/crossbeam-utils-0.8.5.crate) = d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db
+SIZE (rust/crates/crossbeam-utils-0.8.5.crate) = 38414
+SHA256 (rust/crates/crossterm-0.20.0.crate) = c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d
+SIZE (rust/crates/crossterm-0.20.0.crate) = 103025
+SHA256 (rust/crates/crossterm_winapi-0.8.0.crate) = 3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507
+SIZE (rust/crates/crossterm_winapi-0.8.0.crate) = 15531
+SHA256 (rust/crates/dirs-next-2.0.0.crate) = b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1
+SIZE (rust/crates/dirs-next-2.0.0.crate) = 11689
+SHA256 (rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d
+SIZE (rust/crates/dirs-sys-next-0.1.2.crate) = 10681
+SHA256 (rust/crates/either-1.6.1.crate) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457
+SIZE (rust/crates/either-1.6.1.crate) = 13641
+SHA256 (rust/crates/encoding_rs-0.8.28.crate) = 80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065
+SIZE (rust/crates/encoding_rs-0.8.28.crate) = 1368577
+SHA256 (rust/crates/error-code-2.3.0.crate) = b5115567ac25674e0043e472be13d14e537f37ea8aa4bdc4aef0c89add1db1ff
+SIZE (rust/crates/error-code-2.3.0.crate) = 5327
+SHA256 (rust/crates/etcetera-0.3.2.crate) = 016b04fd1e94fb833d432634245c9bb61cf1c7409668a0e7d4c3ab00c5172dec
+SIZE (rust/crates/etcetera-0.3.2.crate) = 11102
+SHA256 (rust/crates/fern-0.6.0.crate) = 8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065
+SIZE (rust/crates/fern-0.6.0.crate) = 299856
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191
+SIZE (rust/crates/form_urlencoded-1.0.1.crate) = 8773
+SHA256 (rust/crates/futf-0.1.4.crate) = 7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b
+SIZE (rust/crates/futf-0.1.4.crate) = 11341
+SHA256 (rust/crates/futures-core-0.3.16.crate) = af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99
+SIZE (rust/crates/futures-core-0.3.16.crate) = 14486
+SHA256 (rust/crates/futures-executor-0.3.16.crate) = 4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c
+SIZE (rust/crates/futures-executor-0.3.16.crate) = 17104
+SHA256 (rust/crates/futures-task-0.3.16.crate) = bbe54a98670017f3be909561f6ad13e810d9a51f3f061b902062ca3da80799f2
+SIZE (rust/crates/futures-task-0.3.16.crate) = 11712
+SHA256 (rust/crates/futures-util-0.3.16.crate) = 67eb846bfd58e44a8481a00049e82c43e0ccb5d61f8dc071057cb19249dd4d78
+SIZE (rust/crates/futures-util-0.3.16.crate) = 144642
+SHA256 (rust/crates/fuzzy-matcher-0.3.7.crate) = 54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94
+SIZE (rust/crates/fuzzy-matcher-0.3.7.crate) = 18047
+SHA256 (rust/crates/getrandom-0.2.3.crate) = 7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753
+SIZE (rust/crates/getrandom-0.2.3.crate) = 26261
+SHA256 (rust/crates/globset-0.4.8.crate) = 10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd
+SIZE (rust/crates/globset-0.4.8.crate) = 22886
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/idna-0.2.3.crate) = 418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8
+SIZE (rust/crates/idna-0.2.3.crate) = 271023
+SHA256 (rust/crates/ignore-0.4.18.crate) = 713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d
+SIZE (rust/crates/ignore-0.4.18.crate) = 53174
+SHA256 (rust/crates/instant-0.1.10.crate) = bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d
+SIZE (rust/crates/instant-0.1.10.crate) = 5218
+SHA256 (rust/crates/itoa-0.4.7.crate) = dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736
+SIZE (rust/crates/itoa-0.4.7.crate) = 12099
+SHA256 (rust/crates/jsonrpc-core-18.0.0.crate) = 14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb
+SIZE (rust/crates/jsonrpc-core-18.0.0.crate) = 16010
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.99.crate) = a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765
+SIZE (rust/crates/libc-0.2.99.crate) = 524997
+SHA256 (rust/crates/libloading-0.7.0.crate) = 6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a
+SIZE (rust/crates/libloading-0.7.0.crate) = 26216
+SHA256 (rust/crates/lock_api-0.4.4.crate) = 0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb
+SIZE (rust/crates/lock_api-0.4.4.crate) = 20356
+SHA256 (rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710
+SIZE (rust/crates/log-0.4.14.crate) = 34582
+SHA256 (rust/crates/lsp-types-0.89.2.crate) = 852e0dedfd52cc32325598b2631e0eba31b7b708959676a9f837042f276b09a2
+SIZE (rust/crates/lsp-types-0.89.2.crate) = 49933
+SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4
+SIZE (rust/crates/mac-0.1.1.crate) = 4838
+SHA256 (rust/crates/matches-0.1.9.crate) = a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f
+SIZE (rust/crates/matches-0.1.9.crate) = 2246
+SHA256 (rust/crates/memchr-2.4.0.crate) = b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc
+SIZE (rust/crates/memchr-2.4.0.crate) = 63392
+SHA256 (rust/crates/mio-0.7.13.crate) = 8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16
+SIZE (rust/crates/mio-0.7.13.crate) = 87027
+SHA256 (rust/crates/miow-0.3.7.crate) = b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21
+SIZE (rust/crates/miow-0.3.7.crate) = 24563
+SHA256 (rust/crates/new_debug_unreachable-1.0.4.crate) = e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54
+SIZE (rust/crates/new_debug_unreachable-1.0.4.crate) = 2561
+SHA256 (rust/crates/ntapi-0.3.6.crate) = 3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44
+SIZE (rust/crates/ntapi-0.3.6.crate) = 127221
+SHA256 (rust/crates/num-integer-0.1.44.crate) = d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db
+SIZE (rust/crates/num-integer-0.1.44.crate) = 22216
+SHA256 (rust/crates/num-traits-0.2.14.crate) = 9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290
+SIZE (rust/crates/num-traits-0.2.14.crate) = 45476
+SHA256 (rust/crates/num_cpus-1.13.0.crate) = 05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3
+SIZE (rust/crates/num_cpus-1.13.0.crate) = 14704
+SHA256 (rust/crates/once_cell-1.8.0.crate) = 692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56
+SIZE (rust/crates/once_cell-1.8.0.crate) = 28925
+SHA256 (rust/crates/parking_lot-0.11.1.crate) = 6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb
+SIZE (rust/crates/parking_lot-0.11.1.crate) = 39854
+SHA256 (rust/crates/parking_lot_core-0.8.3.crate) = fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018
+SIZE (rust/crates/parking_lot_core-0.8.3.crate) = 32147
+SHA256 (rust/crates/percent-encoding-2.1.0.crate) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e
+SIZE (rust/crates/percent-encoding-2.1.0.crate) = 9748
+SHA256 (rust/crates/pin-project-lite-0.2.7.crate) = 8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443
+SIZE (rust/crates/pin-project-lite-0.2.7.crate) = 27212
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/proc-macro2-1.0.28.crate) = 5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612
+SIZE (rust/crates/proc-macro2-1.0.28.crate) = 38732
+SHA256 (rust/crates/pulldown-cmark-0.8.0.crate) = ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8
+SIZE (rust/crates/pulldown-cmark-0.8.0.crate) = 106330
+SHA256 (rust/crates/quickcheck-1.0.3.crate) = 588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6
+SIZE (rust/crates/quickcheck-1.0.3.crate) = 28069
+SHA256 (rust/crates/quote-1.0.9.crate) = c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7
+SIZE (rust/crates/quote-1.0.9.crate) = 25042
+SHA256 (rust/crates/rand-0.8.4.crate) = 2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8
+SIZE (rust/crates/rand-0.8.4.crate) = 87406
+SHA256 (rust/crates/rand_core-0.6.3.crate) = d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7
+SIZE (rust/crates/rand_core-0.6.3.crate) = 21938
+SHA256 (rust/crates/redox_syscall-0.2.10.crate) = 8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff
+SIZE (rust/crates/redox_syscall-0.2.10.crate) = 23582
+SHA256 (rust/crates/redox_users-0.4.0.crate) = 528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64
+SIZE (rust/crates/redox_users-0.4.0.crate) = 13023
+SHA256 (rust/crates/regex-1.5.4.crate) = d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461
+SIZE (rust/crates/regex-1.5.4.crate) = 236581
+SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b
+SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293
+SHA256 (rust/crates/ropey-1.3.1.crate) = 9150aff6deb25b20ed110889f070a678bcd1033e46e5e9d6fb1abeab17947f28
+SIZE (rust/crates/ropey-1.3.1.crate) = 111240
+SHA256 (rust/crates/ryu-1.0.5.crate) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e
+SIZE (rust/crates/ryu-1.0.5.crate) = 49570
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+SHA256 (rust/crates/serde-1.0.127.crate) = f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8
+SIZE (rust/crates/serde-1.0.127.crate) = 75162
+SHA256 (rust/crates/serde_derive-1.0.127.crate) = a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc
+SIZE (rust/crates/serde_derive-1.0.127.crate) = 54201
+SHA256 (rust/crates/serde_json-1.0.66.crate) = 336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127
+SIZE (rust/crates/serde_json-1.0.66.crate) = 115121
+SHA256 (rust/crates/serde_repr-0.1.7.crate) = 98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5
+SIZE (rust/crates/serde_repr-0.1.7.crate) = 10173
+SHA256 (rust/crates/signal-hook-0.3.9.crate) = 470c5a6397076fae0094aaf06a08e6ba6f37acb77d3b1b91ea92b4d6c8650c39
+SIZE (rust/crates/signal-hook-0.3.9.crate) = 48416
+SHA256 (rust/crates/signal-hook-mio-0.2.1.crate) = 29fd5867f1c4f2c5be079aee7a2adf1152ebb04a4bc4d341f504b7dece607ed4
+SIZE (rust/crates/signal-hook-mio-0.2.1.crate) = 8893
+SHA256 (rust/crates/signal-hook-registry-1.4.0.crate) = e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0
+SIZE (rust/crates/signal-hook-registry-1.4.0.crate) = 17912
+SHA256 (rust/crates/signal-hook-tokio-0.3.0.crate) = f6c5d32165ff8b94e68e7b3bdecb1b082e958c22434b363482cfb89dcd6f3ff8
+SIZE (rust/crates/signal-hook-tokio-0.3.0.crate) = 8011
+SHA256 (rust/crates/similar-1.3.0.crate) = 1ad1d488a557b235fc46dae55512ffbfc429d2482b08b4d9435ab07384ca8aec
+SIZE (rust/crates/similar-1.3.0.crate) = 50316
+SHA256 (rust/crates/slab-0.4.4.crate) = c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590
+SIZE (rust/crates/slab-0.4.4.crate) = 15725
+SHA256 (rust/crates/slotmap-1.0.5.crate) = a952280edbecfb1d4bd3cf2dbc309dc6ab523e53487c438ae21a6df09fe84bc4
+SIZE (rust/crates/slotmap-1.0.5.crate) = 58363
+SHA256 (rust/crates/smallvec-1.6.1.crate) = fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e
+SIZE (rust/crates/smallvec-1.6.1.crate) = 26444
+SHA256 (rust/crates/str-buf-1.0.5.crate) = d44a3643b4ff9caf57abcee9c2c621d6c03d9135e0d8b589bd9afb5992cb176a
+SIZE (rust/crates/str-buf-1.0.5.crate) = 3852
+SHA256 (rust/crates/syn-1.0.74.crate) = 1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c
+SIZE (rust/crates/syn-1.0.74.crate) = 232974
+SHA256 (rust/crates/tendril-0.4.2.crate) = a9ef557cb397a4f0a5a3a628f06515f78563f2209e64d47055d9dc6052bf5e33
+SIZE (rust/crates/tendril-0.4.2.crate) = 37138
+SHA256 (rust/crates/thiserror-1.0.26.crate) = 93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2
+SIZE (rust/crates/thiserror-1.0.26.crate) = 16711
+SHA256 (rust/crates/thiserror-impl-1.0.26.crate) = 060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745
+SIZE (rust/crates/thiserror-impl-1.0.26.crate) = 13431
+SHA256 (rust/crates/thread_local-1.1.3.crate) = 8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd
+SIZE (rust/crates/thread_local-1.1.3.crate) = 13111
+SHA256 (rust/crates/threadpool-1.8.1.crate) = d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa
+SIZE (rust/crates/threadpool-1.8.1.crate) = 14408
+SHA256 (rust/crates/tinyvec-1.3.1.crate) = 848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338
+SIZE (rust/crates/tinyvec-1.3.1.crate) = 42386
+SHA256 (rust/crates/tinyvec_macros-0.1.0.crate) = cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c
+SIZE (rust/crates/tinyvec_macros-0.1.0.crate) = 1817
+SHA256 (rust/crates/tokio-1.10.0.crate) = 01cf844b23c6131f624accf65ce0e4e9956a8bb329400ea5bcc26ae3a5c20b0b
+SIZE (rust/crates/tokio-1.10.0.crate) = 509770
+SHA256 (rust/crates/tokio-macros-1.3.0.crate) = 54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110
+SIZE (rust/crates/tokio-macros-1.3.0.crate) = 7876
+SHA256 (rust/crates/tokio-stream-0.1.7.crate) = 7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f
+SIZE (rust/crates/tokio-stream-0.1.7.crate) = 30323
+SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa
+SIZE (rust/crates/toml-0.5.8.crate) = 54219
+SHA256 (rust/crates/tree-sitter-0.19.5.crate) = ad726ec26496bf4c083fff0f43d4eb3a2ad1bba305323af5ff91383c0b6ecac0
+SIZE (rust/crates/tree-sitter-0.19.5.crate) = 125205
+SHA256 (rust/crates/unicase-2.6.0.crate) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6
+SIZE (rust/crates/unicase-2.6.0.crate) = 23478
+SHA256 (rust/crates/unicode-bidi-0.3.6.crate) = 246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085
+SIZE (rust/crates/unicode-bidi-0.3.6.crate) = 33737
+SHA256 (rust/crates/unicode-general-category-0.4.0.crate) = 07547e3ee45e28326cc23faac56d44f58f16ab23e413db526debce3b0bfd2742
+SIZE (rust/crates/unicode-general-category-0.4.0.crate) = 34362
+SHA256 (rust/crates/unicode-normalization-0.1.19.crate) = d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9
+SIZE (rust/crates/unicode-normalization-0.1.19.crate) = 107353
+SHA256 (rust/crates/unicode-segmentation-1.8.0.crate) = 8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b
+SIZE (rust/crates/unicode-segmentation-1.8.0.crate) = 94011
+SHA256 (rust/crates/unicode-width-0.1.8.crate) = 9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3
+SIZE (rust/crates/unicode-width-0.1.8.crate) = 16732
+SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
+SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955
+SHA256 (rust/crates/url-2.2.2.crate) = a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c
+SIZE (rust/crates/url-2.2.2.crate) = 68555
+SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
+SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
+SHA256 (rust/crates/version_check-0.9.3.crate) = 5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe
+SIZE (rust/crates/version_check-0.9.3.crate) = 12547
+SHA256 (rust/crates/walkdir-2.3.2.crate) = 808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56
+SIZE (rust/crates/walkdir-2.3.2.crate) = 23516
+SHA256 (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6
+SIZE (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = 27505
+SHA256 (rust/crates/which-4.2.2.crate) = ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9
+SIZE (rust/crates/which-4.2.2.crate) = 8589
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (helix-editor-helix-v0.4.1_GH0.tar.gz) = 02606bd1a74ba96929eb72176c0b2d45dffff64b742fdd2c51382434a96b831c
+SIZE (helix-editor-helix-v0.4.1_GH0.tar.gz) = 1329936
+SHA256 (ikatyang-tree-sitter-toml-7cff70b_GH0.tar.gz) = f8a0953b16b86817de7d279d3c66dec7e5917fd3d4fc62f15966793265587f5f
+SIZE (ikatyang-tree-sitter-toml-7cff70b_GH0.tar.gz) = 162322
+SHA256 (tree-sitter-tree-sitter-agda-ca69cdf_GH0.tar.gz) = 5013bfe4b3820e87124c112f9860a18851d7a326ddae503c615f98841794754a
+SIZE (tree-sitter-tree-sitter-agda-ca69cdf_GH0.tar.gz) = 656378
+SHA256 (tree-sitter-tree-sitter-bash-a8eb5cb_GH0.tar.gz) = 5719dca559b68eef2cd631bb447f6c31576bb4e544353e55366da801058ab9bf
+SIZE (tree-sitter-tree-sitter-bash-a8eb5cb_GH0.tar.gz) = 187626
+SHA256 (tree-sitter-tree-sitter-c-sharp-53a65a9_GH0.tar.gz) = 5fd0903928a3e9b8b74c6f1157b1daa6c96b9f84702f26d620710463d4077d05
+SIZE (tree-sitter-tree-sitter-c-sharp-53a65a9_GH0.tar.gz) = 832285
+SHA256 (tree-sitter-tree-sitter-c-f05e279_GH0.tar.gz) = 6aedcdd74e622977a3e27cd0e8be94d2583c848005d24aec7cd199de5263cb63
+SIZE (tree-sitter-tree-sitter-c-f05e279_GH0.tar.gz) = 226343
+SHA256 (tree-sitter-tree-sitter-cpp-c612124_GH0.tar.gz) = 80c27098e4ada5e785839c111e77a555f719bd98424df4c6b564dc61635fc3f1
+SIZE (tree-sitter-tree-sitter-cpp-c612124_GH0.tar.gz) = 498675
+SHA256 (tree-sitter-tree-sitter-css-94e1023_GH0.tar.gz) = c0c69306a7d2769eadfbd049e8caf46366a857024eaa60a3a0bd2cf3935e3f7c
+SIZE (tree-sitter-tree-sitter-css-94e1023_GH0.tar.gz) = 80669
+SHA256 (IceDragon200-tree-sitter-elixir-295e62a_GH0.tar.gz) = bb6c5d32f43244c6ec760a50da6430fcab0a5ae2c1b3b7280874d65a640e89c7
+SIZE (IceDragon200-tree-sitter-elixir-295e62a_GH0.tar.gz) = 699838
+SHA256 (tree-sitter-tree-sitter-go-2a83dfd_GH0.tar.gz) = 473f53a4a10a8fbc9c545eb19a848bfd5713d126223a6fba4fb89eea9a4224aa
+SIZE (tree-sitter-tree-sitter-go-2a83dfd_GH0.tar.gz) = 159938
+SHA256 (tree-sitter-tree-sitter-haskell-237f4eb_GH0.tar.gz) = e5da0ca9964f0652646f4614c4f4db2844cfcdf317f69c93a8e460621f8ce52c
+SIZE (tree-sitter-tree-sitter-haskell-237f4eb_GH0.tar.gz) = 831383
+SHA256 (tree-sitter-tree-sitter-html-d93af48_GH0.tar.gz) = 7092009c659e3edf7bb05d18cc2d9faad18b431281b4dba24353ae62f0fa3eef
+SIZE (tree-sitter-tree-sitter-html-d93af48_GH0.tar.gz) = 18784
+SHA256 (tree-sitter-tree-sitter-java-bd6186c_GH0.tar.gz) = 16dcd873e1152a61a3d5c5eb32c6e0f4ec2efae9533457e66903b36391506217
+SIZE (tree-sitter-tree-sitter-java-bd6186c_GH0.tar.gz) = 145461
+SHA256 (tree-sitter-tree-sitter-javascript-4a95461_GH0.tar.gz) = ccf99bb4c5f5d1322e76270e6d4f7505950e3f1622069834d52ec4e9044deadf
+SIZE (tree-sitter-tree-sitter-javascript-4a95461_GH0.tar.gz) = 261307
+SHA256 (tree-sitter-tree-sitter-json-65bceef_GH0.tar.gz) = c9bf61dc93c266fae830a58e4bbd6976ad81ad7a0d3f701f07979dadf7229a89
+SIZE (tree-sitter-tree-sitter-json-65bceef_GH0.tar.gz) = 11267
+SHA256 (tree-sitter-tree-sitter-julia-0ba7a24_GH0.tar.gz) = 96473637d7238ef4e1bd610cb14550fb7890af206744828c593f8aefaa4eb13b
+SIZE (tree-sitter-tree-sitter-julia-0ba7a24_GH0.tar.gz) = 591867
+SHA256 (latex-lsp-tree-sitter-latex-7f72066_GH0.tar.gz) = e0511b260027f075b65852de03357994975e9815959e8f2fad2718284769a2ca
+SIZE (latex-lsp-tree-sitter-latex-7f72066_GH0.tar.gz) = 1691328
+SHA256 (cstrahan-tree-sitter-nix-50f38ce_GH0.tar.gz) = ace52415e0f9f035500ab345fd495b3d07ef3c545483014585368f54d7ab164c
+SIZE (cstrahan-tree-sitter-nix-50f38ce_GH0.tar.gz) = 34800
+SHA256 (tree-sitter-tree-sitter-php-0d63eaf_GH0.tar.gz) = df2218af6b34432e0e7b3c14a09f560e1e5de8eedbca3227dc486c79588400f4
+SIZE (tree-sitter-tree-sitter-php-0d63eaf_GH0.tar.gz) = 158473
+SHA256 (tree-sitter-tree-sitter-python-d6210ce_GH0.tar.gz) = 6ac413b754c9095257e3bad530730d58634295c9891524e977d4c1a9547772ee
+SIZE (tree-sitter-tree-sitter-python-d6210ce_GH0.tar.gz) = 140916
+SHA256 (tree-sitter-tree-sitter-ruby-dfff673_GH0.tar.gz) = 5dda8872d81234b17e5c896b0ae73642561e60db4424612e7bd6295ccffb1e31
+SIZE (tree-sitter-tree-sitter-ruby-dfff673_GH0.tar.gz) = 324108
+SHA256 (tree-sitter-tree-sitter-rust-a360da0_GH0.tar.gz) = a6ae41771375e3db0912343e930cd649267f1752e65cd0d15d733aaaf0f668fb
+SIZE (tree-sitter-tree-sitter-rust-a360da0_GH0.tar.gz) = 301148
+SHA256 (tree-sitter-tree-sitter-scala-fb23ed9_GH0.tar.gz) = 5f3c4c22afd6c48ef2207f9fb0bf7c9a5dad2f85eacbc576d7f56428c1ddb38d
+SIZE (tree-sitter-tree-sitter-scala-fb23ed9_GH0.tar.gz) = 142529
+SHA256 (tree-sitter-tree-sitter-swift-a22fa5e_GH0.tar.gz) = 74b9c3f0ebf1ba80b19480f53a226db909e9dd70fb1d0f767353b4b6a2c2a82a
+SIZE (tree-sitter-tree-sitter-swift-a22fa5e_GH0.tar.gz) = 83628
+SHA256 (tree-sitter-tree-sitter-typescript-3e897ea_GH0.tar.gz) = 6e64d8a40f69a46b1cfa50b64e3ab187cd44f106bb3ba4a4fb5d96e6f3c803d5
+SIZE (tree-sitter-tree-sitter-typescript-3e897ea_GH0.tar.gz) = 990774
diff --git a/editors/helix/files/patch-helix-core_src_lib.rs b/editors/helix/files/patch-helix-core_src_lib.rs
new file mode 100644
index 000000000000..ee8dfd910530
--- /dev/null
+++ b/editors/helix/files/patch-helix-core_src_lib.rs
@@ -0,0 +1,11 @@
+--- helix-core/src/lib.rs.orig 2021-09-18 05:55:12 UTC
++++ helix-core/src/lib.rs
+@@ -73,6 +73,8 @@ pub fn runtime_dir() -> std::path::PathBuf {
+ // this is the directory of the crate being run by cargo, we need the workspace path so we take the parent
+ return std::path::PathBuf::from(dir).parent().unwrap().join(RT_DIR);
+ }
++
++ return std::path::PathBuf::from("%%DATADIR%%").join(RT_DIR);
+
+ // fallback to location of the executable being run
+ std::env::current_exe()
diff --git a/editors/helix/pkg-descr b/editors/helix/pkg-descr
new file mode 100644
index 000000000000..a0595e1850bf
--- /dev/null
+++ b/editors/helix/pkg-descr
@@ -0,0 +1,14 @@
+A kakoune / neovim inspired editor, written in Rust.
+
+Features:
+
+ o Vim-like modal editing
+
+ o Multiple selections
+
+ o Built-in language server support
+
+ o Smart, incremental syntax highlighting and code
+ editing via tree-sitter
+
+WWW: https://helix-editor.com/
diff --git a/editors/helix/pkg-plist b/editors/helix/pkg-plist
new file mode 100644
index 000000000000..aaf2ddb4e0f5
--- /dev/null
+++ b/editors/helix/pkg-plist
@@ -0,0 +1,78 @@
+bin/hx
+%%DATADIR%%/runtime/grammars/.gitkeep
+%%DATADIR%%/runtime/grammars/agda.so
+%%DATADIR%%/runtime/grammars/bash.so
+%%DATADIR%%/runtime/grammars/c-sharp.so
+%%DATADIR%%/runtime/grammars/c.so
+%%DATADIR%%/runtime/grammars/cpp.so
+%%DATADIR%%/runtime/grammars/css.so
+%%DATADIR%%/runtime/grammars/elixir.so
+%%DATADIR%%/runtime/grammars/go.so
+%%DATADIR%%/runtime/grammars/html.so
+%%DATADIR%%/runtime/grammars/java.so
+%%DATADIR%%/runtime/grammars/javascript.so
+%%DATADIR%%/runtime/grammars/json.so
+%%DATADIR%%/runtime/grammars/julia.so
+%%DATADIR%%/runtime/grammars/latex.so
+%%DATADIR%%/runtime/grammars/nix.so
+%%DATADIR%%/runtime/grammars/php.so
+%%DATADIR%%/runtime/grammars/python.so
+%%DATADIR%%/runtime/grammars/ruby.so
+%%DATADIR%%/runtime/grammars/rust.so
+%%DATADIR%%/runtime/grammars/scala.so
+%%DATADIR%%/runtime/grammars/swift.so
+%%DATADIR%%/runtime/grammars/toml.so
+%%DATADIR%%/runtime/grammars/tsx.so
+%%DATADIR%%/runtime/grammars/typescript.so
+%%DATADIR%%/runtime/queries/bash/highlights.scm
+%%DATADIR%%/runtime/queries/c/highlights.scm
+%%DATADIR%%/runtime/queries/cpp/highlights.scm
+%%DATADIR%%/runtime/queries/css/highlights.scm
+%%DATADIR%%/runtime/queries/elixir/highlights.scm
+%%DATADIR%%/runtime/queries/go/highlights.scm
+%%DATADIR%%/runtime/queries/go/indents.toml
+%%DATADIR%%/runtime/queries/go/tags.scm
+%%DATADIR%%/runtime/queries/haskell/highlights.scm
+%%DATADIR%%/runtime/queries/haskell/locals.scm
+%%DATADIR%%/runtime/queries/html/highlights.scm
+%%DATADIR%%/runtime/queries/html/injections.scm
+%%DATADIR%%/runtime/queries/java/highlights.scm
+%%DATADIR%%/runtime/queries/javascript/highlights-jsx.scm
+%%DATADIR%%/runtime/queries/javascript/highlights-params.scm
+%%DATADIR%%/runtime/queries/javascript/highlights.scm
+%%DATADIR%%/runtime/queries/javascript/indents.toml
+%%DATADIR%%/runtime/queries/javascript/injections.scm
+%%DATADIR%%/runtime/queries/javascript/locals.scm
+%%DATADIR%%/runtime/queries/javascript/tags.scm
+%%DATADIR%%/runtime/queries/json/highlights.scm
+%%DATADIR%%/runtime/queries/julia/folds.scm
+%%DATADIR%%/runtime/queries/julia/highlights.scm
+%%DATADIR%%/runtime/queries/julia/injections.scm
+%%DATADIR%%/runtime/queries/julia/locals.scm
+%%DATADIR%%/runtime/queries/latex/folds.scm
+%%DATADIR%%/runtime/queries/latex/highlights.scm
+%%DATADIR%%/runtime/queries/nix/highlights.scm
+%%DATADIR%%/runtime/queries/nix/indents.toml
+%%DATADIR%%/runtime/queries/php/highlights.scm
+%%DATADIR%%/runtime/queries/php/injections.scm
+%%DATADIR%%/runtime/queries/php/tags.scm
+%%DATADIR%%/runtime/queries/python/highlights.scm
+%%DATADIR%%/runtime/queries/python/tags.scm
+%%DATADIR%%/runtime/queries/ruby/highlights.scm
+%%DATADIR%%/runtime/queries/ruby/locals.scm
+%%DATADIR%%/runtime/queries/ruby/tags.scm
+%%DATADIR%%/runtime/queries/rust/highlights.scm
+%%DATADIR%%/runtime/queries/rust/indents.toml
+%%DATADIR%%/runtime/queries/rust/injections.scm
+%%DATADIR%%/runtime/queries/toml/highlights.scm
+%%DATADIR%%/runtime/queries/typescript/highlights.scm
+%%DATADIR%%/runtime/queries/typescript/indents.toml
+%%DATADIR%%/runtime/queries/typescript/locals.scm
+%%DATADIR%%/runtime/queries/typescript/tags.scm
+%%DATADIR%%/runtime/themes/README.md
+%%DATADIR%%/runtime/themes/bogster.toml
+%%DATADIR%%/runtime/themes/dark_plus.toml
+%%DATADIR%%/runtime/themes/gruvbox.toml
+%%DATADIR%%/runtime/themes/ingrid.toml
+%%DATADIR%%/runtime/themes/onedark.toml
+%%DATADIR%%/runtime/tutor.txt