1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-07 11:49:40 +00:00

editors/vis: New port: Vi-like editor based on Plan 9's structural regular expressions

Vis aims to be a modern, legacy-free, simple yet efficient editor,
combining the strengths of both vi(m) and sam.

It extends vi's modal editing with built-in support for multiple
cursors/selections and combines it with sam's structural regular
expression based command language.

Efficient syntax highlighting is provided using Parsing Expression
Grammars, which can be conveniently expressed using Lua in the form
of LPeg.

The editor core is written in a reasonable amount of clean, modern
and legacy-free C code, enabling it to run in resource-constrained
environments. There is also a Lua API for in-process extensions.

Vis strives to be simple and focuses on its core task: efficient
text management. Clipboard and digraph handling as well as a fuzzy
file open dialog are all provided by independent utilities.

WWW: https://www.brain-dump.org/projects/vis/

PR:	270063
This commit is contained in:
Jesús Daniel Colmenares Oviedo 2023-03-09 07:09:07 -04:00 committed by Koichiro Iwao
parent b73012d372
commit 01820ee3d0
8 changed files with 296 additions and 0 deletions

View File

@ -277,6 +277,7 @@
SUBDIR += vile
SUBDIR += vim
SUBDIR += vim-colorschemes-legacy
SUBDIR += vis
SUBDIR += vscode
SUBDIR += web-mode
SUBDIR += with-editor

61
editors/vis/Makefile Normal file
View File

@ -0,0 +1,61 @@
PORTNAME= vis
DISTVERSION= 0.8
CATEGORIES= editors
MASTER_SITES= https://github.com/martanne/${PORTNAME}/releases/download/v${VIS_VER}/:source \
https://github.com/martanne/${PORTNAME}-test/releases/download/v${VIS_TEST_VER}/:test
DISTFILES= ${PORTNAME}-${VIS_VER}${EXTRACT_SUFX}:source \
${VIS_TEST_NAME}-${VIS_TEST_VER}${EXTRACT_SUFX}:test
MAINTAINER= DtxdF@disroot.org
COMMENT= Vi-like editor based on Plan 9's structural regular expressions
WWW= https://www.brain-dump.org/projects/vis/
LICENSE= CC0-1.0 ISCL MIT
LICENSE_COMB= multi
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS+= libtermkey.so:devel/libtermkey
TEST_DEPENDS= vim>0:editors/vim
USES+= gmake lua pkgconfig
HAS_CONFIGURE= yes
CONFIGURE_ARGS= --prefix=${PREFIX}
INSTALL_TARGET= install-strip
TEST_TARGET= test
OPTIONS_DEFINE= LPEG NLS TRE
OPTIONS_DEFAULT= LPEG TRE
OPTIONS_RADIO= CLIPBOARD
OPTIONS_RADIO_CLIPBOARD= WL_COPY XCLIP XSEL
OPTIONS_SUB= yes
LPEG_DESC= Syntax highlighting
TRE_DESC= More memory efficient regex search
WL_COPY_DESC= Use wl-copy
XCLIP_DESC= Use xclip
XSEL_DESC= Use xsel-conrad
LPEG_RUN_DEPENDS= ${LUA_PKGNAMEPREFIX}lpeg>=0.8.1:devel/lua-lpeg@${LUA_FLAVOR}
NLS_USES= gettext-runtime
TRE_IMPLIES= NLS
TRE_LIB_DEPENDS= libtre.so:textproc/libtre
WL_COPY_RUN_DEPENDS= wl-clipboard>0:x11/wl-clipboard
XCLIP_RUN_DEPENDS= xclip>0:x11/xclip
XSEL_RUN_DEPENDS= xsel-conrad>0:x11/xsel-conrad
# To be consistent with VIS_TEST_VERSION.
VIS_VER= ${DISTVERSION}
VIS_TEST_VER= 0.5
VIS_TEST_NAME= ${PORTNAME}-test
post-extract:
${RMDIR} ${WRKSRC}/test
${MV} ${WRKDIR}/${VIS_TEST_NAME}-${VIS_TEST_VER}/ ${WRKSRC}/test
post-install:
@(cd ${STAGEDIR}${PREFIX}/bin; ${MV} vis vise)
@(cd ${STAGEDIR}${PREFIX}/share/man/man1; ${MV} vis.1 vise.1)
.include <bsd.port.mk>

5
editors/vis/distinfo Normal file
View File

@ -0,0 +1,5 @@
TIMESTAMP = 1677331839
SHA256 (vis-0.8.tar.gz) = 61b10d40f15c4db2ce16e9acf291dbb762da4cbccf0cf2a80b28d9ac998a39bd
SIZE (vis-0.8.tar.gz) = 404496
SHA256 (vis-test-0.5.tar.gz) = 0098ad933ec1f87bba4b2da9fa84e00cab5612ec3623622c1e5003a245aec7d1
SIZE (vis-test-0.5.tar.gz) = 99314

