git: 92df04ca7d17 - main - editors/neovim: Include tree-sitter parsers

From: Adam Weinberger <adamw_at_FreeBSD.org>
Date: Sat, 25 May 2024 21:44:55 UTC
The branch main has been updated by adamw:

URL: https://cgit.FreeBSD.org/ports/commit/?id=92df04ca7d17b7083d05f5305b4b9f7088a66a91

commit 92df04ca7d17b7083d05f5305b4b9f7088a66a91
Author:     Adam Weinberger <adamw@FreeBSD.org>
AuthorDate: 2024-05-25 21:39:53 +0000
Commit:     Adam Weinberger <adamw@FreeBSD.org>
CommitDate: 2024-05-25 21:39:53 +0000

    editors/neovim: Include tree-sitter parsers
    
    Neovim now expects a number of tree-sitter parsers to be included in
    a base installation, but they must be fetched, built, and installed
    separately.
    
    Without the parsers, things like `:help [...]` produces warnings but
    still technically works.
    
    PR:             279293
    Submitted by:   Laurent Chardon
---
 editors/neovim/Makefile  | 43 +++++++++++++++++++++++++++++++++++--------
 editors/neovim/distinfo  | 22 +++++++++++++++++-----
 editors/neovim/pkg-plist | 10 +++++++++-
 3 files changed, 61 insertions(+), 14 deletions(-)

diff --git a/editors/neovim/Makefile b/editors/neovim/Makefile
index 8664aa3ee4eb..303fb63b9ffd 100644
--- a/editors/neovim/Makefile
+++ b/editors/neovim/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	neovim
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.10.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	editors
 
 MAINTAINER=	adamw@FreeBSD.org
@@ -10,29 +10,35 @@ WWW=		https://neovim.io/
 
 LICENSE=	APACHE20
 
