Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python3Packages.tree-sitter-grammars: init at 0.22.5 #320783

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,13 @@
githubId = 1773511;
name = "Adrien Devresse";
};
adfaure = {
email = "[email protected]";
matrix = "@adfaure:matrix.org";
github = "adfaure";
githubId = 8026586;
name = "Adrien Faure";
};
adisbladis = {
email = "[email protected]";
matrix = "@adis:blad.is";
Expand Down Expand Up @@ -707,6 +714,13 @@
githubId = 45179933;
name = "Alex Jackson";
};
a-jay98 = {
name = "Ali Jamadi";
email = "[email protected]";
matrix = "@a.jamadi:matrix.org";
github = "a-jay98";
githubId = 23138252;
};
ajgrf = {
email = "[email protected]";
github = "ajgrf";
Expand Down
125 changes: 125 additions & 0 deletions pkgs/development/python-modules/tree-sitter-grammars/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
{ lib
, buildPythonPackage
, pytestCheckHook
, tree-sitter
, symlinkJoin
, writeTextDir
# `name`: grammar derivation pname in the format of `tree-sitter-<lang>`
, name
, grammarDrv
}:
let
inherit (grammarDrv) version;

snakeCaseName = lib.replaceStrings [ "-" ] [ "_" ] name;
drvPrefix = "python-${name}";
langIdentOverrides = {
tree_sitter_org_nvim = "tree_sitter_org";
};
langIdent = langIdentOverrides.${snakeCaseName} or snakeCaseName;
Comment on lines +14 to +19
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are you doing here??

So if the name is tree_sitter_org_nvim, then you want to replace it with tree_sitter_org and otherwise just use snakeCaseName? Why do it in such a complicated manner, instead of just using a simple if statement?
Also, please put a comment stating why you are replacing the name here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally I believe this is cleaner and easier to maintain than a if statement

What if new a tree-sitter grammar gets added with a weird name like tree_sitter_org_nvim 😂? We can simply put another "override" in there

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, please put a comment stating why you are replacing the name here.

Could you please tell me why you are renaming here?
Looking at the commit, it seems to have been named this name rather deliberately: 1705882

And before introducing hacky workarounds here, we should change the name in general or just leave it as is.

What if new a tree-sitter grammar gets added with a weird name like tree_sitter_org_nvim 😂?

Then more packages have to worry about it since it would also result in conflicts in our general tree-sitter infrastructure, so doing this workaround here appears to be a bad idea because it will cause more overhead in the long term.

in
buildPythonPackage {
inherit version;
pname = drvPrefix;

src = symlinkJoin {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would probably be cleaner keeping the files in-tree, pointing src there and using substituteInPlace --subst-var-by in postPatch to pass the variables.

name = "${drvPrefix}-source";
paths = [
(writeTextDir "${snakeCaseName}/__init__.py"
Comment on lines +25 to +28
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be entirely frank, this seems like madness. It's hard to maintain code, just inline in some file, and I'm fairly certain you could have accomplished the same result using https://github.com/grantjenks/py-tree-sitter-languages (which is already packaged) and by putting less than 15-mins of work into https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/tree-sitter/default.nix so it has a package option for additional grammars.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, I'm sorry I copy-pasted the wrong link, I meant to refer to https://github.com/tree-sitter/py-tree-sitter (the same one I referred to in #320783 (review)). The official one isn't deprecated and still maintained, and is the one we have in nixpkgs.

''
from ._binding import language

__all__ = ["language"]
''
)
(writeTextDir "${snakeCaseName}/binding.c"
''
#include <Python.h>

typedef struct TSLanguage TSLanguage;

TSLanguage *${langIdent}(void);

static PyObject* _binding_language(PyObject *self, PyObject *args) {
return PyLong_FromVoidPtr(${langIdent}());
}

static PyMethodDef methods[] = {
{"language", _binding_language, METH_NOARGS,
"Get the tree-sitter language for this grammar."},
{NULL, NULL, 0, NULL}
};

static struct PyModuleDef module = {
.m_base = PyModuleDef_HEAD_INIT,
.m_name = "_binding",
.m_doc = NULL,
.m_size = -1,
.m_methods = methods
};

PyMODINIT_FUNC PyInit__binding(void) {
return PyModule_Create(&module);
}
''
)
(writeTextDir "setup.py"
''
from platform import system
from setuptools import Extension, setup


setup(
Copy link
Member

@jtojnar jtojnar Jul 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

name="${snakeCaseName}",
version="${version}",
packages=["${snakeCaseName}"],
ext_package="${snakeCaseName}",
ext_modules=[
Extension(
name="_binding",
sources=["${snakeCaseName}/binding.c"],
extra_objects = ["${grammarDrv}/parser"],
extra_compile_args=(
["-std=c11"] if system() != 'Windows' else []
),
define_macros=[
("Py_LIMITED_API", "0x03080000"),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does the magic number/address 0x03080000 here mean, could you please add a comment?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That should be documented, and based on that you should also set disabled = pythonOlder "3.8"

("PY_SSIZE_T_CLEAN", None)
],
py_limited_api=True,
)
],
)
''
)
(writeTextDir "tests/test_language.py"
''
from ${snakeCaseName} import language
from tree_sitter import Language, Parser


def test_language():
lang = Language(language())
assert lang is not None
parser = Parser()
parser.language = lang
tree = parser.parse(bytes("", "utf-8"))
assert tree is not None
''
Comment on lines +101 to +108
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not convinced by the soundness of this test, did you at least try to parse some actual code with some of the language-grammars?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC in one of our mob sessions, someone pointed out tree-sitter parsing cannot fail even if provided code doesn't follow the grammar, and no exception will be thrown no matter what (I'm not 100% sure tho)

I agree that asserting not None might not be enough, but I think the best we can do here is to change the assert not None to the resulting parse tree is an instance of some type that py-tree-sitter provides

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not answering my question. I asked if you tried to parse some actual code (manually) and check if the grammars work, I'm aware that improving this test isn't too easy, you could have a bunch of multiline strings in an attrset with actual language code and insert that instead of an empty string, at least for some languages.
Like for example:

{
  tree_sitter_python = {
    testCase = ''
      foo = 20
    '';
    expectedResult = $whateverTreeSitterShouldReturn
    ;
  };
}

is how I would probably go about this problem, and if a language isn't in the attr set, then you can still go with an empty string as default value.

)
];
};

preCheck = ''
rm -r ${snakeCaseName}
'';
Comment on lines +113 to +115
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please leave a comment on why you are removing the directory here.

Copy link

@adfaure adfaure Jun 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is "common" for python packages, it seems that pytest gets confused if a directory with the same name as the module is present during tests, (in this case ${snakeCaseName} also corresponds to the module name provided by the generated grammar package).

It looks like it is fairly common for python packages (here an example: https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/tree-sitter/default.nix#L45).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, and if you take a look at the file you just linked, you will notice that it has a comment linking to the issue in question on why you have to remove this directory, so please also add a comment here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct comment would be to mention #255262 .


nativeCheckInputs = [ tree-sitter pytestCheckHook ];
pythonImportsCheck = [ snakeCaseName ];

meta = {
description = "Python bindings for ${name}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ a-jay98 adfaure mightyiam stepbrobd ];
};
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/sogaiu/tree-sitter-clojure",
"rev": "6e41628e9d18b19caea1cb1d72aae4ccff5bdfe9",
"date": "2023-05-05T15:36:48+09:00",
"path": "/nix/store/fx50ap0gdspwcpgf0zni4j1pzz29abk5-tree-sitter-clojure",
"sha256": "0hcl4svn0q4979mx0nn3hhi27xfxj1lz7g1926lcjx6sv1z4ihmj",
"hash": "sha256-ssJIftjadMmoESm882mQ3fUjIoTDWtBrOolgYLcmlEE=",
"rev": "f4236d4da8aa92bc105d9c118746474c608e6af7",
"date": "2024-05-22T23:05:15+09:00",
"path": "/nix/store/vl1d7aql1bcvn65khrgs13rfk90q08ik-tree-sitter-clojure",
"sha256": "16hnb5d8shz216sv9hj5hxpg63ri86w5pf9bzi5z3f37zh7vlljj",
"hash": "sha256-UlK6D/xnuPFL/Cu5W7hBMQ/zbodFwrS1CeJDjVpZFpo=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/uyha/tree-sitter-cmake",
"rev": "20ffd6d3b4da1acdbf2d08204b2130a5b2f7c4b3",
"date": "2024-03-19T09:50:27+02:00",
"path": "/nix/store/2fcf8g6rryigpy6grr284qzgmqw1gkd5-tree-sitter-cmake",
"sha256": "16klinbjr9k5piwqvfvl48wmprk9wlypqnmihryy2wj2m2xzlyqa",
"hash": "sha256-Cnv6u6hCcuF9hrFafD3laeZbOSJ0u415vGWmLJeNdJo=",
"rev": "69d7a8b0f7493b0dbb07d54e8fea96c5421e8a71",
"date": "2024-06-20T12:32:15+07:00",
"path": "/nix/store/ldbzx710y8wy6dwca0hh8l4aa3cihbr2-tree-sitter-cmake",
"sha256": "10lj4f0h8bcbyl03rxgfhizj4vn6fz47jw6clfjz0c1ayxzql9av",
"hash": "sha256-WyWKf/cqMPClo8xwech3xm4if4Tu9TwA9YstBIEjkoI=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-cpp",
"rev": "72fd00128f1c38319670cbf4bcedbba0dc849d96",
"date": "2024-04-14T21:38:58-04:00",
"path": "/nix/store/sy0ln7q947bv9k313q4z6kkibl2zgdi1-tree-sitter-cpp",
"sha256": "0qaa48gq4n3300apwx1mdcwqnfg59q8bdj88c3ssd45pr1n47s88",
"hash": "sha256-COlDbMi3kKb1YAjJthBO5TmLOWs1dH4VAGNYgh8iSmE=",
"rev": "7ce8946cae4bb25adebe5b50394f702beb007026",
"date": "2024-06-17T17:57:22-05:00",
"path": "/nix/store/vcc2cwgnl76lcjjznq67k5y2qkc8b9by-tree-sitter-cpp",
"sha256": "0l2dznfafcf7hiw3b46ddfng24ddcj6k25gzd3c1sqkhfdyk99c5",
"hash": "sha256-haU0fXNwYh3YaP8VMY1krRHxrGvNkDV4hMcxp5z9TVA=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-css",
"rev": "02b4ee757654b7d54fe35352fd8e53a8a4385d42",
"date": "2024-02-14T18:09:29-05:00",
"path": "/nix/store/l2vr6xj78qrqjlpj6lzc0bi8dirqvfkx-tree-sitter-css",
"sha256": "0j1kg16sly7xsvvc3kxyy5zaznlbz7x2j2bwwv1r1nki2249ly12",
"hash": "sha256-IniaiBBx2pDD5nwJKfr5i9qvfvG+z8H21v14qk14M0g=",
"rev": "f6be52c3d1cdb1c5e4dd7d8bce0a57497f55d6af",
"date": "2024-05-05T18:14:34-04:00",
"path": "/nix/store/iw66hs4n4wmf9mjaj4zb78diwfkb8y4d-tree-sitter-css",
"sha256": "1mq5yzcj16bv9jphgj0v16fsa9bzf7y204c78mf79ls2rqsanljp",
"hash": "sha256-V1KrNM5C03RcRYcRIPxxfyWlnQkbyAevTHuZINn3Bdc=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/usernobody14/tree-sitter-dart",
"rev": "6da46473ab8accb13da48113f4634e729a71d335",
"date": "2024-04-07T18:27:24-06:00",
"path": "/nix/store/v04h2p45ngm7llrckpkkbnvj9m5763vm-tree-sitter-dart",
"sha256": "1jxz4s0j8pmjxl7cz7s9blzqhr1w5jannxihidqrd6dqxawc6gh1",
"hash": "sha256-AT7DuOq4mZZxizB2a5UsPGSIP11Jn88O7bJeJIEmv8s=",
"rev": "ac0bb849ccd1a923963af47573b5e396736ff582",
"date": "2024-04-28T11:52:00-06:00",
"path": "/nix/store/7sfa8zsg3p14rm0dbgv030s86lk8fv3w-tree-sitter-dart",
"sha256": "0vm0yd2km73cyl2dph5qwb1fbgjjambn9mi4k7jxh495wrmk8hn8",
"hash": "sha256-yEI0a+YlEdjlmSTWZFdVUr7lwuK4wNsE9WycOkXzoG4=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/camdencheek/tree-sitter-dockerfile",
"rev": "d34a0cebd094e830bdd2106a28cb2f1fb22401d8",
"date": "2022-01-27T11:20:14-07:00",
"path": "/nix/store/3whf6fv79zqk5w0d6jbzfgs5jzm4cll4-tree-sitter-dockerfile",
"sha256": "0kf4c4xs5naj8lpcmr3pbdvwj526wl9p6zphxxpimbll7qv6qfnd",
"hash": "sha256-zTpsNj6Urhpv7/B+cxPlRhTJd1t35MouRVLZojthxE0=",
"rev": "868e44ce378deb68aac902a9db68ff82d2299dd0",
"date": "2024-05-09T10:18:45-04:00",
"path": "/nix/store/mcyxjcriszp3av7pjxfqn9igpcxrd0jg-tree-sitter-dockerfile",
"sha256": "09iw9mqlpgsi6ak4mxrv16anvmbyap6vf61r2pi2lqdp9h1mp7g0",
"hash": "sha256-4J1bA0y3YSriFTkYt81VftVtlQk790qmMlG/S3FNPCY=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/glehmann/tree-sitter-earthfile",
"rev": "9badbe4b107647672f627e7d6bddc8a0b61d1f50",
"date": "2024-04-17T16:28:53+02:00",
"path": "/nix/store/n7jprqmy1r5xgr0bl5d7rsz4xi10m9rf-tree-sitter-earthfile",
"sha256": "0yslldcxpmi2hdgja1ygz3grsaj2jj52xm1dqdwlv296ahx5wqkh",
"hash": "sha256-cGJeOlQmiU15wy3ULoqUQiqd3/jPByVfgyLW21mjVHs=",
"rev": "5a864159ff728b6d4f7d0aab3723f85a467d180f",
"date": "2024-06-19T14:30:10+02:00",
"path": "/nix/store/kmd1ggdgxjsk7y4wb6b7ysck6agls2ml-tree-sitter-earthfile",
"sha256": "0gkgrkmfmdmfx4qdb403gnb09bp8isc7kbpg4rlndd26ikzs2zn3",
"hash": "sha256-w36h/4xGtGZpJu+ueZiO6K4Eln0DkNUw6a626urMbz4=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-embedded-template",
"rev": "6d791b897ecda59baa0689a85a9906348a2a6414",
"date": "2024-02-14T20:15:12-05:00",
"path": "/nix/store/fj8gk7h81lgj15x79cbrkfvdw2hmbmyb-tree-sitter-embedded-template",
"sha256": "0d4kc2bpbx1bvd0xv37wd87hbi775hq4938qz2n657h036dzg0i3",
"hash": "sha256-I4L3mxkAnmKs+BiNRDAs58QFD2r8jN1B2yv0dZdgkzQ=",
"rev": "38d5004a797298dc42c85e7706c5ceac46a3f29f",
"date": "2024-05-05T21:28:26-04:00",
"path": "/nix/store/i2kni0fn6yqgags7l329bbg3n45dc9ww-tree-sitter-embedded-template",
"sha256": "178cvdmlvzq2c29n0x8aganqbx3vz6w9m90gwhk63qxa2rxw5wr0",
"hash": "sha256-IPPCexaq42Em5A+kmrj5e/SFrXoKdWCTYAL/TWvbDJ0=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/thehamsta/tree-sitter-glsl",
"rev": "e7817c982e0e921c5ee89a1e0283121bb5cc5e01",
"date": "2024-04-14T19:48:45+02:00",
"path": "/nix/store/fs5zdqn1lilbd6f0g6kgjjl35dli61fv-tree-sitter-glsl",
"sha256": "1gxg9d3i7iyzxv0sijllbl57dl7ai7z48f1639xd8ljhwl7yyim6",
"hash": "sha256-pkbvD+VQUtR6GiY4RP6J6tB2Cl2UyqjB7t/HE0dLr78=",
"rev": "3736dfc811c07fa749ca818f94c9a3977734dd26",
"date": "2024-06-22T18:14:31+02:00",
"path": "/nix/store/bggm747bvxcm5i5fl7v4iq2y7d6y00rh-tree-sitter-glsl",
"sha256": "0vxgn61vb4ckrm0izrwb2zikw9nvwv0hq2g7k0cx88n65vv0r084",
"hash": "sha256-BIEM9i7GItQZmOcJDMHm2yY+4xeL5x9BzZORtYOxr28=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-haskell",
"rev": "95a4f0023741b3bee0cc500f3dab9c5bab2dc2be",
"date": "2024-03-24T15:47:21+01:00",
"path": "/nix/store/ay1m5h51pp7p84hh5mlmxir8fsr68bs5-tree-sitter-haskell",
"sha256": "0kwbknxk8f6824bijqqkmlfg04074v31ava8qsf97bqsgs6039vf",
"hash": "sha256-bqcBjH4ar5OcxkhtFcYmBxDwHK0TYxkXEcg4NLudi08=",
"rev": "a50070d5bb5bd5c1281740a6102ecf1f4b0c4f19",
"date": "2024-05-05T18:23:47+02:00",
"path": "/nix/store/knnf5zfxjwnml5cdbp3x6kjkw7q4nhsd-tree-sitter-haskell",
"sha256": "0hi72f7d4y89i6zkzg9r2j16ykxcb4vh4gwaxg9hcqa95wpv9qw6",
"hash": "sha256-huO0Ly9JYQbT64o/AjdZrE9vghQ5vT+/iQl50o4TJ0I=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/sogaiu/tree-sitter-janet-simple",
"rev": "51271e260346878e1a1aa6c506ce6a797b7c25e2",
"date": "2023-11-11T12:18:30+09:00",
"path": "/nix/store/whms9s60xj63bl0b7m2gqkd7900h5qwy-tree-sitter-janet-simple",
"sha256": "018vwy6y1kr1bh5wp399vspc1y4wpvvgh0c6p7541xl196rzywa1",
"hash": "sha256-QXH/s0mB9kDKuYYB+Pa+nPjArt4pjcsLXCHP4I3nGwU=",
"rev": "6eb1525872013f58c64b0526ac9d64174f7136f1",
"date": "2024-06-22T22:45:38+09:00",
"path": "/nix/store/2dlrvpk58cahq0y75vqc83v8fvp40l6l-tree-sitter-janet-simple",
"sha256": "1b1yyxnp1m1h0dryhc7s0d61zgshga21dyhvzqwnplr9hi3iqvqd",
"hash": "sha256-DW8cR4Qp02s5/hv6FoR6UL8fTAP6MOhzAzDUcG33Pqw=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-javascript",
"rev": "ac10a11e0c8db512f70e6b798260d2516d22454c",
"date": "2024-04-07T02:36:56-04:00",
"path": "/nix/store/b5fahwmcx0riy3bfaarlggncfgfkhx38-tree-sitter-javascript",
"sha256": "1f0k7mk785ijppw1swcrilr5bl2nddi7hifml431y4lsqm7y6kmg",
"hash": "sha256-r07jT8WaEh8GodVFeGJrVtBVMo2ZcR34vTIWdGY9E7g=",
"rev": "391a8fcc48a11f63bf18ec9885f6f069e760949a",
"date": "2024-05-31T00:36:32-04:00",
"path": "/nix/store/nc1vnh2p2r3gfc3w7cgbna7sqmwgapn3-tree-sitter-javascript",
"sha256": "0s2gxvmbbi15p9v6r86mxa20vnrf3zxrnhs8ll9ijlm2i2923qhq",
"hash": "sha256-GOIhkoiiUhkTpUhDm/sfLtsNhOrVoGx2uiXEteruT2g=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-jsdoc",
"rev": "6a6cf9e7341af32d8e2b2e24a37fbfebefc3dc55",
"date": "2024-02-14T18:13:00-05:00",
"path": "/nix/store/9i7fgay23cjnvjapg95bj07jbliv8bmk-tree-sitter-jsdoc",
"sha256": "1xmkkqyb9mc18jh6dlffzw9j560mmc5i6fbic8ki9z0r30b1ravw",
"hash": "sha256-fKscFhgZ/BQnYnE5EwurFZgiE//O0WagRIHVtDyes/Y=",
"rev": "49fde205b59a1d9792efc21ee0b6d50bbd35ff14",
"date": "2024-05-05T20:47:41-04:00",
"path": "/nix/store/7i5mj175rsgz6gsxji0hbchxw6mvvsjp-tree-sitter-jsdoc",
"sha256": "030r6ksv6v0wnlb8yi22n0blls21cipzvgi4flnjllpm9vrsxxii",
"hash": "sha256-Mfau8071UiotdSS+/W9kQWhKF7BCRI8WtRxss/U0GQw=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-json",
"rev": "80e623c2165887f9829357acfa9c0a0bab34a3cd",
"date": "2024-04-07T15:21:58-04:00",
"path": "/nix/store/9cixfhx0x72pvn0ak349cbbzvhzlvhll-tree-sitter-json",
"sha256": "0mjphf34k5d0h28wwafwljk486h5mzx30dqdxz23lcmvnh0s79y1",
"hash": "sha256-waejAbS7MjrE7w03MPqvBRpEpqTcKc6RgKCVSYaDV1Y=",
"rev": "94f5c527b2965465956c2000ed6134dd24daf2a7",
"date": "2024-05-06T15:10:02-04:00",
"path": "/nix/store/nl87jvkhqfwshind35dvh204bmjkdv1h-tree-sitter-json",
"sha256": "14za39wy4cw0r6r2m5a1i1za9m2wcyrlmh6yi2zl15b86i3dkbyp",
"hash": "sha256-16/ZRjRolUC/iN7ASrNnXNSkfohBlSqyyYAz4nka6pM=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"url": "https://github.com/joakker/tree-sitter-json5",
"rev": "c23f7a9b1ee7d45f516496b1e0e4be067264fa0d",
"date": "2023-10-05T17:25:17-03:00",
"path": "/nix/store/k0jyqq66qp3nq8nmzr1dhm3pk2vxhg1r-tree-sitter-json5",
"sha256": "11j8sjq2b0ibiygmcnxzl5vxa0p9ygngfhzjvjl19jnlnf0h7a6p",
"hash": "sha256-16gDgbPUyhSo3PJD9+zz6QLVd6G/W1afjyuCJbDUSIY=",
"rev": "ab0ba8229d639ec4f3fa5f674c9133477f4b77bd",
"date": "2024-04-30T19:40:01-04:00",
"path": "/nix/store/3ag1lv1h8wg3cvbjbigyqmvqr0jy1i48-tree-sitter-json5",
"sha256": "0n33v04d5q79j1qp1l26ygfqywl7vxfam38dap78g6i7ys78581d",
"hash": "sha256-LaCCjvYnmofOVQ2Nqlzfh3KP3fNG0HBxkOng0gjYY1g=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
Expand Down
Loading