View File

@ -0,0 +1,19 @@
--- configure.orig 2023-02-25 11:16:23 UTC
+++ configure
@@ -236,7 +236,6 @@ esac
tryflag CFLAGS -pipe
# Try flags to optimize binary size
-tryflag CFLAGS -O2
tryflag CFLAGS -ffunction-sections
tryflag CFLAGS -fdata-sections
tryldflag LDFLAGS_AUTO -Wl,--gc-sections
@@ -443,7 +442,7 @@ int main(int argc, char *argv[]) {
}
EOF
- for liblua in lua lua5.4 lua5.3 lua5.2 lua-5.3 lua-5.2 lua54 lua53 lua52; do
+ for liblua in lua lua5.4 lua5.3 lua5.2 lua-5.4 lua-5.3 lua-5.2 lua54 lua53 lua52; do
printf " checking for %s... " "$liblua"
if test "$have_pkgconfig" = "yes" ; then

View File

@ -0,0 +1,11 @@
--- man/vis.1.orig 2023-02-24 18:24:37 UTC
+++ man/vis.1
@@ -260,7 +260,7 @@ currently defers regular expression matching to the un
It uses what POSIX refers to as
.Dq Extended Regular Expressions
as described in
-.Xr regex 7 .
+.Xr re_format 7 .
The anchors
.Ic ^
and

18
editors/vis/pkg-descr Normal file
View File

@ -0,0 +1,18 @@
Vis aims to be a modern, legacy-free, simple yet efficient editor,
combining the strengths of both vi(m) and sam.
It extends vi's modal editing with built-in support for multiple
cursors/selections and combines it with sam's structural regular
expression based command language.
Efficient syntax highlighting is provided using Parsing Expression
Grammars, which can be conveniently expressed using Lua in the form
of LPeg.
The editor core is written in a reasonable amount of clean, modern
and legacy-free C code, enabling it to run in resource-constrained
environments. There is also a Lua API for in-process extensions.
Vis strives to be simple and focuses on its core task: efficient
text management. Clipboard and digraph handling as well as a fuzzy
file open dialog are all provided by independent utilities.

7
editors/vis/pkg-message Normal file
View File

@ -0,0 +1,7 @@
[
{ type: install
message: <<EOM
vis is installed as vise(1) to avoid conflicts with vis(1).
EOM
}
]

174
editors/vis/pkg-plist Normal file
View File