-BUILD_DEPENDS=	gperf:devel/gperf \
-		${LUA_REFMODLIBDIR}/bit.so:devel/lua-bitop@${LUA_FLAVOR} \
+BUILD_DEPENDS=	${LUA_REFMODLIBDIR}/bit.so:devel/lua-bitop@${LUA_FLAVOR} \
+		${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/bit.so:devel/lua-bitop@${LUA_FLAVOR} \
 		${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}
 LIB_DEPENDS=	libluv.so:devel/luv \
 		libmsgpack-c.so:devel/msgpack-c \
-		libtermkey.so:devel/libtermkey \
 		libtree-sitter.so:devel/tree-sitter \
 		libunibilium.so:devel/unibilium \
 		libuv.so:devel/libuv \
 		libvterm.so:devel/libvterm
-RUN_DEPENDS=	${LUA_REFMODLIBDIR}/bit.so:devel/lua-bitop@${LUA_FLAVOR} \
-		${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}
 
 USES=		cmake cpe gettext iconv lua:51,build luajit \
 		pathfix pkgconfig
+
 USE_GITHUB=	yes
-GH_TUPLE=	libmpack:libmpack:1.0.5:libmpack \
-		libmpack:libmpack-lua:1.0.12:libmpack_lua
+GH_TUPLE=	tree-sitter:tree-sitter-c:v0.21.0:treesitter_c \
+		neovim:tree-sitter-vim:v0.4.0:treesitter_vim \
+		neovim:tree-sitter-vimdoc:v2.5.1:treesitter_vimdoc \
+		tree-sitter-grammars:tree-sitter-query:v0.3.0:treesitter_query \
+		tree-sitter:tree-sitter-python:v0.21.0:treesitter_python \
+		tree-sitter:tree-sitter-bash:v0.21.0:treesitter_bash \
+		MDeiml:tree-sitter-markdown:v0.2.3:treesitter_markdown \
+		tree-sitter-grammars:tree-sitter-lua:v0.1.0:treesitter_lua
 
 CMAKE_ARGS=	-DLUA_PRG:FILEPATH="${LUA_CMD}" \
 		-DCMAKE_INSTALL_MANDIR:PATH="${PREFIX}/share/man" \
 		-DDEPS_PREFIX:PATH="${LOCALBASE}" \
 		-DCMAKE_LIBRARY_PATH:PATH="${LOCALBASE}/lib/lua/${LUA_VER}"
+
 CFLAGS+=	-I${LOCALBASE}/include
 
 DATADIR=	${PREFIX}/share/nvim
@@ -49,4 +55,25 @@ NLS_CMAKE_BOOL=		ENABLE_LIBINTL
 PYNVIM_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pynvim>=0.3.0:editors/py-pynvim@${PY_FLAVOR}
 PYNVIM_USES=		python:run
 
+post-configure:
+	${MKDIR} ${BUILD_WRKSRC}/.deps/build/src
+	${MV} ${WRKSRC_treesitter_c} ${BUILD_WRKSRC}/.deps/build/src/treesitter_c
+	${MV} ${WRKSRC_treesitter_vim} ${BUILD_WRKSRC}/.deps/build/src/treesitter_vim
+	${MV} ${WRKSRC_treesitter_vimdoc} ${BUILD_WRKSRC}/.deps/build/src/treesitter_vimdoc
+	${MV} ${WRKSRC_treesitter_query} ${BUILD_WRKSRC}/.deps/build/src/treesitter_query
+	${MV} ${WRKSRC_treesitter_python} ${BUILD_WRKSRC}/.deps/build/src/treesitter_python
+	${MV} ${WRKSRC_treesitter_bash} ${BUILD_WRKSRC}/.deps/build/src/treesitter_bash
+	${MV} ${WRKSRC_treesitter_markdown} ${BUILD_WRKSRC}/.deps/build/src/treesitter_markdown
+	${MV} ${WRKSRC_treesitter_lua} ${BUILD_WRKSRC}/.deps/build/src/treesitter_lua
+	${MAKE_ENV} ${CMAKE_BIN} -S ${WRKSRC}/cmake.deps -B ${BUILD_WRKSRC}/.deps ${CMAKE_ARGS} \
+		-DUSE_BUNDLED:BOOL=OFF -DUSE_BUNDLED_TS_PARSERS:BOOL=ON \
+		-DUSE_EXISTING_SRC_DIR:BOOL=ON
+
+post-build:
+	${CMAKE_BIN} --build ${BUILD_WRKSRC}/.deps
+
+post-stage:
+	cd ${BUILD_WRKSRC}/.deps/usr/lib/nvim && ${COPYTREE_SHARE} parser ${STAGEDIR}${PREFIX}/lib/nvim
+	${FIND} ${STAGEDIR}${PREFIX}/lib/nvim -name "*.so" -exec ${STRIP_CMD} {} +
+
 .include <bsd.port.mk>
diff --git a/editors/neovim/distinfo b/editors/neovim/distinfo
index b420957ace97..9079c48dc993 100644
--- a/editors/neovim/distinfo
+++ b/editors/neovim/distinfo
@@ -1,7 +1,19 @@
-TIMESTAMP = 1716160663
+TIMESTAMP = 1716623992
 SHA256 (neovim-neovim-v0.10.0_GH0.tar.gz) = 372ea2584b0ea2a5a765844d95206bda9e4a57eaa1a2412a9a0726bab750f828
 SIZE (neovim-neovim-v0.10.0_GH0.tar.gz) = 12792034
-SHA256 (libmpack-libmpack-1.0.5_GH0.tar.gz) = 4ce91395d81ccea97d3ad4cb962f8540d166e59d3e2ddce8a22979b49f108956
-SIZE (libmpack-libmpack-1.0.5_GH0.tar.gz) = 32966
-SHA256 (libmpack-libmpack-lua-1.0.12_GH0.tar.gz) = 7c3f0a5fcd0d7c169fd7bc95978412628d8f59eb9da1d32cf3e8a864b741ec92
-SIZE (libmpack-libmpack-lua-1.0.12_GH0.tar.gz) = 16524
+SHA256 (tree-sitter-tree-sitter-c-v0.21.0_GH0.tar.gz) = 6f0f5d1b71cf8ffd8a37fb638c6022fa1245bd630150b538547d52128ce0ea7e
+SIZE (tree-sitter-tree-sitter-c-v0.21.0_GH0.tar.gz) = 426566
+SHA256 (neovim-tree-sitter-vim-v0.4.0_GH0.tar.gz) = 9f856f8b4a10ab43348550fa2d3cb2846ae3d8e60f45887200549c051c66f9d5
+SIZE (neovim-tree-sitter-vim-v0.4.0_GH0.tar.gz) = 356704
+SHA256 (neovim-tree-sitter-vimdoc-v2.5.1_GH0.tar.gz) = 063645096504b21603585507c41c6d8718ff3c11b2150c5bfc31e8f3ee9afea3
+SIZE (neovim-tree-sitter-vimdoc-v2.5.1_GH0.tar.gz) = 57430
+SHA256 (tree-sitter-grammars-tree-sitter-query-v0.3.0_GH0.tar.gz) = f878ff37abcb83250e31a6569e997546f3dbab74dcb26683cb2d613f7568cfc0
+SIZE (tree-sitter-grammars-tree-sitter-query-v0.3.0_GH0.tar.gz) = 43274
+SHA256 (tree-sitter-tree-sitter-python-v0.21.0_GH0.tar.gz) = 720304a603271fa89e4430a14d6a81a023d6d7d1171b1533e49c0ab44f1e1c13
+SIZE (tree-sitter-tree-sitter-python-v0.21.0_GH0.tar.gz) = 275770
+SHA256 (tree-sitter-tree-sitter-bash-v0.21.0_GH0.tar.gz) = f0515efda839cfede851adb24ac154227fbc0dfb60c6c11595ecfa9087d43ceb
+SIZE (tree-sitter-tree-sitter-bash-v0.21.0_GH0.tar.gz) = 557096
+SHA256 (MDeiml-tree-sitter-markdown-v0.2.3_GH0.tar.gz) = 4909d6023643f1afc3ab219585d4035b7403f3a17849782ab803c5f73c8a31d5
+SIZE (MDeiml-tree-sitter-markdown-v0.2.3_GH0.tar.gz) = 418293
+SHA256 (tree-sitter-grammars-tree-sitter-lua-v0.1.0_GH0.tar.gz) = 230cfcbfa74ed1f7b8149e9a1f34c2efc4c589a71fe0f5dc8560622f8020d722
+SIZE (tree-sitter-grammars-tree-sitter-lua-v0.1.0_GH0.tar.gz) = 56812
diff --git a/editors/neovim/pkg-plist b/editors/neovim/pkg-plist
index 4a26bab98363..2caaf6126823 100644
--- a/editors/neovim/pkg-plist
+++ b/editors/neovim/pkg-plist
@@ -1,4 +1,13 @@
 bin/nvim
+lib/nvim/parser/bash.so
+lib/nvim/parser/c.so
+lib/nvim/parser/lua.so
+lib/nvim/parser/markdown.so
+lib/nvim/parser/markdown_inline.so
+lib/nvim/parser/python.so
+lib/nvim/parser/query.so
+lib/nvim/parser/vim.so
+lib/nvim/parser/vimdoc.so
 share/man/man1/nvim.1.gz
 share/applications/nvim.desktop
 share/icons/hicolor/128x128/apps/nvim.png
@@ -32,4 +41,3 @@ share/icons/hicolor/128x128/apps/nvim.png
 %%NLS%%share/locale/vi/LC_MESSAGES/nvim.mo
 %%NLS%%share/locale/zh_CN.UTF-8/LC_MESSAGES/nvim.mo
 %%NLS%%share/locale/zh_TW.UTF-8/LC_MESSAGES/nvim.mo
-@dir lib/nvim