diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index 76a7469e3ee9..a4416d002d23 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -52,6 +52,8 @@ lrexlib-pcre,,,,,, lrexlib-posix,,,,,, lsp-progress.nvim,,,,,5.1,gepbird lsqlite3,,,,,, +ltreesitter-ts,,,,,, +ltreesitter,,,,,, lua-cjson,,,,,, lua-cmsgpack,,,,,, lua-curl,,,,,, @@ -95,6 +97,7 @@ luaprompt,,,,,,Freed-Wu luarepl,,,,,, luarocks,,,,,,mrcjkb teto luarocks-build-rust-mlua,,,,,,mrcjkb +luarocks-build-tree-sitter-cli,,,,,, luarocks-build-treesitter-parser,,,,,,mrcjkb luarocks-build-treesitter-parser-cpp,,,,,,mrcjkb luasec,,,,,,flosse @@ -156,16 +159,18 @@ sqlite,,,,,, std._debug,,,,,, std.normalize,,,,,, stdlib,,,,41.2.2,, -teal-language-server,,,,0.0.5-1,, +teal-language-server,,,,,, telescope-manix,,,,,, telescope.nvim,,,,,5.1, tiktoken_core,,,,,,natsukium tl,,,,,,mephistophiles toml-edit,,,,,5.1,mrcjkb +tree-sitter-cli,,,,,, tree-sitter-http,,,,0.0.33-1,, tree-sitter-norg,,,,,5.1,mrcjkb tree-sitter-orgmode,,,,,5.1, utf8,,,,,, +tree-sitter-teal,,,,,, vstruct,,,,,, vusted,,,,,, xml2lua,,,,,,teto diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 0e40be5bae46..280dd6587c92 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -1912,6 +1912,64 @@ final: prev: { } ) { }; + ltreesitter = callPackage ( + { + buildLuarocksPackage, + fetchFromGitHub, + fetchurl, + }: + buildLuarocksPackage { + pname = "ltreesitter"; + version = "0.2.0-1"; + knownRockspec = + (fetchurl { + url = "mirror://luarocks/ltreesitter-0.2.0-1.rockspec"; + sha256 = "0qhmx73hkskzmf5s3yv843234ri8n3gqj4dad79b018j5ilwiria"; + }).outPath; + src = fetchFromGitHub { + owner = "euclidianAce"; + repo = "ltreesitter"; + tag = "v0.2.0"; + hash = "sha256-PYM6UAwp8w0qZxua5G6RFXI78Q6L3Vlc3eolXlNrN8k="; + }; + + meta = { + homepage = "https://github.com/euclidianAce/ltreesitter"; + description = "Treesitter bindings to Lua"; + license.fullName = "MIT"; + }; + } + ) { }; + + ltreesitter-ts = callPackage ( + { + buildLuarocksPackage, + fetchFromGitHub, + fetchurl, + }: + buildLuarocksPackage { + pname = "ltreesitter-ts"; + version = "0.0.1-1"; + knownRockspec = + (fetchurl { + url = "mirror://luarocks/ltreesitter-ts-0.0.1-1.rockspec"; + sha256 = "064nn3h6wi8z5ply35ig78jjkpy527nc5qxisbkvv8s3s345h82r"; + }).outPath; + src = fetchFromGitHub { + owner = "FourierTransformer"; + repo = "ltreesitter-ts"; + tag = "0.0.1"; + hash = "sha256-HFBOYFadw+lwQYk39vrFtAn/HGjfXzCxjN1RLBp4yKA="; + }; + + meta = { + homepage = "https://github.com/FourierTransformer/ltreesitter-ts"; + description = "Treesitter parsing library bindings for Lua"; + license.fullName = "MIT"; + }; + } + ) { }; + lua-cjson = callPackage ( { buildLuarocksPackage, @@ -3508,6 +3566,38 @@ final: prev: { } ) { }; + luarocks-build-tree-sitter-cli = callPackage ( + { + buildLuarocksPackage, + fetchFromGitHub, + fetchurl, + luaOlder, + }: + buildLuarocksPackage { + pname = "luarocks-build-tree-sitter-cli"; + version = "0.0.3-1"; + knownRockspec = + (fetchurl { + url = "mirror://luarocks/luarocks-build-tree-sitter-cli-0.0.3-1.rockspec"; + sha256 = "0yy04svrll85zn334mhhnzzdqymsbiqymnr6iaj23h436v3gcq38"; + }).outPath; + src = fetchFromGitHub { + owner = "FourierTransformer"; + repo = "luarocks-build-tree-sitter-cli"; + tag = "0.0.3"; + hash = "sha256-Chc0eKvKyL9JM6MNX5GcRes1YA2+W842NDrX1nNMQ+E="; + }; + + disabled = luaOlder "5.1"; + + meta = { + homepage = "https://github.com/FourierTransformer/luarocks-build-tree-sitter-cli"; + description = "A LuaRocks build backend to install the tree-sitter CLI"; + license.fullName = "MIT"; + }; + } + ) { }; + luarocks-build-treesitter-parser = callPackage ( { buildLuarocksPackage, @@ -5682,38 +5772,46 @@ final: prev: { { argparse, buildLuarocksPackage, - dkjson, fetchFromGitHub, fetchurl, inspect, + ltreesitter-ts, + lua-cjson, luafilesystem, + luarocks-build-treesitter-parser, lusc_luv, luv, tl, + tree-sitter-cli, + tree-sitter-teal, }: buildLuarocksPackage { pname = "teal-language-server"; - version = "0.0.5-1"; + version = "0.1.1-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/teal-language-server-0.0.5-1.rockspec"; - sha256 = "11ps1hgkgli4sf9gcj7pin4kbc5w0yck0daig1ghqssn2q9m2x5l"; + url = "mirror://luarocks/teal-language-server-0.1.1-1.rockspec"; + sha256 = "1dhhqm2dwl1i27dni8yd6l7qjd1xhz16b772jp96aj66rizhkvcr"; }).outPath; src = fetchFromGitHub { owner = "teal-language"; repo = "teal-language-server"; - rev = "main"; - hash = "sha256-TbNvYG2aRt27+sfXvZOlq/F7Gy6sQtoDz6satC+Qqss="; + tag = "0.1.1"; + hash = "sha256-UgN3BOdsxUIsn1HAXEmAzHns1ZKylxUo7owI2uYsNlA="; }; + nativeBuildInputs = [ luarocks-build-treesitter-parser ]; propagatedBuildInputs = [ argparse - dkjson inspect + ltreesitter-ts + lua-cjson luafilesystem lusc_luv luv tl + tree-sitter-cli + tree-sitter-teal ]; meta = { @@ -5911,6 +6009,38 @@ final: prev: { } ) { }; + tree-sitter-cli = callPackage ( + { + buildLuarocksPackage, + fetchFromGitHub, + fetchurl, + luarocks-build-tree-sitter-cli, + }: + buildLuarocksPackage { + pname = "tree-sitter-cli"; + version = "0.26.5-1"; + knownRockspec = + (fetchurl { + url = "mirror://luarocks/tree-sitter-cli-0.26.5-1.rockspec"; + sha256 = "1bd9lz72gvi7djzcy0z6yja045ycm4byiyjpwa3m6zgh1h4mp30r"; + }).outPath; + src = fetchFromGitHub { + owner = "FourierTransformer"; + repo = "tree-sitter-cli"; + rev = "d8e1eb4ae406b75db0f50fae8be5dff636dbb4da"; + hash = "sha256-J73buMI+DzrQ4Qx7G6rW2xFxiOYJBy4rGVDsnfNEgzQ="; + }; + + nativeBuildInputs = [ luarocks-build-tree-sitter-cli ]; + + meta = { + homepage = "https://github.com/FourierTransformer/tree-sitter-cli"; + description = "Install tree-sitter CLI binaries"; + license.fullName = "MIT"; + }; + } + ) { }; + tree-sitter-http = callPackage ( { buildLuarocksPackage, @@ -6004,6 +6134,38 @@ final: prev: { } ) { }; + tree-sitter-teal = callPackage ( + { + buildLuarocksPackage, + fetchurl, + fetchzip, + luaOlder, + luarocks-build-treesitter-parser, + }: + buildLuarocksPackage { + pname = "tree-sitter-teal"; + version = "0.0.35-1"; + knownRockspec = + (fetchurl { + url = "mirror://luarocks/tree-sitter-teal-0.0.35-1.rockspec"; + sha256 = "06g2i3y3gmyz17v9gxwswa9db544nyhd5mx4zq3lihrshbbf6r10"; + }).outPath; + src = fetchzip { + url = "https://github.com/euclidianAce/tree-sitter-teal/archive/05d276e737055e6f77a21335b7573c9d3c091e2f.zip"; + sha256 = "1g1zk47a8jcwac0j60mlfv56mhlhbf6f77vjkx4vsfbrryprcfi4"; + }; + + disabled = luaOlder "5.1"; + nativeBuildInputs = [ luarocks-build-treesitter-parser ]; + + meta = { + homepage = "https://github.com/euclidianAce/tree-sitter-teal"; + description = "tree-sitter parser for teal"; + license.fullName = "UNKNOWN"; + }; + } + ) { }; + utf8 = callPackage ( { buildLuarocksPackage, diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index af4acdffa2e0..42b5073f727c 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -23,6 +23,7 @@ gnulib, gnum4, gobject-introspection, + icu, imagemagick, installShellFiles, lib, @@ -434,6 +435,35 @@ in buildInputs = old.buildInputs ++ [ sqlite.dev ]; }); + ltreesitter = prev.ltreesitter.overrideAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + tree-sitter + ]; + postConfigure = (old.postConfigure or "") + '' + substituteInPlace ''${rockspecFilename} \ + --replace-fail '"tree-sitter/lib/src/lib.c",' "" \ + --replace-fail '"tree-sitter/lib/include",' '"${tree-sitter}/include"' \ + --replace-fail '"tree-sitter/lib/src"' "" + ''; + NIX_CFLAGS_COMPILE = "-I${tree-sitter}/include"; + NIX_LDFLAGS = "-L${tree-sitter}/lib -ltree-sitter"; + }); + + ltreesitter-ts = prev.ltreesitter-ts.overrideAttrs (old: { + # Upstream package relies on git submodules (ltreesitter + tree-sitter), + # but the default source fetch misses those files. + src = fetchFromGitHub { + owner = "FourierTransformer"; + repo = "ltreesitter-ts"; + rev = "0.0.1"; + fetchSubmodules = true; + hash = "sha256-hKM5HQU7A08mA004ZMV7hIVq/2WR3KocMatnTplM8uU="; + }; + nativeBuildInputs = old.nativeBuildInputs ++ [ icu ]; + NIX_CFLAGS_COMPILE = "-I${lib.getDev icu}/include"; + NIX_LDFLAGS = "-L${lib.getLib icu}/lib -licuuc -licui18n -licudata"; + }); + lua-cmsgpack = prev.lua-cmsgpack.overrideAttrs { strictDeps = false; meta.broken = isLuaJIT; @@ -1099,6 +1129,48 @@ in ''; }; + teal-language-server = prev.teal-language-server.overrideAttrs (old: { + # TODO: Remove this prerelease override once upstream publishes a release + # or rockspec that the luarocks updater can consume directly. + version = "0.1.2-pre-1"; + knownRockspec = + (fetchurl { + url = "https://raw.githubusercontent.com/teal-language/teal-language-server/0.1.2-pre-1/teal-language-server-0.1.2-1.rockspec"; + sha256 = "1z7nbzhdqh2w7k635hbbfba2s37rxbcphaxq7dfsjfj3sgkj9snf"; + }).outPath; + src = fetchFromGitHub { + owner = "teal-language"; + repo = "teal-language-server"; + tag = "0.1.2-pre-1"; + hash = "sha256-1ssgt+/e28TJ+1G1TWAPbZe5DiUYOafsSbc9exttesk="; + }; + strictDeps = false; + # Relax lockfile-pinned deps (e.g. luafilesystem 1.8.0-1) so nixpkgs + # packaged versions can satisfy dependencies. + preConfigure = (old.preConfigure or "") + '' + rm -f luarocks.lock + ''; + postConfigure = (old.postConfigure or "") + '' + substituteInPlace ''${rockspecFilename} \ + --replace-fail 'tag = "0.1.2"' 'tag = "0.1.2-pre-1"' \ + --replace-fail '"ltreesitter == 0.1.0",' '"ltreesitter >= 0.2.0",' \ + --replace-fail '"luv == 1.51.0",' '"luv >= 1.51.0",' \ + --replace-fail '"tree-sitter-cli == 0.24.7",' "" \ + --replace-fail '"tl == 0.24.5",' '"tl >= 0.24.5",' \ + --replace-fail '"tree-sitter-teal == 0.0.34",' '"tree-sitter-teal >= 0.0.34",' + ''; + propagatedBuildInputs = + (lib.filter ( + drv: + !(lib.elem (lib.getName drv) [ + "ltreesitter-ts" + ]) + ) (old.propagatedBuildInputs or [ ])) + ++ [ + final.ltreesitter + ]; + }); + tiktoken_core = prev.tiktoken_core.overrideAttrs (old: { cargoDeps = rustPlatform.fetchCargoVendor { inherit (old) src; @@ -1142,6 +1214,17 @@ in ]; }); + tree-sitter-cli = prev.tree-sitter-cli.overrideAttrs (_: { + # Keep this package hermetic: provide the already-packaged tree-sitter + # binary instead of using the LuaRocks backend that downloads from GitHub. + installPhase = '' + runHook preInstall + mkdir -p $out/bin + ln -s ${lib.getExe tree-sitter} $out/bin/tree-sitter + runHook postInstall + ''; + }); + tree-sitter-http = prev.tree-sitter-http.overrideAttrs (old: { nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ tree-sitter @@ -1163,6 +1246,13 @@ in meta.broken = lua.luaversion != "5.1"; }); + tree-sitter-teal = prev.tree-sitter-teal.overrideAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs ++ [ + tree-sitter + writableTmpDirAsHomeHook + ]; + }); + utf8 = prev.utf8.overrideAttrs { postPatch = '' sed -i '/#include /a\