Переглянути джерело

nixpkgs/neovim: update plugins and treesitter

nvim-treesitter is in an ambiguous position now and it also tries to
take over installation of parsers which we don't need. Instead, just
take the parts that we do need like the queries and indent code.

We now also have to handle enabling treesitter highlights for the
parsers that we do install ourselves.
Thomas Dy 6 днів тому
батько
коміт
d89df1ea1a

+ 4 - 0
.config/nixpkgs/neovim/config/lua/user/plugins/editing.lua

@@ -31,6 +31,10 @@ local spec_treesitter = require('mini.ai').gen_spec.treesitter
 MiniAi.setup({
   -- only consider the current location
   search_method = 'cover',
+  mappings = {
+    around_next = '',
+    inside_next = '',
+  },
   custom_textobjects = {
     ['.'] = spec_treesitter({
       a = '@call.outer',

+ 16 - 29
.config/nixpkgs/neovim/config/lua/user/plugins/treesitter.lua

@@ -1,37 +1,24 @@
--- Use Treesitter for syntax highlighting
-require('nvim-treesitter.configs').setup({
-  highlight = {
-    enable = true,
-  },
-  indent = {
-    enable = true,
-  },
-  incremental_selection = {
-    enable = true,
-    keymaps = {
-      init_selection = ']t',
-      node_incremental = ']t',
-      node_decremental = '[t',
-    },
-  },
-  textobjects = {
-    swap = {
-      enable = true,
-      swap_next = {
-        ['>,'] = '@parameter.inner',
-      },
-      swap_previous = {
-        ['<,'] = '@parameter.inner',
-      },
-    },
-  },
-})
+-- treesitter indent
+vim.o.indentexpr = "v:lua.require('nvim-treesitter.indent').get_indent(v:num)"
 
 -- set foldexpr to use treesitter
 vim.o.foldmethod = 'expr'
-vim.o.foldexpr = 'nvim_treesitter#foldexpr()'
+vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
 vim.o.foldenable = false
 
+-- incremental selection
+vim.keymap.set('n', ']t', 'van', { remap = true })
+vim.keymap.set('v', ']t', 'an', { remap = true })
+vim.keymap.set('v', '[t', 'in', { remap = true })
+
+-- swapping textobjects
+vim.keymap.set('n', '>,', function()
+  require('nvim-treesitter-textobjects.swap').swap_next '@parameter.inner'
+end)
+vim.keymap.set('n', '<,', function()
+  require('nvim-treesitter-textobjects.swap').swap_previous '@parameter.inner'
+end)
+
 -- Treesitter context
 require('treesitter-context').setup({
   enable = true,

+ 9 - 3
.config/nixpkgs/neovim/plugins/default.nix

@@ -16,10 +16,16 @@ let
         # try to fix indentation in JS
         ./treesitter-ecma.patch
       ];
-    };
+      installPhase = ''
+        mkdir $out
+        cp -r runtime/queries $out/queries
+
+        mkdir $out/plugin
+        cp plugin/query_predicates.lua $out/plugin
 
-    "mistweaverco/kulala.nvim" = {
-      patches = [ ./kulala-treesitter.patch ];
+        mkdir -p $out/lua/nvim-treesitter
+        cp lua/nvim-treesitter/indent.lua $out/lua/nvim-treesitter
+      '';
     };
 
     "FourierTransformer/tinytoml" = {

+ 0 - 16
.config/nixpkgs/neovim/plugins/kulala-treesitter.patch

@@ -1,16 +0,0 @@
-diff --git a/lua/kulala/config/init.lua b/lua/kulala/config/init.lua
-index f680379..6a81674 100644
---- a/lua/kulala/config/init.lua
-+++ b/lua/kulala/config/init.lua
-@@ -116,6 +116,11 @@ local function setup_treesitter_master()
- end
- 
- local function set_kulala_parser()
-+  if vim.treesitter.language.add("kulala_http") then
-+    vim.treesitter.language.register("kulala_http", { "http", "rest" })
-+    return
-+  end
-+
-   local parsers = vim.F.npcall(require, "nvim-treesitter.parsers")
- 
-   if not parsers then

+ 30 - 30
.config/nixpkgs/neovim/plugins/sources.json

@@ -4,8 +4,8 @@
     "sha256": "0wqxdjgplf04nq428ialw1w03f8nh5vb629a17vl5gc9gf3zfanq"
   },
   "tpope/vim-fugitive": {
-    "rev": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4",
-    "sha256": "1fk02wb2g52lqxxp1gx551bbv7nmambwjiqfgcp4ypn2n4wnhzxv"
+    "rev": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0",
+    "sha256": "023i21g547qafvskpyhpw7a2fnj626fi242cils9i3ykmmg8wx5x"
   },
   "tpope/vim-rhubarb": {
     "rev": "5496d7c94581c4c9ad7430357449bb57fc59f501",
@@ -16,44 +16,44 @@
     "sha256": "1yvpk0cnsx1b1q2wp52fv4mj71w8ssz4dcbbdix65m8qna6d0m9h"
   },
   "Wansmer/treesj": {
-    "rev": "925b506eadd9b465e6e577bb684d86e9863a2e21",
-    "sha256": "1sdrvdq1fhx4g3yy50cfylj1wii09dx1mmxpm98nm2k73hildwf3"
+    "rev": "26bc2a8432ba3ea79ed6aa346fba780a3d372570",
+    "sha256": "11zksl1xc71ykyd2gcfy3xyzm4s3144mk9ym2jv5vh0fglxz9ymc"
   },
   "nvim-telescope/telescope.nvim": {
-    "rev": "b4da76be54691e854d3e0e02c36b0245f945c2c7",
-    "sha256": "161qlx099ymi62qsd89srda605ynks1sswx3djamrwqp3dxb9596"
+    "rev": "f7c673b8e46e8f233ff581d3624a517d33a7e264",
+    "sha256": "1hkc4nfn5bmw2rx1sndp4w7y169xdks4d6pb7chl6kbq4zq2cxvn"
   },
   "nvim-telescope/telescope-fzf-native.nvim": {
-    "rev": "1f08ed60cafc8f6168b72b80be2b2ea149813e55",
-    "sha256": "137a05qwbpcrcrfj4az7dwx5a43yyfib4crx1hi8bhjx9j5gqav7"
+    "rev": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c",
+    "sha256": "04x1zhfq24qglhfv3rk3s2j6arysxq27czvpm4w037386bi0q48a"
   },
   "nvim-lua/plenary.nvim": {
-    "rev": "b9fd5226c2f76c951fc8ed5923d85e4de065e509",
-    "sha256": "1kg043h7dqcrqqgg8pp6hsldx7jdhlh8qwad2kkckia191xgnjgm"
+    "rev": "74b06c6c75e4eeb3108ec01852001636d85a932b",
+    "sha256": "1bms9ihcz2gsk88mr00izxn7sjl1lfc62mk0fy54z20g756c8iwy"
   },
   "echasnovski/mini.nvim": {
-    "rev": "7bbafa4691147bc8b74a51986b957daca14c1876",
-    "sha256": "1lkv9gq0qhq76x1mvpxj80rcw4ln8vcwr2yq1i8ghpamy0dz9ah3"
+    "rev": "69b7433355664cf76898eb86a12a019f39bd86d1",
+    "sha256": "06wixch3hpbwrhhn1n34av5wjd4vk39pz8kcqzgcadq7yds0k2ly"
   },
   "neovim/nvim-lspconfig": {
-    "rev": "3e89e4973d784e1c966517e528b3a30395403fa7",
-    "sha256": "0gbvjd6gs89248p67s00asqdizdj126rf25cq4ckq80w62ws5lvi"
+    "rev": "c588db330592fa477a70d2fee6ba20a57194bdc3",
+    "sha256": "047rnm95mvw80w66dd959v7jlbqjfi29bxsf496l5lgip4fpv1nn"
   },
   "nvim-treesitter/nvim-treesitter-textobjects": {
-    "rev": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c",
-    "sha256": "0pp8s0wljwhc93jp47ad4pigqm8q7v173374c1vpydhx09qwl4ga"
+    "rev": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e",
+    "sha256": "03dbmmc1s63ygm11mn27sx3bg43ygcy12c40kdbc3giha8953skw"
   },
   "sainnhe/sonokai": {
-    "rev": "45481a54f9e44b8b9d89509df514b86bbf22aa07",
-    "sha256": "07f4inv3i7pqj654y8pmc1q7jxw5cf28nvq4jhgh6wpzby1d5z40"
+    "rev": "b023c5280b16fe2366f5e779d8d2756b3e5ee9c3",
+    "sha256": "1xvcldv5ywzzs4xrld6qa45pi0dl7mb3q5mkhnjw98rblplqplvl"
   },
   "LnL7/vim-nix": {
     "rev": "7235c7ce2cea530cb6b59bc3e46d4bfe917d15c8",
     "sha256": "109narpbw9kbih7ai49p1zw7j2bj7nzpk3n02z80jcbgb48zqs8y"
   },
   "nvim-treesitter/nvim-treesitter": {
-    "rev": "42fc28ba918343ebfd5565147a42a26580579482",
-    "sha256": "1ck1qslxwi18qxrga68blvk1dg9j4jn65xiw8snq5pk06waksnq9"
+    "rev": "4916d6592ede8c07973490d9322f187e07dfefac",
+    "sha256": "0wgwbxi6h99fsp901xysm0424lhgrh9fq1nlck02m53qbfs7l11x"
   },
   "bfredl/nvim-luadev": {
     "optional": true,
@@ -61,29 +61,29 @@
     "sha256": "0pvb25bdmx4hxs3g7pkdqfjg3qpnr9p5szzbqqwaw3lbdnbyykzy"
   },
   "nvim-treesitter/nvim-treesitter-context": {
-    "rev": "66a9b5fa9e806918b5fe3dba00c6cce7e230abd2",
-    "sha256": "1bj1i7a9lmqamdkf9nirkx6jhcis23n2k23nbzblxybchaqj9ylf"
+    "rev": "b0c45cefe2c8f7b55fc46f34e563bc428ef99636",
+    "sha256": "1l93ni1rnsaizklh7k321izvfsjzdbh5wvzl8q7kvy1wjs43x2ib"
   },
   "mistweaverco/kulala.nvim": {
     "optional": true,
-    "rev": "3e81123652a72a2717f9916d6f2b52c2ae6f7e96",
-    "sha256": "0xa30qzghpxikdjqac9x783sdzmzq7zb7ywhzwrkbwl3yf2y4l9c"
+    "rev": "6656c9d332735ca6a27725e0fb45a1715c4372d9",
+    "sha256": "0dasjrryw4zgwh3iv599rkdify8ckqsyivm8h5c2355lwl8a9vkv"
   },
   "aaronik/treewalker.nvim": {
-    "rev": "4b268cdd9d9b4bc6b06760dcf883734de84bfcd3",
-    "sha256": "0pzzz0a72vnssdypisb4s8v55llx21gzzww51xadsbfah1c3nkcj"
+    "rev": "53ca7205a0016c06d4e5b390e968587001ab73e3",
+    "sha256": "0pr74w9qm0j46bb42p56yr30189k32yn210zppkhyz0nh6j8yacm"
   },
   "tpope/vim-rsi": {
     "rev": "45540637ead22f011e8215f1c90142e49d946a54",
     "sha256": "0vr5mlna5f60dmhk4ims7g0ikqw15h21hr619xii1069ggddqr9v"
   },
   "FourierTransformer/tinytoml": {
-    "rev": "8fc9acf778eea141a36b7b42f55fcb6689fcfd3f",
-    "sha256": "1np8gymhlvklf45f9961ksxkm0nz3ppwkxcjaw8qxzr2fgd3kq9j"
+    "rev": "d4da3e173c6f7bd632a68e7b607231c85946b877",
+    "sha256": "0kccr2lalsw27g0lhsib98qvpbqni7knvny7zk4a912y1c0vhb7k"
   },
   "mawkler/demicolon.nvim": {
-    "rev": "7cd3587c4f4d22cb645c3a2b5ca93ec08012d23f",
-    "sha256": "1b5a4lgcwfyv4hdg44r38fiscvc6xgsy6qiq9zk9jb0qd4x28ym4"
+    "rev": "a9ca137474b3a02e1d6ac48bfdb1985172e2ec9a",
+    "sha256": "0fyrhf3zhh320l2ks4aywd91h9ffng7y3w101lc7i5pn0k4dsfwc"
   },
   "nvim-telescope/telescope-ui-select.nvim": {
     "rev": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2",

+ 6 - 6
.config/nixpkgs/neovim/plugins/treesitter-ecma.patch

@@ -1,13 +1,13 @@
-diff --git a/queries/ecma/indents.scm b/queries/ecma/indents.scm
-index d5674167..dcfd2ad6 100644
---- a/queries/ecma/indents.scm
-+++ b/queries/ecma/indents.scm
+diff --git a/runtime/queries/ecma/indents.scm b/runtime/queries/ecma/indents.scm
+index b613426e..ed7b3bfc 100644
+--- a/runtime/queries/ecma/indents.scm
++++ b/runtime/queries/ecma/indents.scm
 @@ -37,7 +37,7 @@
  
  (variable_declarator
    value: (_) @_value
--  (#not-kind-eq? @_value "arrow_function" "call_expression" "function")) @indent.begin
-+  (#not-kind-eq? @_value "arrow_function" "function")) @indent.begin
+-  (#not-kind-eq? @_value "arrow_function" "call_expression")) @indent.begin
++  (#not-kind-eq? @_value "arrow_function")) @indent.begin
  
  (arguments
    ")" @indent.end)

+ 3 - 3
.config/nixpkgs/neovim/plugins/treesitter-jsx.patch

@@ -1,7 +1,7 @@
-diff --git a/queries/jsx/highlights.scm b/queries/jsx/highlights.scm
+diff --git a/runtime/queries/jsx/highlights.scm b/runtime/queries/jsx/highlights.scm
 index 0615d253..17dfc4d3 100644
---- a/queries/jsx/highlights.scm
-+++ b/queries/jsx/highlights.scm
+--- a/runtime/queries/jsx/highlights.scm
++++ b/runtime/queries/jsx/highlights.scm
 @@ -66,90 +66,6 @@
  
  (html_character_reference) @character.special

+ 16 - 0
.config/nixpkgs/neovim/treesitter/default.nix

@@ -7,6 +7,7 @@ let
       nameParts = builtins.split "/" (spec.repo or "tree-sitter/tree-sitter-${name}");
       owner = builtins.head nameParts;
       repo = builtins.elemAt nameParts 2;
+      filetypes = spec.filetypes or [name];
 
       grammar = tree-sitter.buildGrammar ({
         language = name;
@@ -19,11 +20,18 @@ let
       } // lib.optionalAttrs (builtins.hasAttr "path" spec) {
         location = spec.path;
       });
+
+      initLua = ''
+        vim.treesitter.language.register('${name}', { ${lib.concatMapStringsSep ", " (filetype: "'${filetype}'") filetypes} })
+      '';
     in
     runCommand "tree-sitter-${name}" {
       passthru = {
         inherit grammar;
       };
+
+      inherit initLua;
+      passAsFile = [ "initLua" ];
     } ''
       mkdir -p $out/parser
       ln -s ${grammar}/parser $out/parser/${name}.so
@@ -33,6 +41,14 @@ let
           ln -s ${grammar}/queries $out/queries
         fi
       ''}
+
+      mkdir -p $out/plugin
+      cp "$initLuaPath" $out/plugin/init.lua
+
+      mkdir -p $out/after/ftplugin
+      ${lib.concatMapStringsSep "\n" (filetype: ''
+        echo 'vim.treesitter.start()' > $out/after/ftplugin/${filetype}.lua
+      '') filetypes}
     '';
 in
 builtins.mapAttrs buildTreesitterPlugin grammars

+ 37 - 33
.config/nixpkgs/neovim/treesitter/grammars.json

@@ -1,11 +1,12 @@
 {
   "bash": {
-    "rev": "0c46d792d54c536be5ff7eb18eb95c70fccdb232",
-    "sha256": "1jaq1v9ln6ivgcyzxwynjspwyddw2pq8bic56lrzhb4bj0ba0d9q"
+    "rev": "a06c2e4415e9bc0346c6b86d401879ffb44058f7",
+    "sha256": "0qglzigcy2sizpvpd3qik9lnnmh85dkhz5jl2aiias9p74p3bm1q",
+    "filetypes": ["bash", "sh"]
   },
   "css": {
-    "rev": "6e327db434fec0ee90f006697782e43ec855adf5",
-    "sha256": "19qwqr29r6ysnsljhlv1pa7k83c8mp01787j6v83pkva77sgnzbs"
+    "rev": "dda5cfc5722c429eaba1c910ca32c2c0c5bb1a3f",
+    "sha256": "1qcl9j8hpmdz9hhwzg4byhs5z7ja3lq1fg5yxij3h5dy4h9jfnwc"
   },
   "elvish": {
     "repo": "elves/tree-sitter-elvish",
@@ -18,42 +19,45 @@
     "sha256": "1wwkdnx9wff6haqnsn8zbw5rgs2v0qnc9hid5vkhs8n42fiviwsg"
   },
   "go": {
-    "rev": "5e73f476efafe5c768eda19bbe877f188ded6144",
-    "sha256": "1b6xgh3j6khywslxbdvjnqk66lznzhbp9ykbxi5470nc8fv5s09y"
+    "rev": "2346a3ab1bb3857b48b29d779a1ef9799a248cd7",
+    "sha256": "1bb1clm4nh8srgrvchdsd8l805qs2qy9fhcjj9xifcxnz4rx69vy"
   },
   "javascript": {
-    "rev": "6fbef40512dcd9f0a61ce03a4c9ae7597b36ab5c",
-    "sha256": "0ss65ssys8m6g6pmy1k7dg5yiz0njl1am7ycs85hd0by244c7l2z"
+    "rev": "58404d8cf191d69f2674a8fd507bd5776f46cb11",
+    "sha256": "0grm51ap493kc5xp8hwrbmbd27a2f27igmysshqa3kzagqsx7xpr",
+    "filetypes": ["javascript", "javascriptreact"]
   },
   "json": {
-    "rev": "46aa487b3ade14b7b05ef92507fdaa3915a662a3",
-    "sha256": "0sy186nvqhvy78zmk12kbjyfgpbw3q9kk4j8xc71wciqncx81imk"
+    "rev": "001c28d7a29832b06b0e831ec77845553c89b56d",
+    "sha256": "1dv8gijrcj3hdj8pvlqwhbjq64c9pc8ry6bg8q5xllmwwwvxnj3i",
+    "filetypes": ["json", "jsonc"]
   },
   "lua": {
-    "repo": "MunifTanjim/tree-sitter-lua",
-    "rev": "db16e76558122e834ee214c8dc755b4a3edc82a9",
-    "sha256": "0q78bfq24cz8ds0q73fqvrss63j0ci5bmk8ziqk5zw77a2m5g5xq"
+    "repo": "tree-sitter-grammars/tree-sitter-lua",
+    "rev": "10fe0054734eec83049514ea2e718b2a56acd0c9",
+    "sha256": "1mhlwpj4ajqajgjw99l9xhiqnyg9hwn7zdgvdw037vk3k8vrldjp"
   },
   "markdown": {
-    "repo": "MDeiml/tree-sitter-markdown",
+    "repo": "tree-sitter-grammars/tree-sitter-markdown",
     "path": "tree-sitter-markdown",
-    "rev": "413285231ce8fa8b11e7074bbe265b48aa7277f9",
-    "sha256": "0r8jlmyr1bnyqqipmpmxxw4qw81c9n0l29xdfkz2n2zmjqps5v9r"
+    "rev": "f969cd3ae3f9fbd4e43205431d0ae286014c05b5",
+    "sha256": "0vz9r1dbbdj8vwf45izmbajhjbl98ww2dvlk1faqy33kx7plsiar"
   },
   "nix": {
     "repo": "nix-community/tree-sitter-nix",
-    "rev": "cfc53fd287d23ab7281440a8526c73542984669b",
-    "sha256": "0bmalpgvfcz1zd72wq43r5qvhj3dqqp7zn9kfb6bs0valrxagaks"
+    "rev": "eabf96807ea4ab6d6c7f09b671a88cd483542840",
+    "sha256": "15ir69lwns7f6i1frhhkl334qjsrw52bwxi1shjiyjg48mvq2a3i"
   },
   "ruby": {
-    "rev": "89bd7a8e5450cb6a942418a619d30469f259e5d6",
-    "sha256": "0mwijxk6a1kqnvvqaxkpya8s4m4pygd0kfrz045aq6ijlk1nm0zk"
+    "rev": "ad907a69da0c8a4f7a943a7fe012712208da6dee",
+    "sha256": "1n7pz8f4nmba1dwxl229cg84c9a24hy9z7380vpcpmd7m4821h15"
   },
   "tsx": {
     "repo": "tree-sitter/tree-sitter-typescript",
     "path": "tsx",
     "rev": "75b3874edb2dc714fb1fd77a32013d0f8699989f",
-    "sha256": "1sq3c11m9yjsr696m32bcwaz772kqdhpq0sy96jbgwqq38h3lhq3"
+    "sha256": "1sq3c11m9yjsr696m32bcwaz772kqdhpq0sy96jbgwqq38h3lhq3",
+    "filetypes": ["typescriptreact"]
   },
   "typescript": {
     "path": "typescript",
@@ -61,33 +65,33 @@
     "sha256": "1sq3c11m9yjsr696m32bcwaz772kqdhpq0sy96jbgwqq38h3lhq3"
   },
   "jsdoc": {
-    "rev": "a417db5dbdd869fccb6a8b75ec04459e1d4ccd2c",
-    "sha256": "0li1shmlbwng2l369w4v3bg36xw3n3lkmvfqkycdbx27mv6y1hih"
+    "rev": "658d18dcdddb75c760363faa4963427a7c6b52db",
+    "sha256": "1qrgan1xpj717qmwdbgb3lqjgffyhsw0qxhjwhdhqfv2lgkw4cn6"
   },
   "vimdoc": {
     "repo": "neovim/tree-sitter-vimdoc",
-    "rev": "2694c3d27e2ca98a0ccde72f33887394300d524e",
-    "sha256": "0dmb889sryrgd34gm66f2jm7l9crshv7c2fr50yk9x4xva2cw08c"
+    "rev": "f061895a0eff1d5b90e4fb60d21d87be3267031a",
+    "sha256": "18f1dr3j79axg6yqrvm0fc2w4cil403al9xifc4h4vkkp6hg6y9b"
   },
   "java": {
-    "rev": "a7db5227ec40fcfe94489559d8c9bc7c8181e25a",
-    "sha256": "171aywx1cv7krldwdxyfhlbl69kx54yq4kdrkwm7rwrbqcqbknkw"
+    "rev": "e10607b45ff745f5f876bfa3e94fbcc6b44bdc11",
+    "sha256": "00w4d34rgl52blkx7x1jz4cj9d272ncljicjgdyvbchy1m2qg1jy"
   },
   "query": {
     "repo": "tree-sitter-grammars/tree-sitter-query",
-    "rev": "930202c2a80965a7a9ca018b5b2a08b25dfa7f12",
-    "sha256": "0274iz2z55m29yk56lmb7sans2k6hpd0nzgrznfx3jwr8dm2jw5r"
+    "rev": "fc5409c6820dd5e02b0b0a309d3da2bfcde2db17",
+    "sha256": "0p9zwir4ngzkaazbvckd4c97826vr776cqs96zzm7kblgqf4qmz7"
   },
   "groovy": {
     "repo": "murtaza64/tree-sitter-groovy",
-    "rev": "86911590a8e46d71301c66468e5620d9faa5b6af",
-    "sha256": "0vbsg5xkdja6xyp8nm7g9fs4ndaq3qz6lq8vk9c7l2znw6bb17gb"
+    "rev": "deb0dcf8c4544f07564060f6e9b9f6e4b0bfc27d",
+    "sha256": "05q6q713c1yp4y7dcmq1z957n01fp1s3c2mdhxpcg0idhv0xmcy7"
   },
   "kulala_http": {
     "repo": "mistweaverco/kulala.nvim",
     "branch": "main",
     "path": "lua/tree-sitter",
-    "rev": "3e81123652a72a2717f9916d6f2b52c2ae6f7e96",
-    "sha256": "0xa30qzghpxikdjqac9x783sdzmzq7zb7ywhzwrkbwl3yf2y4l9c"
+    "rev": "6656c9d332735ca6a27725e0fb45a1715c4372d9",
+    "sha256": "0dasjrryw4zgwh3iv599rkdify8ckqsyivm8h5c2355lwl8a9vkv"
   }
 }

+ 2 - 13
.config/nixpkgs/neovim/treesitter/update-treesitter.sh

@@ -3,16 +3,8 @@
 
 set -euo pipefail
 
-treesitter_rev=$(jq -r '.["nvim-treesitter/nvim-treesitter"].rev' ../plugins/sources.json)
-
-lockfile=$(curl -L -sf "https://github.com/nvim-treesitter/nvim-treesitter/raw/$treesitter_rev/lockfile.json")
-
 grammars=$(< grammars.json)
 
-get_revision() {
-  jq -r ".$1.revision" <<<"$lockfile"
-}
-
 q() {
   jq -r "$@" <<<"$grammars"
 }
@@ -24,13 +16,10 @@ u() {
 update_grammar() {
   name=$1
   repo=$(q --arg name "$name" '.[$name].repo // "tree-sitter/tree-sitter-\($name)"')
+  branch=$(q -e --arg name "$name" '.[$name].branch // "HEAD"')
 
   echo "Updating $name" >&2
-
-  revision=$(get_revision "$name")
-  if branch=$(q -e --arg name "$name" '.[$name].branch'); then
-    revision=$(git ls-remote "https://github.com/$repo" "$branch" | cut -b -40)
-  fi
+  revision=$(git ls-remote "https://github.com/$repo" "$branch" | cut -b -40)
   sha256=$(nix-prefetch-url --unpack "https://github.com/$repo/archive/$revision.tar.gz")
 
   u --arg name "$name" --arg rev "$revision" --arg sha256 "$sha256" '