@ -0,0 +1,174 @@
bin/vise
bin/vis-clipboard
bin/vis-complete
bin/vis-digraph
bin/vis-menu
bin/vis-open
share/man/man1/vis-clipboard.1.gz
share/man/man1/vis-complete.1.gz
share/man/man1/vis-digraph.1.gz
share/man/man1/vis-menu.1.gz
share/man/man1/vis-open.1.gz
share/man/man1/vise.1.gz
%%TRE%%%%DATADIR%%/lexer.lua
%%TRE%%%%DATADIR%%/lexers/LICENSE
%%TRE%%%%DATADIR%%/lexers/README.md
%%TRE%%%%DATADIR%%/lexers/actionscript.lua
%%TRE%%%%DATADIR%%/lexers/ada.lua
%%TRE%%%%DATADIR%%/lexers/ansi_c.lua
%%TRE%%%%DATADIR%%/lexers/antlr.lua
%%TRE%%%%DATADIR%%/lexers/apdl.lua
%%TRE%%%%DATADIR%%/lexers/apl.lua
%%TRE%%%%DATADIR%%/lexers/applescript.lua
%%TRE%%%%DATADIR%%/lexers/asm.lua
%%TRE%%%%DATADIR%%/lexers/asp.lua
%%TRE%%%%DATADIR%%/lexers/autoit.lua
%%TRE%%%%DATADIR%%/lexers/awk.lua
%%TRE%%%%DATADIR%%/lexers/bash.lua
%%TRE%%%%DATADIR%%/lexers/batch.lua
%%TRE%%%%DATADIR%%/lexers/bibtex.lua
%%TRE%%%%DATADIR%%/lexers/boo.lua
%%TRE%%%%DATADIR%%/lexers/caml.lua
%%TRE%%%%DATADIR%%/lexers/chuck.lua
%%TRE%%%%DATADIR%%/lexers/clojure.lua
%%TRE%%%%DATADIR%%/lexers/cmake.lua
%%TRE%%%%DATADIR%%/lexers/coffeescript.lua
%%TRE%%%%DATADIR%%/lexers/container.lua
%%TRE%%%%DATADIR%%/lexers/context.lua
%%TRE%%%%DATADIR%%/lexers/cpp.lua
%%TRE%%%%DATADIR%%/lexers/crystal.lua
%%TRE%%%%DATADIR%%/lexers/csharp.lua
%%TRE%%%%DATADIR%%/lexers/css.lua
%%TRE%%%%DATADIR%%/lexers/cuda.lua
%%TRE%%%%DATADIR%%/lexers/dart.lua
%%TRE%%%%DATADIR%%/lexers/desktop.lua
%%TRE%%%%DATADIR%%/lexers/diff.lua
%%TRE%%%%DATADIR%%/lexers/django.lua
%%TRE%%%%DATADIR%%/lexers/dmd.lua
%%TRE%%%%DATADIR%%/lexers/dockerfile.lua
%%TRE%%%%DATADIR%%/lexers/dot.lua
%%TRE%%%%DATADIR%%/lexers/dsv.lua
%%TRE%%%%DATADIR%%/lexers/eiffel.lua
%%TRE%%%%DATADIR%%/lexers/elixir.lua
%%TRE%%%%DATADIR%%/lexers/elm.lua
%%TRE%%%%DATADIR%%/lexers/erlang.lua
%%TRE%%%%DATADIR%%/lexers/fantom.lua
%%TRE%%%%DATADIR%%/lexers/faust.lua
%%TRE%%%%DATADIR%%/lexers/fennel.lua
%%TRE%%%%DATADIR%%/lexers/fish.lua
%%TRE%%%%DATADIR%%/lexers/forth.lua
%%TRE%%%%DATADIR%%/lexers/fortran.lua
%%TRE%%%%DATADIR%%/lexers/fsharp.lua
%%TRE%%%%DATADIR%%/lexers/fstab.lua
%%TRE%%%%DATADIR%%/lexers/gap.lua
%%TRE%%%%DATADIR%%/lexers/gemini.lua
%%TRE%%%%DATADIR%%/lexers/gettext.lua
%%TRE%%%%DATADIR%%/lexers/gherkin.lua
%%TRE%%%%DATADIR%%/lexers/git-rebase.lua
%%TRE%%%%DATADIR%%/lexers/glsl.lua
%%TRE%%%%DATADIR%%/lexers/gnuplot.lua
%%TRE%%%%DATADIR%%/lexers/go.lua
%%TRE%%%%DATADIR%%/lexers/groovy.lua
%%TRE%%%%DATADIR%%/lexers/gtkrc.lua
%%TRE%%%%DATADIR%%/lexers/haskell.lua
%%TRE%%%%DATADIR%%/lexers/html.lua
%%TRE%%%%DATADIR%%/lexers/icon.lua
%%TRE%%%%DATADIR%%/lexers/idl.lua
%%TRE%%%%DATADIR%%/lexers/inform.lua
%%TRE%%%%DATADIR%%/lexers/ini.lua
%%TRE%%%%DATADIR%%/lexers/io_lang.lua
%%TRE%%%%DATADIR%%/lexers/java.lua
%%TRE%%%%DATADIR%%/lexers/javascript.lua
%%TRE%%%%DATADIR%%/lexers/json.lua
%%TRE%%%%DATADIR%%/lexers/jsp.lua
%%TRE%%%%DATADIR%%/lexers/julia.lua
%%TRE%%%%DATADIR%%/lexers/latex.lua
%%TRE%%%%DATADIR%%/lexers/ledger.lua
%%TRE%%%%DATADIR%%/lexers/less.lua
%%TRE%%%%DATADIR%%/lexers/lexer.lua
%%TRE%%%%DATADIR%%/lexers/lilypond.lua
%%TRE%%%%DATADIR%%/lexers/lisp.lua
%%TRE%%%%DATADIR%%/lexers/litcoffee.lua
%%TRE%%%%DATADIR%%/lexers/logtalk.lua
%%TRE%%%%DATADIR%%/lexers/lua.lua
%%TRE%%%%DATADIR%%/lexers/makefile.lua
%%TRE%%%%DATADIR%%/lexers/man.lua
%%TRE%%%%DATADIR%%/lexers/markdown.lua
%%TRE%%%%DATADIR%%/lexers/matlab.lua
%%TRE%%%%DATADIR%%/lexers/meson.lua
%%TRE%%%%DATADIR%%/lexers/moonscript.lua
%%TRE%%%%DATADIR%%/lexers/myrddin.lua
%%TRE%%%%DATADIR%%/lexers/nemerle.lua
%%TRE%%%%DATADIR%%/lexers/networkd.lua
%%TRE%%%%DATADIR%%/lexers/nim.lua
%%TRE%%%%DATADIR%%/lexers/nsis.lua
%%TRE%%%%DATADIR%%/lexers/null.lua
%%TRE%%%%DATADIR%%/lexers/objective_c.lua
%%TRE%%%%DATADIR%%/lexers/pascal.lua
%%TRE%%%%DATADIR%%/lexers/perl.lua
%%TRE%%%%DATADIR%%/lexers/php.lua
%%TRE%%%%DATADIR%%/lexers/pico8.lua
%%TRE%%%%DATADIR%%/lexers/pike.lua
%%TRE%%%%DATADIR%%/lexers/pkgbuild.lua
%%TRE%%%%DATADIR%%/lexers/pony.lua
%%TRE%%%%DATADIR%%/lexers/powershell.lua
%%TRE%%%%DATADIR%%/lexers/prolog.lua
%%TRE%%%%DATADIR%%/lexers/props.lua
%%TRE%%%%DATADIR%%/lexers/protobuf.lua
%%TRE%%%%DATADIR%%/lexers/ps.lua
%%TRE%%%%DATADIR%%/lexers/pure.lua
%%TRE%%%%DATADIR%%/lexers/python.lua
%%TRE%%%%DATADIR%%/lexers/rails.lua
%%TRE%%%%DATADIR%%/lexers/rc.lua
%%TRE%%%%DATADIR%%/lexers/reason.lua
%%TRE%%%%DATADIR%%/lexers/rebol.lua
%%TRE%%%%DATADIR%%/lexers/rest.lua
%%TRE%%%%DATADIR%%/lexers/rexx.lua
%%TRE%%%%DATADIR%%/lexers/rhtml.lua
%%TRE%%%%DATADIR%%/lexers/routeros.lua
%%TRE%%%%DATADIR%%/lexers/rstats.lua
%%TRE%%%%DATADIR%%/lexers/ruby.lua
%%TRE%%%%DATADIR%%/lexers/rust.lua
%%TRE%%%%DATADIR%%/lexers/sass.lua
%%TRE%%%%DATADIR%%/lexers/scala.lua
%%TRE%%%%DATADIR%%/lexers/scheme.lua
%%TRE%%%%DATADIR%%/lexers/smalltalk.lua
%%TRE%%%%DATADIR%%/lexers/sml.lua
%%TRE%%%%DATADIR%%/lexers/snobol4.lua
%%TRE%%%%DATADIR%%/lexers/spin.lua
%%TRE%%%%DATADIR%%/lexers/sql.lua
%%TRE%%%%DATADIR%%/lexers/strace.lua
%%TRE%%%%DATADIR%%/lexers/systemd.lua
%%TRE%%%%DATADIR%%/lexers/taskpaper.lua
%%TRE%%%%DATADIR%%/lexers/tcl.lua
%%TRE%%%%DATADIR%%/lexers/tex.lua
%%TRE%%%%DATADIR%%/lexers/texinfo.lua
%%TRE%%%%DATADIR%%/lexers/text.lua
%%TRE%%%%DATADIR%%/lexers/toml.lua
%%TRE%%%%DATADIR%%/lexers/vala.lua
%%TRE%%%%DATADIR%%/lexers/vb.lua
%%TRE%%%%DATADIR%%/lexers/vbscript.lua
%%TRE%%%%DATADIR%%/lexers/vcard.lua
%%TRE%%%%DATADIR%%/lexers/verilog.lua
%%TRE%%%%DATADIR%%/lexers/vhdl.lua
%%TRE%%%%DATADIR%%/lexers/wsf.lua
%%TRE%%%%DATADIR%%/lexers/xml.lua
%%TRE%%%%DATADIR%%/lexers/xs.lua
%%TRE%%%%DATADIR%%/lexers/xtend.lua
%%TRE%%%%DATADIR%%/lexers/yaml.lua
%%TRE%%%%DATADIR%%/lexers/zig.lua
%%TRE%%%%DATADIR%%/plugins/complete-filename.lua
%%TRE%%%%DATADIR%%/plugins/complete-word.lua
%%TRE%%%%DATADIR%%/plugins/digraph.lua
%%TRE%%%%DATADIR%%/plugins/filetype.lua
%%TRE%%%%DATADIR%%/plugins/number-inc-dec.lua
%%TRE%%%%DATADIR%%/plugins/textobject-lexer.lua
%%TRE%%%%DATADIR%%/themes/dark-16.lua
%%TRE%%%%DATADIR%%/themes/default-16.lua
%%TRE%%%%DATADIR%%/themes/default-256.lua
%%TRE%%%%DATADIR%%/themes/light-16.lua
%%TRE%%%%DATADIR%%/themes/solarized.lua
%%TRE%%%%DATADIR%%/themes/zenburn.lua
%%TRE%%%%DATADIR%%/vis-std.lua
%%TRE%%%%DATADIR%%/vis.lua
%%TRE%%%%DATADIR%%/visrc.lua