From 08aa83ee316d7a668f2290ed25701ba0f2e09a60 Mon Sep 17 00:00:00 2001 From: traxys Date: Mon, 11 Mar 2024 12:20:53 +0100 Subject: [PATCH] neovim: Import neovim from flake --- flake.lock | 1195 ++++++++++- flake.nix | 255 ++- neovim/default.nix | 781 +++++++ neovim/modules/commands.nix | 20 + neovim/nvim-treesitter/default.nix | 40 + neovim/nvim-treesitter/generated.nix | 2960 ++++++++++++++++++++++++++ neovim/nvim-treesitter/override.nix | 90 + neovim/nvim-treesitter/update.py | 77 + neovim/plugins/firenvim.nix | 186 ++ neovim/plugins/headerguard.nix | 22 + neovim/plugins/lsp-signature.nix | 189 ++ 11 files changed, 5782 insertions(+), 33 deletions(-) create mode 100644 neovim/default.nix create mode 100644 neovim/modules/commands.nix create mode 100644 neovim/nvim-treesitter/default.nix create mode 100644 neovim/nvim-treesitter/generated.nix create mode 100644 neovim/nvim-treesitter/override.nix create mode 100755 neovim/nvim-treesitter/update.py create mode 100644 neovim/plugins/firenvim.nix create mode 100644 neovim/plugins/headerguard.nix create mode 100644 neovim/plugins/lsp-signature.nix diff --git a/flake.lock b/flake.lock index b4a54c1..1a119b6 100644 --- a/flake.lock +++ b/flake.lock @@ -49,7 +49,29 @@ }, "devshell": { "inputs": { - "flake-utils": "flake-utils_11", + "flake-utils": "flake-utils_10", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708939976, + "narHash": "sha256-O5+nFozxz2Vubpdl1YZtPrilcIXPcRAjqNdNE8oCRoA=", + "owner": "numtide", + "repo": "devshell", + "rev": "5ddecd67edbd568ebe0a55905273e56cc82aabe3", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_2": { + "inputs": { + "flake-utils": "flake-utils_14", "nixpkgs": [ "nvim-traxys", "nixvim", @@ -169,6 +191,36 @@ "type": "github" } }, + "flake-compat_5": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -188,6 +240,27 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "nvim-traxys", @@ -268,11 +341,11 @@ "systems": "systems_12" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", "type": "github" }, "original": { @@ -286,11 +359,11 @@ "systems": "systems_13" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -304,11 +377,11 @@ "systems": "systems_14" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -321,6 +394,24 @@ "inputs": { "systems": "systems_15" }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_16": { + "inputs": { + "systems": "systems_16" + }, "locked": { "lastModified": 1694529238, "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", @@ -335,9 +426,9 @@ "type": "github" } }, - "flake-utils_16": { + "flake-utils_17": { "inputs": { - "systems": "systems_16" + "systems": "systems_17" }, "locked": { "lastModified": 1681202837, @@ -353,16 +444,34 @@ "type": "github" } }, - "flake-utils_17": { + "flake-utils_18": { "inputs": { - "systems": "systems_17" + "systems": "systems_18" }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_19": { + "inputs": { + "systems": "systems_19" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", "type": "github" }, "original": { @@ -389,6 +498,24 @@ "type": "github" } }, + "flake-utils_20": { + "inputs": { + "systems": "systems_20" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flake-utils_3": { "inputs": { "systems": "systems_4" @@ -499,11 +626,11 @@ "systems": "systems_9" }, "locked": { - "lastModified": 1709126324, - "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -513,6 +640,28 @@ } }, "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "nvim-traxys", @@ -598,6 +747,27 @@ } }, "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709988192, + "narHash": "sha256-qxwIkl85P0I1/EyTT+NJwzbXdOv86vgZxcv4UKicjK8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "b0b0c3d94345050a7f86d1ebc6c56eea4389d030", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { "inputs": { "nixpkgs": [ "nvim-traxys", @@ -783,7 +953,30 @@ }, "neovim-flake": { "inputs": { - "flake-utils": "flake-utils_10", + "flake-utils": "flake-utils_9", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1710151617, + "narHash": "sha256-+qEv8VHpk6ATsaDKJeiMGnS/AHI7o7BYSAtV8JOxK2E=", + "owner": "neovim", + "repo": "neovim", + "rev": "cdbc3e3f3e95a1df9de180ee4ac52d460e5c6905", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-flake_2": { + "inputs": { + "flake-utils": "flake-utils_13", "nixpkgs": [ "nvim-traxys", "nixpkgs" @@ -821,7 +1014,44 @@ "type": "github" } }, + "new-plugin:vim-headerguard_2": { + "flake": false, + "locked": { + "lastModified": 1669481306, + "narHash": "sha256-asziFy3Dag8bV7Ptw5G46JQVzyrkJiQkaNqdjz72jwY=", + "owner": "drmikehenry", + "repo": "vim-headerguard", + "rev": "8987a70ad416414ce5c570842c392111abd10555", + "type": "github" + }, + "original": { + "owner": "drmikehenry", + "repo": "vim-headerguard", + "type": "github" + } + }, "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709771483, + "narHash": "sha256-Hjzu9nCknHLQvhdaRFfCEprH0o15KcaNu1QDr3J88DI=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "550340062c16d7ef8c2cc20a3d2b97bcd3c6b6f6", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-darwin_2": { "inputs": { "nixpkgs": [ "nvim-traxys", @@ -1149,11 +1379,37 @@ "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", "nixpkgs": [ - "nvim-traxys", "nixpkgs" ], "pre-commit-hooks": "pre-commit-hooks" }, + "locked": { + "lastModified": 1710016565, + "narHash": "sha256-GoNm8bTT2YjZwdS0jcF0u2mTb8TYDDVyl8vgGICaS8I=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "fb897e22e31f4d29766d94cea3df4aaf008c095e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nixvim_2": { + "inputs": { + "devshell": "devshell_2", + "flake-compat": "flake-compat_5", + "flake-parts": "flake-parts_3", + "home-manager": "home-manager_3", + "nix-darwin": "nix-darwin_2", + "nixpkgs": [ + "nvim-traxys", + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks_2" + }, "locked": { "lastModified": 1709939045, "narHash": "sha256-cnh6ffM9DtulbQTZozM8ya1i7gjpbG7+n8udSTaYzrM=", @@ -1185,14 +1441,14 @@ }, "nvim-traxys": { "inputs": { - "flake-utils": "flake-utils_9", - "neovim-flake": "neovim-flake", - "new-plugin:vim-headerguard": "new-plugin:vim-headerguard", + "flake-utils": "flake-utils_12", + "neovim-flake": "neovim-flake_2", + "new-plugin:vim-headerguard": "new-plugin:vim-headerguard_2", "nixfiles": [], "nixpkgs": [ "nixpkgs" ], - "nixvim": "nixvim", + "nixvim": "nixvim_2", "plugin:clangd_extensions-nvim": "plugin:clangd_extensions-nvim", "plugin:cmp-buffer": "plugin:cmp-buffer", "plugin:cmp-calc": "plugin:cmp-calc", @@ -1271,6 +1527,22 @@ "type": "github" } }, + "plugin:clangd_extensions-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1697373144, + "narHash": "sha256-I+/VJrWjUgAP8EjR5tUsIO5bgxsAsNDDRNc6j5Toy0k=", + "owner": "p00f", + "repo": "clangd_extensions.nvim", + "rev": "34c8eaa12be192e83cd4865ce2375e9f53e728f2", + "type": "github" + }, + "original": { + "owner": "p00f", + "repo": "clangd_extensions.nvim", + "type": "github" + } + }, "plugin:cmp-buffer": { "flake": false, "locked": { @@ -1287,6 +1559,22 @@ "type": "github" } }, + "plugin:cmp-buffer_2": { + "flake": false, + "locked": { + "lastModified": 1660101488, + "narHash": "sha256-dG4U7MtnXThoa/PD+qFtCt76MQ14V1wX8GMYcvxEnbM=", + "owner": "hrsh7th", + "repo": "cmp-buffer", + "rev": "3022dbc9166796b644a841a02de8dd1cc1d311fa", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-buffer", + "type": "github" + } + }, "plugin:cmp-calc": { "flake": false, "locked": { @@ -1303,6 +1591,22 @@ "type": "github" } }, + "plugin:cmp-calc_2": { + "flake": false, + "locked": { + "lastModified": 1692345454, + "narHash": "sha256-jQITlxWmB5luJtaq2ztXhn/l2L3s3rxGBZWAfXKenO0=", + "owner": "hrsh7th", + "repo": "cmp-calc", + "rev": "ce91d14d2e7a8b3f6ad86d85e34d41c1ae6268d9", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-calc", + "type": "github" + } + }, "plugin:cmp-nvim-lsp": { "flake": false, "locked": { @@ -1319,6 +1623,22 @@ "type": "github" } }, + "plugin:cmp-nvim-lsp_2": { + "flake": false, + "locked": { + "lastModified": 1702205473, + "narHash": "sha256-/0sh9vJBD9pUuD7q3tNSQ1YLvxFMNykdg5eG+LjZAA8=", + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "rev": "5af77f54de1b16c34b23cba810150689a3a90312", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "type": "github" + } + }, "plugin:cmp-path": { "flake": false, "locked": { @@ -1335,6 +1655,22 @@ "type": "github" } }, + "plugin:cmp-path_2": { + "flake": false, + "locked": { + "lastModified": 1664784283, + "narHash": "sha256-thppiiV3wjIaZnAXmsh7j3DUc6ceSCvGzviwFUnoPaI=", + "owner": "hrsh7th", + "repo": "cmp-path", + "rev": "91ff86cd9c29299a64f968ebb45846c485725f23", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-path", + "type": "github" + } + }, "plugin:cmp_luasnip": { "flake": false, "locked": { @@ -1351,6 +1687,22 @@ "type": "github" } }, + "plugin:cmp_luasnip_2": { + "flake": false, + "locked": { + "lastModified": 1696878902, + "narHash": "sha256-nUJJl2zyK/oSwz5RzI9j3gf9zpDfCImCYbPbVsyXgz8=", + "owner": "saadparwaiz1", + "repo": "cmp_luasnip", + "rev": "05a9ab28b53f71d1aece421ef32fee2cb857a843", + "type": "github" + }, + "original": { + "owner": "saadparwaiz1", + "repo": "cmp_luasnip", + "type": "github" + } + }, "plugin:comment-nvim": { "flake": false, "locked": { @@ -1367,6 +1719,22 @@ "type": "github" } }, + "plugin:comment-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1691409559, + "narHash": "sha256-+dF1ZombrlO6nQggufSb0igXW5zwU++o0W/5ZA07cdc=", + "owner": "numtostr", + "repo": "comment.nvim", + "rev": "0236521ea582747b58869cb72f70ccfa967d2e89", + "type": "github" + }, + "original": { + "owner": "numtostr", + "repo": "comment.nvim", + "type": "github" + } + }, "plugin:efmls-configs-nvim": { "flake": false, "locked": { @@ -1383,6 +1751,22 @@ "type": "github" } }, + "plugin:efmls-configs-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1707668922, + "narHash": "sha256-uZSFKoOuTt3B5Y99B+YbVepwFbVJB65sdqEXX8YvJHg=", + "owner": "creativenull", + "repo": "efmls-configs-nvim", + "rev": "a61c52d325835e24dc14ffb7748a32b8f087ae32", + "type": "github" + }, + "original": { + "owner": "creativenull", + "repo": "efmls-configs-nvim", + "type": "github" + } + }, "plugin:firenvim": { "flake": false, "locked": { @@ -1399,6 +1783,22 @@ "type": "github" } }, + "plugin:firenvim_2": { + "flake": false, + "locked": { + "lastModified": 1709655298, + "narHash": "sha256-Hu+B+NU1WRde9CJgxYOu3LUSTx+r61WJnQ6I4RFBM7E=", + "owner": "glacambre", + "repo": "firenvim", + "rev": "3363c140dca2ef0b89e2be0317917f077d752cd7", + "type": "github" + }, + "original": { + "owner": "glacambre", + "repo": "firenvim", + "type": "github" + } + }, "plugin:git-messenger-vim": { "flake": false, "locked": { @@ -1415,6 +1815,22 @@ "type": "github" } }, + "plugin:git-messenger-vim_2": { + "flake": false, + "locked": { + "lastModified": 1661833086, + "narHash": "sha256-SAnGSSjHbwlpkpyjlINr5rgL7M28W42bWGvQrkOQl1w=", + "owner": "rhysd", + "repo": "git-messenger.vim", + "rev": "8a61bdfa351d4df9a9118ee1d3f45edbed617072", + "type": "github" + }, + "original": { + "owner": "rhysd", + "repo": "git-messenger.vim", + "type": "github" + } + }, "plugin:gitsigns-nvim": { "flake": false, "locked": { @@ -1431,6 +1847,22 @@ "type": "github" } }, + "plugin:gitsigns-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1706372432, + "narHash": "sha256-SLDaqzbvBTTuJEP9H2WOADuxsguMntR+upsGPW8aOEk=", + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "rev": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae", + "type": "github" + }, + "original": { + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "type": "github" + } + }, "plugin:inc-rename-nvim": { "flake": false, "locked": { @@ -1447,6 +1879,22 @@ "type": "github" } }, + "plugin:inc-rename-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1703794018, + "narHash": "sha256-troS1bXmhhvJeetn0YD/vSqknhLjevA+q85fX7FWJC8=", + "owner": "smjonas", + "repo": "inc-rename.nvim", + "rev": "6f9b5f9cb237e12935144cdc535322b8c93c1b25", + "type": "github" + }, + "original": { + "owner": "smjonas", + "repo": "inc-rename.nvim", + "type": "github" + } + }, "plugin:indent-blankline-nvim": { "flake": false, "locked": { @@ -1463,6 +1911,22 @@ "type": "github" } }, + "plugin:indent-blankline-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1707806353, + "narHash": "sha256-ZzsQVLP7EmHeVEkSvbENce/hk1HANN+qL8Vv7FaOiV0=", + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "rev": "821a7acd88587d966f7e464b0b3031dfe7f5680c", + "type": "github" + }, + "original": { + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "type": "github" + } + }, "plugin:lspkind-nvim": { "flake": false, "locked": { @@ -1479,6 +1943,22 @@ "type": "github" } }, + "plugin:lspkind-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1704982040, + "narHash": "sha256-/QLdBU/Zwmkw1NGuLBD48tvrmIP9d9WHhgcLEQgRTWo=", + "owner": "onsails", + "repo": "lspkind.nvim", + "rev": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf", + "type": "github" + }, + "original": { + "owner": "onsails", + "repo": "lspkind.nvim", + "type": "github" + } + }, "plugin:ltex_extra-nvim": { "flake": false, "locked": { @@ -1495,6 +1975,22 @@ "type": "github" } }, + "plugin:ltex_extra-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1706969216, + "narHash": "sha256-ekdjF7Bq+DmI96sHlTcXQYR7WmezA7GwEBbTw4V/OcI=", + "owner": "barreiroleo", + "repo": "ltex_extra.nvim", + "rev": "42dd3572cb09b52a137e91e515f2dff5eb631b1e", + "type": "github" + }, + "original": { + "owner": "barreiroleo", + "repo": "ltex_extra.nvim", + "type": "github" + } + }, "plugin:lualine-nvim": { "flake": false, "locked": { @@ -1511,6 +2007,22 @@ "type": "github" } }, + "plugin:lualine-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1709556301, + "narHash": "sha256-G4npmdS7vue68h5QN8vWx3Oh5FHdvmzFHGxqMIRC+Mk=", + "owner": "nvim-lualine", + "repo": "lualine.nvim", + "rev": "8b56462bfb746760465264de41b4907310f113ec", + "type": "github" + }, + "original": { + "owner": "nvim-lualine", + "repo": "lualine.nvim", + "type": "github" + } + }, "plugin:luasnip": { "flake": false, "locked": { @@ -1527,6 +2039,22 @@ "type": "github" } }, + "plugin:luasnip_2": { + "flake": false, + "locked": { + "lastModified": 1709453917, + "narHash": "sha256-oyMykjBLkk/9S5AutnPKL+DKgfW59TS+kGUE2GsVbHk=", + "owner": "L3MON4D3", + "repo": "LuaSnip", + "rev": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32", + "type": "github" + }, + "original": { + "owner": "L3MON4D3", + "repo": "LuaSnip", + "type": "github" + } + }, "plugin:markdown-preview-nvim": { "flake": false, "locked": { @@ -1543,6 +2071,22 @@ "type": "github" } }, + "plugin:markdown-preview-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1697511247, + "narHash": "sha256-TBXdG/Ih5DusAYZJyn37zVqHcMD85VkjrCoLyTo/KBg=", + "owner": "iamcco", + "repo": "markdown-preview.nvim", + "rev": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee", + "type": "github" + }, + "original": { + "owner": "iamcco", + "repo": "markdown-preview.nvim", + "type": "github" + } + }, "plugin:neo-tree-nvim": { "flake": false, "locked": { @@ -1559,6 +2103,22 @@ "type": "github" } }, + "plugin:neo-tree-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1710023878, + "narHash": "sha256-mt3RAT/WFbOIQNSuHmvqSly8FkQdb2QrihnRvWVnULs=", + "owner": "nvim-neo-tree", + "repo": "neo-tree.nvim", + "rev": "230e9383c664061bdf3517c998ed1bf6ed409c59", + "type": "github" + }, + "original": { + "owner": "nvim-neo-tree", + "repo": "neo-tree.nvim", + "type": "github" + } + }, "plugin:netman-nvim": { "flake": false, "locked": { @@ -1575,6 +2135,22 @@ "type": "github" } }, + "plugin:netman-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1708362506, + "narHash": "sha256-7UC4MpdnYOg8qF9x4juok6L542QEFzBa4xiEvI3JgwA=", + "owner": "miversen33", + "repo": "netman.nvim", + "rev": "d0ec9d4ca195b2c87bf46ab050130a2c806310c4", + "type": "github" + }, + "original": { + "owner": "miversen33", + "repo": "netman.nvim", + "type": "github" + } + }, "plugin:noice-nvim": { "flake": false, "locked": { @@ -1591,6 +2167,22 @@ "type": "github" } }, + "plugin:noice-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1705952416, + "narHash": "sha256-lNCdwB0B5arbTEIHdDoQ19/vQ0UT89AQFwZM+RHqOTg=", + "owner": "folke", + "repo": "noice.nvim", + "rev": "bf67d70bd7265d075191e7812d8eb42b9791f737", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "noice.nvim", + "type": "github" + } + }, "plugin:nui-nvim": { "flake": false, "locked": { @@ -1607,6 +2199,22 @@ "type": "github" } }, + "plugin:nui-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1709703853, + "narHash": "sha256-pzGzQXctHKbI1SZnzX4bApE+pyEADw1pjWvNy9j61U0=", + "owner": "MunifTanjim", + "repo": "nui.nvim", + "rev": "756c59f46057cd2d43619cd3a6d4e01b2aa60295", + "type": "github" + }, + "original": { + "owner": "MunifTanjim", + "repo": "nui.nvim", + "type": "github" + } + }, "plugin:nvim-cmp": { "flake": false, "locked": { @@ -1623,6 +2231,22 @@ "type": "github" } }, + "plugin:nvim-cmp_2": { + "flake": false, + "locked": { + "lastModified": 1706857187, + "narHash": "sha256-FF7OHYUC4VFwFvqWKI/R5BSAC0JL6qFKUS6/XRSd9H8=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, "plugin:nvim-lightbulb": { "flake": false, "locked": { @@ -1639,6 +2263,22 @@ "type": "github" } }, + "plugin:nvim-lightbulb_2": { + "flake": false, + "locked": { + "lastModified": 1689887436, + "narHash": "sha256-Meoop66jINllnxN6aohuPmU7DEjn64FMq/b8zuy9FEQ=", + "owner": "kosayoda", + "repo": "nvim-lightbulb", + "rev": "8f00b89dd1b1dbde16872bee5fbcee2e58c9b8e9", + "type": "github" + }, + "original": { + "owner": "kosayoda", + "repo": "nvim-lightbulb", + "type": "github" + } + }, "plugin:nvim-lspconfig": { "flake": false, "locked": { @@ -1655,6 +2295,22 @@ "type": "github" } }, + "plugin:nvim-lspconfig_2": { + "flake": false, + "locked": { + "lastModified": 1710135636, + "narHash": "sha256-lr3MhdXfn3rLW5qEfpj8hc+jUtYLbPGNd9CkdBxtPA0=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "1917b562a02f20885900b1da0f0ea25028ccedab", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, "plugin:nvim-notify": { "flake": false, "locked": { @@ -1671,6 +2327,22 @@ "type": "github" } }, + "plugin:nvim-notify_2": { + "flake": false, + "locked": { + "lastModified": 1708161547, + "narHash": "sha256-xJYPOX4YLcWojMCdP1RO22/7FMrbcBQxqxrcVCE2TrU=", + "owner": "rcarriga", + "repo": "nvim-notify", + "rev": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15", + "type": "github" + }, + "original": { + "owner": "rcarriga", + "repo": "nvim-notify", + "type": "github" + } + }, "plugin:nvim-osc52": { "flake": false, "locked": { @@ -1687,6 +2359,22 @@ "type": "github" } }, + "plugin:nvim-osc52_2": { + "flake": false, + "locked": { + "lastModified": 1699797099, + "narHash": "sha256-gkJMgWfO+cIXTDCiofmGtdYg0s21eiaH+2gVZnKAmio=", + "owner": "ojroques", + "repo": "nvim-osc52", + "rev": "5e0210990b3c809ec58bbf830e0dabd4bda3a949", + "type": "github" + }, + "original": { + "owner": "ojroques", + "repo": "nvim-osc52", + "type": "github" + } + }, "plugin:nvim-tree-lua": { "flake": false, "locked": { @@ -1703,6 +2391,22 @@ "type": "github" } }, + "plugin:nvim-tree-lua_2": { + "flake": false, + "locked": { + "lastModified": 1709951243, + "narHash": "sha256-1lWdTSZt/J4geoQKLkZLQ5Yh992XpZ4cFHw4AGEJFPY=", + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "rev": "041dbd18f440207ad161503a384e7c82d575db66", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "type": "github" + } + }, "plugin:nvim-treesitter": { "flake": false, "locked": { @@ -1735,6 +2439,22 @@ "type": "github" } }, + "plugin:nvim-treesitter-context_2": { + "flake": false, + "locked": { + "lastModified": 1709675035, + "narHash": "sha256-wvr1ydulJlUuYQDCSXZjauDQi9Q0GugoLJ4TYZPonPE=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "rev": "b8b7e52c1517d401d7c519787d5dc4528c41291a", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "type": "github" + } + }, "plugin:nvim-treesitter-refactor": { "flake": false, "locked": { @@ -1751,6 +2471,38 @@ "type": "github" } }, + "plugin:nvim-treesitter-refactor_2": { + "flake": false, + "locked": { + "lastModified": 1680645221, + "narHash": "sha256-yzSkoH690qIEqvhiv0exeH7pS+J5ZVkqidEUOn0kb5M=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-refactor", + "rev": "65ad2eca822dfaec2a3603119ec3cc8826a7859e", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-refactor", + "type": "github" + } + }, + "plugin:nvim-treesitter_2": { + "flake": false, + "locked": { + "lastModified": 1710058593, + "narHash": "sha256-dVAN4Rk44XcD4Isx2zKoI6HpSTL7RnAKAhkeAg8CAu4=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "488bec03254207b1dd071be8cb1fb78434b6e777", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "type": "github" + } + }, "plugin:nvim-web-devicons": { "flake": false, "locked": { @@ -1767,6 +2519,22 @@ "type": "github" } }, + "plugin:nvim-web-devicons_2": { + "flake": false, + "locked": { + "lastModified": 1709961764, + "narHash": "sha256-3OF+GYe5tw2uz8aAp7KrZB8TEoTeOOmxl7mYJVSm8tI=", + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "rev": "75df79feb02d5e0ec114e447453775d4d291ea03", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "type": "github" + } + }, "plugin:openscad-nvim": { "flake": false, "locked": { @@ -1783,6 +2551,22 @@ "type": "github" } }, + "plugin:openscad-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1687207853, + "narHash": "sha256-XbyZxgqtr+lVkN5TyR02rJO42iMOh34cnym7ei50yOk=", + "owner": "salkin-mada", + "repo": "openscad.nvim", + "rev": "d77e7b3822da685d24a58081e94c4384e254d91f", + "type": "github" + }, + "original": { + "owner": "salkin-mada", + "repo": "openscad.nvim", + "type": "github" + } + }, "plugin:plantuml-syntax": { "flake": false, "locked": { @@ -1799,6 +2583,22 @@ "type": "github" } }, + "plugin:plantuml-syntax_2": { + "flake": false, + "locked": { + "lastModified": 1708620362, + "narHash": "sha256-aOiaD1U15hzCTSy7yUihTRcx7wwUV0UD8O8AM2O+/jw=", + "owner": "aklt", + "repo": "plantuml-syntax", + "rev": "309c15c77794433f276fb09eb4e3b8f381003cfd", + "type": "github" + }, + "original": { + "owner": "aklt", + "repo": "plantuml-syntax", + "type": "github" + } + }, "plugin:plenary-nvim": { "flake": false, "locked": { @@ -1815,6 +2615,22 @@ "type": "github" } }, + "plugin:plenary-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1709720625, + "narHash": "sha256-/ltkFqa5MTAI9z8oLv7+5SJ/Qq9l1kkuKGD955NbLi8=", + "owner": "nvim-lua", + "repo": "plenary.nvim", + "rev": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "plenary.nvim", + "type": "github" + } + }, "plugin:popup-nvim": { "flake": false, "locked": { @@ -1831,6 +2647,22 @@ "type": "github" } }, + "plugin:popup-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1637254091, + "narHash": "sha256-dNWz/xovUg55fDZUpVs/2kLphk3lqQyvPtc9ATwbeSQ=", + "owner": "nvim-lua", + "repo": "popup.nvim", + "rev": "b7404d35d5d3548a82149238289fa71f7f6de4ac", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "popup.nvim", + "type": "github" + } + }, "plugin:rustaceanvim": { "flake": false, "locked": { @@ -1847,6 +2679,22 @@ "type": "github" } }, + "plugin:rustaceanvim_2": { + "flake": false, + "locked": { + "lastModified": 1710107887, + "narHash": "sha256-Tiz4O8GMErOn+fhm2Pk5Sa+zK+9+AckdCN2zcIa7uzg=", + "owner": "mrcjkb", + "repo": "rustaceanvim", + "rev": "a59b4e04f7ac55a805b9705ac0a0653c5adca459", + "type": "github" + }, + "original": { + "owner": "mrcjkb", + "repo": "rustaceanvim", + "type": "github" + } + }, "plugin:skim-vim": { "flake": false, "locked": { @@ -1863,6 +2711,22 @@ "type": "github" } }, + "plugin:skim-vim_2": { + "flake": false, + "locked": { + "lastModified": 1684985229, + "narHash": "sha256-CFgUligbr2Z+gE5YofyCFcQ8fnwzaNOdQwm1QoPm4D4=", + "owner": "lotabout", + "repo": "skim.vim", + "rev": "aa2a5c44a6640843868cc5c1444abc0093e90e5a", + "type": "github" + }, + "original": { + "owner": "lotabout", + "repo": "skim.vim", + "type": "github" + } + }, "plugin:telescope-nvim": { "flake": false, "locked": { @@ -1879,6 +2743,22 @@ "type": "github" } }, + "plugin:telescope-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1709849420, + "narHash": "sha256-i+pGEMw8MQnFse5WGZdX9MMjEoR4H4rzHswCaT/zoso=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "7472420f8734c710bd7009081cef9b97f08a3821", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, "plugin:telescope-ui-select-nvim": { "flake": false, "locked": { @@ -1895,6 +2775,22 @@ "type": "github" } }, + "plugin:telescope-ui-select-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1701723223, + "narHash": "sha256-YRhNmmG4gx9Ht8JwjQfbTjJyTHEuZmtP6lqnhOsk8bE=", + "owner": "nvim-telescope", + "repo": "telescope-ui-select.nvim", + "rev": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope-ui-select.nvim", + "type": "github" + } + }, "plugin:tokyonight-nvim": { "flake": false, "locked": { @@ -1911,6 +2807,22 @@ "type": "github" } }, + "plugin:tokyonight-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1710060246, + "narHash": "sha256-wG4rQ4o8Q1wcsQvha/4EKRvQ1rvguU5W34h7JMSKpek=", + "owner": "folke", + "repo": "tokyonight.nvim", + "rev": "c025baf23b62f044eff1f4ef561c45de636f0e32", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "tokyonight.nvim", + "type": "github" + } + }, "plugin:trouble-nvim": { "flake": false, "locked": { @@ -1927,6 +2839,22 @@ "type": "github" } }, + "plugin:trouble-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1697626811, + "narHash": "sha256-8nLghiueYOtWY7OGVxow9A2G/5lgt+Kt5D8q1xeJvVg=", + "owner": "folke", + "repo": "trouble.nvim", + "rev": "f1168feada93c0154ede4d1fe9183bf69bac54ea", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "trouble.nvim", + "type": "github" + } + }, "plugin:vim-just": { "flake": false, "locked": { @@ -1943,6 +2871,22 @@ "type": "github" } }, + "plugin:vim-just_2": { + "flake": false, + "locked": { + "lastModified": 1709526844, + "narHash": "sha256-JGr4oI/XAneNBsCy4A5u0T2/hT9NCVLwho7TayILdKM=", + "owner": "NoahTheDuke", + "repo": "vim-just", + "rev": "ace92c34d72a413d51459ce5e9503e50f3262988", + "type": "github" + }, + "original": { + "owner": "NoahTheDuke", + "repo": "vim-just", + "type": "github" + } + }, "plugin:vim-matchup": { "flake": false, "locked": { @@ -1959,6 +2903,22 @@ "type": "github" } }, + "plugin:vim-matchup_2": { + "flake": false, + "locked": { + "lastModified": 1708780485, + "narHash": "sha256-Mm9hqwiQ8U3eCIQhpIrCw9t41EVa6JBsgww4Xt8RpSg=", + "owner": "andymass", + "repo": "vim-matchup", + "rev": "2d660e4aa7c566014c667af2cda0458043527902", + "type": "github" + }, + "original": { + "owner": "andymass", + "repo": "vim-matchup", + "type": "github" + } + }, "plugin:vim-snippets": { "flake": false, "locked": { @@ -1975,6 +2935,22 @@ "type": "github" } }, + "plugin:vim-snippets_2": { + "flake": false, + "locked": { + "lastModified": 1708790967, + "narHash": "sha256-JM2LPnA/DoUJTlMBcfUp6xApVIpc0ZfK9v5lXfJ/fjo=", + "owner": "honza", + "repo": "vim-snippets", + "rev": "393d980157b8149b3ff65a48bc4aae24dca9c846", + "type": "github" + }, + "original": { + "owner": "honza", + "repo": "vim-snippets", + "type": "github" + } + }, "plugin:which-key-nvim": { "flake": false, "locked": { @@ -1991,6 +2967,22 @@ "type": "github" } }, + "plugin:which-key-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1697801635, + "narHash": "sha256-uvghPj/teWrRMm09Gh8iQ/LV2nYJw0lmoiZK6L4+1cY=", + "owner": "folke", + "repo": "which-key.nvim", + "rev": "4433e5ec9a507e5097571ed55c02ea9658fb268a", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "which-key.nvim", + "type": "github" + } + }, "plugin:zk-nvim": { "flake": false, "locked": { @@ -2007,6 +2999,22 @@ "type": "github" } }, + "plugin:zk-nvim_2": { + "flake": false, + "locked": { + "lastModified": 1704467613, + "narHash": "sha256-jPx6S9zWoerrxjw7aqxk0EcU3cqfyA+WSyB2G02dfXU=", + "owner": "mickael-menu", + "repo": "zk-nvim", + "rev": "fb0962b75a680561f94cae0588b8da92ea8d2fae", + "type": "github" + }, + "original": { + "owner": "mickael-menu", + "repo": "zk-nvim", + "type": "github" + } + }, "powerlevel10k": { "flake": false, "locked": { @@ -2026,8 +3034,36 @@ "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_4", - "flake-utils": "flake-utils_12", + "flake-utils": "flake-utils_11", "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_6", + "flake-utils": "flake-utils_15", + "gitignore": "gitignore_2", "nixpkgs": [ "nvim-traxys", "nixvim", @@ -2055,7 +3091,7 @@ }, "raclette": { "inputs": { - "flake-utils": "flake-utils_13", + "flake-utils": "flake-utils_16", "hyperfine": "hyperfine", "naersk": [ "naersk" @@ -2081,7 +3117,7 @@ }, "roaming_proxy": { "inputs": { - "flake-utils": "flake-utils_15", + "flake-utils": "flake-utils_18", "naersk": [ "naersk" ], @@ -2117,13 +3153,63 @@ "meson-syntax": "meson-syntax", "mujmap": "mujmap", "naersk": "naersk_4", + "neovim-flake": "neovim-flake", + "new-plugin:vim-headerguard": "new-plugin:vim-headerguard", "nix-gaming": "nix-gaming", "nix-index-database": "nix-index-database", "nix-ld": "nix-ld", "nixpkgs": "nixpkgs_11", "nixpkgs-traxys": "nixpkgs-traxys", + "nixvim": "nixvim", "nur": "nur", "nvim-traxys": "nvim-traxys", + "plugin:clangd_extensions-nvim": "plugin:clangd_extensions-nvim_2", + "plugin:cmp-buffer": "plugin:cmp-buffer_2", + "plugin:cmp-calc": "plugin:cmp-calc_2", + "plugin:cmp-nvim-lsp": "plugin:cmp-nvim-lsp_2", + "plugin:cmp-path": "plugin:cmp-path_2", + "plugin:cmp_luasnip": "plugin:cmp_luasnip_2", + "plugin:comment-nvim": "plugin:comment-nvim_2", + "plugin:efmls-configs-nvim": "plugin:efmls-configs-nvim_2", + "plugin:firenvim": "plugin:firenvim_2", + "plugin:git-messenger-vim": "plugin:git-messenger-vim_2", + "plugin:gitsigns-nvim": "plugin:gitsigns-nvim_2", + "plugin:inc-rename-nvim": "plugin:inc-rename-nvim_2", + "plugin:indent-blankline-nvim": "plugin:indent-blankline-nvim_2", + "plugin:lspkind-nvim": "plugin:lspkind-nvim_2", + "plugin:ltex_extra-nvim": "plugin:ltex_extra-nvim_2", + "plugin:lualine-nvim": "plugin:lualine-nvim_2", + "plugin:luasnip": "plugin:luasnip_2", + "plugin:markdown-preview-nvim": "plugin:markdown-preview-nvim_2", + "plugin:neo-tree-nvim": "plugin:neo-tree-nvim_2", + "plugin:netman-nvim": "plugin:netman-nvim_2", + "plugin:noice-nvim": "plugin:noice-nvim_2", + "plugin:nui-nvim": "plugin:nui-nvim_2", + "plugin:nvim-cmp": "plugin:nvim-cmp_2", + "plugin:nvim-lightbulb": "plugin:nvim-lightbulb_2", + "plugin:nvim-lspconfig": "plugin:nvim-lspconfig_2", + "plugin:nvim-notify": "plugin:nvim-notify_2", + "plugin:nvim-osc52": "plugin:nvim-osc52_2", + "plugin:nvim-tree-lua": "plugin:nvim-tree-lua_2", + "plugin:nvim-treesitter": "plugin:nvim-treesitter_2", + "plugin:nvim-treesitter-context": "plugin:nvim-treesitter-context_2", + "plugin:nvim-treesitter-refactor": "plugin:nvim-treesitter-refactor_2", + "plugin:nvim-web-devicons": "plugin:nvim-web-devicons_2", + "plugin:openscad-nvim": "plugin:openscad-nvim_2", + "plugin:plantuml-syntax": "plugin:plantuml-syntax_2", + "plugin:plenary-nvim": "plugin:plenary-nvim_2", + "plugin:popup-nvim": "plugin:popup-nvim_2", + "plugin:rustaceanvim": "plugin:rustaceanvim_2", + "plugin:skim-vim": "plugin:skim-vim_2", + "plugin:telescope-nvim": "plugin:telescope-nvim_2", + "plugin:telescope-ui-select-nvim": "plugin:telescope-ui-select-nvim_2", + "plugin:tokyonight-nvim": "plugin:tokyonight-nvim_2", + "plugin:trouble-nvim": "plugin:trouble-nvim_2", + "plugin:vim-just": "plugin:vim-just_2", + "plugin:vim-matchup": "plugin:vim-matchup_2", + "plugin:vim-snippets": "plugin:vim-snippets_2", + "plugin:which-key-nvim": "plugin:which-key-nvim_2", + "plugin:zk-nvim": "plugin:zk-nvim_2", "powerlevel10k": "powerlevel10k", "raclette": "raclette", "roaming_proxy": "roaming_proxy", @@ -2218,7 +3304,7 @@ }, "rust-overlay_5": { "inputs": { - "flake-utils": "flake-utils_14", + "flake-utils": "flake-utils_17", "nixpkgs": "nixpkgs_12" }, "locked": { @@ -2237,7 +3323,7 @@ }, "rust-overlay_6": { "inputs": { - "flake-utils": "flake-utils_16", + "flake-utils": "flake-utils_19", "nixpkgs": "nixpkgs_13" }, "locked": { @@ -2256,7 +3342,7 @@ }, "rust-overlay_7": { "inputs": { - "flake-utils": "flake-utils_17", + "flake-utils": "flake-utils_20", "nixpkgs": [ "nixpkgs" ] @@ -2426,6 +3512,36 @@ "type": "github" } }, + "systems_18": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_19": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_2": { "locked": { "lastModified": 1681028828, @@ -2441,6 +3557,21 @@ "type": "github" } }, + "systems_20": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_3": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index 978b45f..d010854 100644 --- a/flake.nix +++ b/flake.nix @@ -88,6 +88,214 @@ #inputs.nixpkgs.follows = "nixpkgs"; }; fioul.url = "github:traxys/fioul"; + + neovim-flake = { + url = "github:neovim/neovim?dir=contrib"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixvim = { + url = "github:nix-community/nixvim"; + #url = "/home/traxys/Documents/nixvim"; + #url = "github:traxys/nixvim?ref=dev"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + # Neovim plugins + "plugin:clangd_extensions-nvim" = { + url = "github:p00f/clangd_extensions.nvim"; + flake = false; + }; + "plugin:netman-nvim" = { + url = "github:miversen33/netman.nvim"; + flake = false; + }; + "plugin:cmp-buffer" = { + url = "github:hrsh7th/cmp-buffer"; + flake = false; + }; + "plugin:cmp-calc" = { + url = "github:hrsh7th/cmp-calc"; + flake = false; + }; + "plugin:cmp-nvim-lsp" = { + url = "github:hrsh7th/cmp-nvim-lsp"; + flake = false; + }; + "plugin:cmp-path" = { + url = "github:hrsh7th/cmp-path"; + flake = false; + }; + "plugin:cmp_luasnip" = { + url = "github:saadparwaiz1/cmp_luasnip"; + flake = false; + }; + "plugin:comment-nvim" = { + url = "github:numtostr/comment.nvim"; + flake = false; + }; + "plugin:firenvim" = { + url = "github:glacambre/firenvim"; + flake = false; + }; + "plugin:git-messenger-vim" = { + url = "github:rhysd/git-messenger.vim"; + flake = false; + }; + "plugin:gitsigns-nvim" = { + url = "github:lewis6991/gitsigns.nvim"; + flake = false; + }; + "plugin:inc-rename-nvim" = { + url = "github:smjonas/inc-rename.nvim"; + flake = false; + }; + "plugin:indent-blankline-nvim" = { + url = "github:lukas-reineke/indent-blankline.nvim"; + flake = false; + }; + "plugin:lspkind-nvim" = { + url = "github:onsails/lspkind.nvim"; + flake = false; + }; + "plugin:lualine-nvim" = { + url = "github:nvim-lualine/lualine.nvim"; + flake = false; + }; + "plugin:noice-nvim" = { + url = "github:folke/noice.nvim"; + flake = false; + }; + "plugin:nui-nvim" = { + url = "github:MunifTanjim/nui.nvim"; + flake = false; + }; + "plugin:nvim-cmp" = { + url = "github:hrsh7th/nvim-cmp"; + flake = false; + }; + "plugin:nvim-lightbulb" = { + url = "github:kosayoda/nvim-lightbulb"; + flake = false; + }; + "plugin:nvim-lspconfig" = { + url = "github:neovim/nvim-lspconfig"; + flake = false; + }; + "plugin:nvim-notify" = { + url = "github:rcarriga/nvim-notify"; + flake = false; + }; + "plugin:nvim-osc52" = { + url = "github:ojroques/nvim-osc52"; + flake = false; + }; + "plugin:nvim-tree-lua" = { + url = "github:nvim-tree/nvim-tree.lua"; + flake = false; + }; + "plugin:nvim-treesitter-context" = { + url = "github:nvim-treesitter/nvim-treesitter-context"; + flake = false; + }; + "plugin:nvim-treesitter-refactor" = { + url = "github:nvim-treesitter/nvim-treesitter-refactor"; + flake = false; + }; + "plugin:plantuml-syntax" = { + url = "github:aklt/plantuml-syntax"; + flake = false; + }; + "plugin:plenary-nvim" = { + url = "github:nvim-lua/plenary.nvim"; + flake = false; + }; + "plugin:rustaceanvim" = { + url = "github:mrcjkb/rustaceanvim"; + flake = false; + }; + "plugin:telescope-nvim" = { + url = "github:nvim-telescope/telescope.nvim"; + flake = false; + }; + "plugin:telescope-ui-select-nvim" = { + url = "github:nvim-telescope/telescope-ui-select.nvim"; + flake = false; + }; + "plugin:trouble-nvim" = { + url = "github:folke/trouble.nvim"; + flake = false; + }; + "plugin:vim-matchup" = { + url = "github:andymass/vim-matchup"; + flake = false; + }; + "plugin:luasnip" = { + url = "github:L3MON4D3/LuaSnip"; + flake = false; + }; + "plugin:nvim-treesitter" = { + url = "github:nvim-treesitter/nvim-treesitter"; + flake = false; + }; + "plugin:openscad-nvim" = { + url = "github:salkin-mada/openscad.nvim"; + flake = false; + }; + "plugin:neo-tree-nvim" = { + url = "github:nvim-neo-tree/neo-tree.nvim"; + flake = false; + }; + "plugin:nvim-web-devicons" = { + url = "github:nvim-tree/nvim-web-devicons"; + flake = false; + }; + "plugin:popup-nvim" = { + url = "github:nvim-lua/popup.nvim"; + flake = false; + }; + "plugin:skim-vim" = { + url = "github:lotabout/skim.vim"; + flake = false; + }; + "plugin:tokyonight-nvim" = { + url = "github:folke/tokyonight.nvim"; + flake = false; + }; + "plugin:vim-snippets" = { + url = "github:honza/vim-snippets"; + flake = false; + }; + "plugin:markdown-preview-nvim" = { + url = "github:iamcco/markdown-preview.nvim"; + flake = false; + }; + "plugin:which-key-nvim" = { + url = "github:folke/which-key.nvim"; + flake = false; + }; + "plugin:zk-nvim" = { + url = "github:mickael-menu/zk-nvim"; + flake = false; + }; + "plugin:efmls-configs-nvim" = { + url = "github:creativenull/efmls-configs-nvim"; + flake = false; + }; + "plugin:vim-just" = { + url = "github:NoahTheDuke/vim-just/"; + flake = false; + }; + "plugin:ltex_extra-nvim" = { + url = "github:barreiroleo/ltex_extra.nvim"; + flake = false; + }; + + # Plugins that are not in nixpkgs + "new-plugin:vim-headerguard" = { + url = "github:drmikehenry/vim-headerguard"; + flake = false; + }; }; outputs = { @@ -112,7 +320,52 @@ // { glaurung = inputs.glaurung.defaultPackage."${system}"; raclette = inputs.raclette.defaultPackage."${system}"; - neovimTraxys = inputs.nvim-traxys.packages."${system}".nvim; + neovimTraxys = let + inputsMatching = with builtins; + prefix: + nixpkgs.lib.mapAttrs' + (prefixedName: value: { + name = + substring (stringLength "${prefix}:") (stringLength prefixedName) prefixedName; + inherit value; + }) + (nixpkgs.lib.filterAttrs + (name: _: (match "${prefix}:.*" name) != null) + inputs); + + neovimPlugins = final: prev: { + vimPlugins = prev.vimPlugins.extend (final': prev': + (nixpkgs.lib.mapAttrs ( + pname: src: + prev'."${pname}".overrideAttrs (old: { + version = src.shortRev; + inherit src; + }) + ) (inputsMatching "plugin")) + // ( + nixpkgs.lib.mapAttrs ( + pname: src: + prev.vimUtils.buildVimPlugin { + inherit pname src; + version = src.shortRev; + } + ) (inputsMatching "new-plugin") + )); + }; + + nixvim' = inputs.nixvim.legacyPackages."${system}"; + in + callPackage ({pkgs}: + nixvim'.makeNixvimWithModule { + module = import ./neovim; + pkgs = (pkgs.extend neovimPlugins).extend (final: prev: { + vimPlugins = prev.vimPlugins.extend (final': prev': { + nvim-treesitter = prev'.nvim-treesitter.overrideAttrs ( + prev.callPackage ./neovim/nvim-treesitter/override.nix {} final' prev' + ); + }); + }); + }) {}; roaming_proxy = inputs.roaming_proxy.defaultPackage."${system}"; inherit (nixpkgs-traxys.legacyPackages."${system}") groovy-language-server; inherit (inputs.mujmap.packages."${system}") mujmap; diff --git a/neovim/default.nix b/neovim/default.nix new file mode 100644 index 0000000..5830d32 --- /dev/null +++ b/neovim/default.nix @@ -0,0 +1,781 @@ +{ + pkgs, + config, + helpers, + lib, + ... +}: { + imports = [ + ./modules/commands.nix + + ./plugins/firenvim.nix + ./plugins/headerguard.nix + ./plugins/lsp-signature.nix + ]; + + config = { + colorschemes.tokyonight = { + style = "night"; + enable = true; + }; + + autoGroups.BigFileOptimizer = {}; + autoCmd = [ + { + event = "BufReadPost"; + pattern = [ + "*.md" + "*.rs" + "*.lua" + "*.sh" + "*.bash" + "*.zsh" + "*.js" + "*.jsx" + "*.ts" + "*.tsx" + "*.c" + ".h" + "*.cc" + ".hh" + "*.cpp" + ".cph" + ]; + group = "BigFileOptimizer"; + callback = helpers.mkRaw '' + function(auEvent) + local bufferCurrentLinesCount = vim.api.nvim_buf_line_count(0) + + if bufferCurrentLinesCount > 2048 then + vim.notify("bigfile: disabling features", vim.log.levels.WARN) + + vim.cmd("TSBufDisable refactor.highlight_definitions") + vim.g.matchup_matchparen_enabled = 0 + require("nvim-treesitter.configs").setup({ + matchup = { + enable = false + } + }) + end + end + ''; + } + ]; + + globals = { + neo_tree_remove_legacy_commands = 1; + mapleader = " "; + }; + + options = { + termguicolors = true; + number = true; + tabstop = 4; + shiftwidth = 4; + scrolloff = 7; + signcolumn = "yes"; + cmdheight = 2; + cot = ["menu" "menuone" "noselect"]; + updatetime = 100; + colorcolumn = "100"; + # Too many false positives + spell = false; + listchars = "tab:>-,lead:·,nbsp:␣,trail:•"; + fsync = true; + + timeout = true; + timeoutlen = 300; + }; + + commands = { + "SpellFr" = "setlocal spelllang=fr"; + }; + + filetype = { + filename = { + Jenkinsfile = "groovy"; + }; + extension = { + lalrpop = "lalrpop"; + }; + }; + + keymaps = let + modeKeys = mode: + lib.attrsets.mapAttrsToList (key: action: + { + inherit key mode; + } + // ( + if builtins.isString action + then {inherit action;} + else action + )); + nm = modeKeys ["n"]; + vs = modeKeys ["v"]; + in + helpers.keymaps.mkKeymaps {options.silent = true;} (nm { + "ft" = "Neotree"; + "fG" = "Neotree git_status"; + "fR" = "Neotree remote"; + "fc" = "Neotree close"; + "bp" = "Telescope buffers"; + + "" = "Telescope spell_suggest"; + "mk" = "Telescope keymaps"; + "fg" = "Telescope git_files"; + + "gr" = "Telescope lsp_references"; + "gI" = "Telescope lsp_implementations"; + "gW" = "Telescope lsp_workspace_symbols"; + "gF" = "Telescope lsp_document_symbols"; + "ge" = "Telescope diagnostics bufnr=0"; + "gE" = "Telescope diagnostics"; + + "h" = { + action = "lua vim.lsp.inlay_hint.enable(0, not vim.lsp.inlay_hint.is_enabled())"; + options = { + desc = "toggle inlay hints"; + }; + }; + "zn" = "ZkNew { title = vim.fn.input('Title: ') }"; + "zo" = "ZkNotes { sort = { 'modified' } }"; + "zt" = "ZkTags"; + "zf" = "ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }"; + "yH" = { + action = "Telescope yank_history"; + options.desc = "history"; + }; + }) + ++ (vs { + "zf" = "'<,'>ZkMatch"; + }) + ++ [ + { + key = "rn"; + mode = ["n"]; + action = '' + function() + return ":IncRename " .. vim.fn.expand("") + end + ''; + lua = true; + options.expr = true; + } + ]; + + plugins.nvim-osc52 = { + enable = true; + package = pkgs.vimPlugins.nvim-osc52; + keymaps.enable = true; + }; + + plugins.efmls-configs = { + enable = true; + + toolPackages.mdformat = pkgs.mdformat.withPlugins (ps: + with ps; [ + # TODO: broken with update of mdformat + # mdformat-gfm + mdformat-frontmatter + mdformat-footnote + mdformat-tables + mdit-py-plugins + ]); + + setup = { + sh = { + #linter = "shellcheck"; + formatter = "shfmt"; + }; + bash = { + #linter = "shellcheck"; + formatter = "shfmt"; + }; + c = { + linter = "cppcheck"; + }; + markdown = { + formatter = ["cbfmt" "mdformat"]; + }; + python = { + formatter = "black"; + }; + nix = { + linter = "statix"; + }; + lua = { + formatter = "stylua"; + }; + html = { + formatter = ["prettier" (helpers.mkRaw "djlint_fmt")]; + }; + htmldjango = { + formatter = [(helpers.mkRaw "djlint_fmt")]; + linter = "djlint"; + }; + json = { + formatter = "prettier"; + }; + css = { + formatter = "prettier"; + }; + ts = { + formatter = "prettier"; + }; + gitcommit = { + linter = "gitlint"; + }; + }; + }; + # plugins.null-ls = { + # enable = true; + # sources = { + # diagnostics = { + # gitlint.enable = true; + # }; + # code_actions = { + # shellcheck.enable = true; + # #gitsigns.enable = true; + # }; + # formatting = { + # alejandra.enable = true; + # }; + # }; + # }; + plugins.gitsigns.enable = true; + plugins.gitmessenger.enable = true; + + plugins.firenvim.enable = false; + + plugins.luasnip = { + enable = true; + }; + + extraConfigLuaPre = '' + local has_words_before = function() + unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil + end + local luasnip = require("luasnip") + + local efm_fs = require('efmls-configs.fs') + local djlint_fmt = { + formatCommand = string.format('%s --reformat ''${INPUT} -', efm_fs.executable('djlint')), + formatStdin = true, + } + ''; + + plugins.cmp = { + enable = true; + + settings = { + snippet.expand = '' + function(args) + require('luasnip').lsp_expand(args.body) + end + ''; + mapping = { + "" = "cmp.mapping.confirm({select = true })"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.complete()"; + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() + -- they way you will only jump inside the snippet region + elseif luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }) + ''; + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }) + ''; + "" = "cmp.mapping(cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }), {'i'})"; + "" = "cmp.mapping(cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }), {'i'})"; + }; + + sources = [ + {name = "luasnip";} + {name = "nvim_lsp";} + {name = "path";} + {name = "buffer";} + {name = "calc";} + ]; + }; + + filetype.sh = { + sources = [ + {name = "zsh";} + ]; + }; + }; + + plugins.telescope = { + enable = true; + enabledExtensions = ["ui-select"]; + extensionConfig = { + ui-select = { + __raw = '' + require("telescope.themes").get_dropdown { + -- even more opts + } + ''; + }; + }; + extraOptions = { + defaults.layout_strategy = "vertical"; + }; + }; + + extraFiles."queries/rust/injections.scm" = '' + ;; extends + + ( + (macro_invocation + macro: ((scoped_identifier) @_sql_def) + (token_tree (string_literal) @sql)) + + (#eq? @_sql_def "sqlx::query") + ) + ''; + + plugins.treesitter = { + enable = true; + indent = true; + + nixvimInjections = true; + + grammarPackages = with config.plugins.treesitter.package.passthru.builtGrammars; [ + arduino + bash + c + cpp + cuda + dart + devicetree + diff + dockerfile + gitattributes + gitcommit + gitignore + git_rebase + groovy + html + ini + json + lalrpop + latex + lua + make + markdown + markdown_inline + meson + ninja + nix + python + regex + rst + rust + slint + sql + tlaplus + toml + vim + vimdoc + yaml + ]; + }; + + plugins.treesitter-refactor = { + enable = true; + highlightDefinitions = { + enable = true; + clearOnCursorMove = true; + }; + smartRename = { + enable = true; + }; + navigation = { + enable = true; + }; + }; + + plugins.treesitter-context = { + enable = true; + }; + + plugins.vim-matchup = { + treesitterIntegration = { + enable = true; + includeMatchWords = true; + }; + enable = true; + }; + plugins.headerguard.enable = true; + + plugins.comment-nvim = { + enable = true; + }; + + plugins.neo-tree = { + enable = true; + }; + + plugins.plantuml-syntax.enable = true; + + plugins.indent-blankline = { + enable = true; + + scope = { + enabled = true; + + showStart = true; + }; + }; + + plugins.lsp = { + enable = true; + + enabledServers = [ + # { + # name = "groovyls"; + # extraOptions = { + # cmd = ["${pkgs.groovy-language-server}/bin/groovy-language-server"]; + # }; + # } + ]; + + keymaps = { + silent = true; + + lspBuf = { + "gd" = "definition"; + "gD" = "declaration"; + "ca" = "code_action"; + "ff" = "format"; + "K" = "hover"; + }; + }; + + servers = { + nil_ls = { + enable = true; + settings = { + formatting.command = ["${pkgs.alejandra}/bin/alejandra" "--quiet"]; + }; + }; + bashls.enable = true; + dartls.enable = true; + clangd.enable = true; + typst-lsp.enable = true; + tsserver.enable = true; + efm.extraOptions = { + init_options = { + documentFormatting = true; + }; + settings = { + logLevel = 1; + languages.meson = [ + (helpers.mkRaw (helpers.toLuaObject { + prefix = "muon-fmt"; + formatCommand = "muon fmt -"; + formatStdin = true; + })) + (helpers.mkRaw (helpers.toLuaObject { + prefix = "muon-analyze"; + lintSource = "efm/muon-analyze"; + lintCommand = "muon analyze -l"; + lintWorkspace = true; + lintStdin = false; + LintIgnoreExitCode = true; + rootMarkers = ["meson_options.txt" ".git"]; + lintFormats = [ + "%f:%l:%c: %trror %m" + "%f:%l:%c: %tarning %m" + ]; + })) + ]; + }; + }; + taplo.enable = true; + lemminx.enable = true; + ltex = { + enable = true; + onAttach.function = '' + require("ltex_extra").setup{ + load_langs = { "en-US", "fr-FR" }, + path = ".ltex", + } + ''; + filetypes = [ + "bib" + "gitcommit" + "markdown" + "org" + "plaintex" + "rst" + "rnoweb" + "tex" + "pandoc" + "typst" + #"mail" + ]; + }; + }; + }; + + plugins.typst-vim.enable = true; + + plugins.rustaceanvim = { + enable = true; + + server = { + settings = { + cargo.features = "all"; + checkOnSave = true; + check.command = "clippy"; + rustc.source = "discover"; + }; + }; + }; + + plugins.lspkind = { + enable = true; + cmp = { + enable = true; + }; + }; + + plugins.nvim-lightbulb = { + enable = true; + settings.autocmd.enabled = true; + }; + + plugins.lsp_signature = { + #enable = true; + }; + + plugins.inc-rename = { + enable = true; + }; + + plugins.clangd-extensions = { + enable = true; + enableOffsetEncodingWorkaround = true; + + ast = { + roleIcons = { + type = ""; + declaration = ""; + expression = ""; + specifier = ""; + statement = ""; + templateArgument = ""; + }; + kindIcons = { + compound = ""; + recovery = ""; + translationUnit = ""; + packExpansion = ""; + templateTypeParm = ""; + templateTemplateParm = ""; + templateParamObject = ""; + }; + }; + }; + + # fidget = { + # enable = true; + # + # sources.null-ls.ignore = true; + # }; + + plugins.lualine = { + enable = true; + }; + + plugins.trouble = { + enable = true; + }; + + plugins.noice = { + enable = true; + + messages = { + view = "mini"; + viewError = "mini"; + viewWarn = "mini"; + }; + + lsp.override = { + "vim.lsp.util.convert_input_to_markdown_lines" = true; + "vim.lsp.util.stylize_markdown" = true; + "cmp.entry.get_documentation" = true; + }; + presets = { + bottom_search = true; + command_palette = true; + long_message_to_split = true; + inc_rename = true; + lsp_doc_border = false; + }; + }; + + plugins.netman = { + enable = false; + package = pkgs.vimPlugins.netman-nvim; + neoTreeIntegration = true; + }; + + plugins.openscad = { + enable = true; + loadSnippets = true; + keymaps.enable = true; + }; + + extraConfigLuaPost = '' + require("luasnip.loaders.from_snipmate").lazy_load() + + vim.api.nvim_create_user_command("LtexLangChangeLanguage", function(data) + local language = data.fargs[1] + local bufnr = vim.api.nvim_get_current_buf() + local client = vim.lsp.get_active_clients({ bufnr = bufnr, name = 'ltex' }) + if #client == 0 then + vim.notify("No ltex client attached") + else + client = client[1] + client.config.settings = { + ltex = { + language = language + } + } + client.notify('workspace/didChangeConfiguration', client.config.settings) + vim.notify("Language changed to " .. language) + end + end, { + nargs = 1, + force = true, + }) + + -- local null_ls = require("null-ls") + -- local helpers = require("null-ls.helpers") + -- + -- local sca2d = { + -- method = null_ls.methods.DIAGNOSTICS, + -- filetypes = { "openscad" }, + -- generator = null_ls.generator({ + -- command = "sca2d", + -- args = { "$FILENAME" }, + -- from_stderr = false, + -- to_stdin = true, + -- format = "line", + -- check_exit_code = function(code) + -- return code <= 1 + -- end, + -- on_output = helpers.diagnostics.from_pattern( + -- [[[^:]+:(%d+):(%d+): (%w)%d+: (.*)]], {"row", "col", "severity", "message"}, { + -- severities = { + -- F = helpers.diagnostics.severities["error"], + -- E = helpers.diagnostics.severities["error"], + -- W = helpers.diagnostics.severities["warning"], + -- D = helpers.diagnostics.severities["warning"], + -- I = helpers.diagnostics.severities["info"], + -- }, + -- }), + -- }), + -- } + + -- null_ls.register(sca2d) + ''; + + plugins.zk = { + enable = true; + picker = "telescope"; + }; + + plugins.which-key.enable = true; + + plugins.leap.enable = true; + + plugins.yanky = { + enable = true; + picker.telescope = { + useDefaultMappings = true; + enable = true; + }; + }; + + files."ftplugin/nix.lua" = { + options = { + tabstop = 2; + shiftwidth = 2; + expandtab = true; + }; + }; + + files."ftplugin/markdown.lua" = { + extraConfigLua = '' + if require("zk.util").notebook_root(vim.fn.expand('%:p')) ~= nil then + local function map(...) vim.api.nvim_buf_set_keymap(0, ...) end + local opts = { noremap=true, silent=false } + + -- Open the link under the caret. + map("n", "", "lua vim.lsp.buf.definition()", opts) + + -- Create a new note after asking for its title. + -- This overrides the global `zn` mapping to create the note in the same directory as the current buffer. + map("n", "zn", "ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }", opts) + -- Create a new note in the same directory as the current buffer, using the current selection for title. + map("v", "znt", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }", opts) + -- Create a new note in the same directory as the current buffer, using the current selection for note content and asking for its title. + map("v", "znc", ":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }", opts) + + -- Open notes linking to the current buffer. + map("n", "zb", "ZkBacklinks", opts) + -- Alternative for backlinks using pure LSP and showing the source context. + --map('n', 'zb', 'lua vim.lsp.buf.references()', opts) + -- Open notes linked by the current buffer. + map("n", "zl", "ZkLinks", opts) + + -- Preview a linked note. + map("n", "K", "lua vim.lsp.buf.hover()", opts) + -- Open the code actions for a visual selection. + map("v", "za", ":'<,'>lua vim.lsp.buf.range_code_action()", opts) + end + ''; + }; + + extraPackages = with pkgs; [ + /* + sca2d + */ + djlint + muon + ]; + + extraPlugins = with pkgs.vimPlugins; [ + telescope-ui-select-nvim + vim-snippets + markdown-preview-nvim + vim-just + ltex_extra-nvim + ]; + }; +} diff --git a/neovim/modules/commands.nix b/neovim/modules/commands.nix new file mode 100644 index 0000000..7d3eac7 --- /dev/null +++ b/neovim/modules/commands.nix @@ -0,0 +1,20 @@ +{ + lib, + config, + ... +}: +with lib; { + options = { + commands = mkOption { + type = types.attrsOf types.str; + default = {}; + description = "Extra commands to be created"; + }; + }; + + config.extraConfigVim = let + commands = cmds: + concatStringsSep "\n" (map (cmd: "command ${cmd} ${getAttr cmd cmds}") (attrNames cmds)); + in + commands config.commands; +} diff --git a/neovim/nvim-treesitter/default.nix b/neovim/nvim-treesitter/default.nix new file mode 100644 index 0000000..da1f6d1 --- /dev/null +++ b/neovim/nvim-treesitter/default.nix @@ -0,0 +1,40 @@ +{ + lib, + upstream, + nvim-treesitter, + neovimUtils, + nurl, + python3, + wrapNeovimUnstable, + stdenv, + makeWrapper, +}: let + neovimTs = + (neovimUtils.override { + neovim-unwrapped = upstream; + }) + .makeNeovimConfig { + plugins = [nvim-treesitter]; + }; +in + stdenv.mkDerivation { + name = "update-nvim-treesitter"; + src = ./update.py; + + nativeBuildInputs = [makeWrapper]; + + dontUnpack = true; + + installPhase = '' + mkdir -p $out/bin + cat $src > $out/bin/update-nvim-treesitter + chmod +x $out/bin/update-nvim-treesitter + wrapProgram $out/bin/update-nvim-treesitter --set NVIM_TREESITTER "${nvim-treesitter}" --prefix PATH : ${ + lib.makeBinPath [ + (wrapNeovimUnstable upstream neovimTs) + nurl + python3 + ] + } + ''; + } diff --git a/neovim/nvim-treesitter/generated.nix b/neovim/nvim-treesitter/generated.nix new file mode 100644 index 0000000..788100f --- /dev/null +++ b/neovim/nvim-treesitter/generated.nix @@ -0,0 +1,2960 @@ +# generated by nix run .\#update-nvim-treesitter -- nvim-treesitter + +{ buildGrammar, fetchCrate, fetchFromBitbucket, fetchFromGitHub, fetchFromGitLab, fetchFromGitea, fetchFromGitiles, fetchFromRepoOrCz, fetchFromSourcehut, fetchHex, fetchPypi, fetchgit, fetchhg, fetchsvn }: + +{ + ada = buildGrammar { + language = "ada"; + version = "0.0.0+rev=ba0894e"; + src = fetchFromGitHub { + owner = "briot"; + repo = "tree-sitter-ada"; + rev = "ba0894efa03beb70780156b91e28c716b7a4764d"; + hash = "sha256-30yCHcO9LdZ9VKQpObWRfk49M5tC85IZvutXgzGwTjQ="; + }; + meta.homepage = "https://github.com/briot/tree-sitter-ada"; + }; + agda = buildGrammar { + language = "agda"; + version = "0.0.0+rev=d3dc807"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-agda"; + rev = "d3dc807692e6bca671d4491b3bf5c67eeca8c016"; + hash = "sha256-2HBndaridTSSpYgCnpc6buLWWusmQPzsQjwAD9PkrCE="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-agda"; + }; + angular = buildGrammar { + language = "angular"; + version = "0.0.0+rev=a1b5ff4"; + src = fetchFromGitHub { + owner = "dlvandenberg"; + repo = "tree-sitter-angular"; + rev = "a1b5ff462875e5f92e6265fc630702847e0dcbb3"; + hash = "sha256-ppPHEJ08WNIoTj0TrgB9XRRp3MzEy2swF9Fwn5k3nA4="; + }; + meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular"; + }; + apex = buildGrammar { + language = "apex"; + version = "0.0.0+rev=857077f"; + src = fetchFromGitHub { + owner = "aheber"; + repo = "tree-sitter-sfapex"; + rev = "857077f9e6bb04df0f769c18d32bfe036911adc8"; + hash = "sha256-b7rw0AWqqvFisS0qlDppJFxSnjNZaTTeph6gKfQwFNA="; + }; + location = "apex"; + meta.homepage = "https://github.com/aheber/tree-sitter-sfapex"; + }; + arduino = buildGrammar { + language = "arduino"; + version = "0.0.0+rev=72eee09"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-arduino"; + rev = "72eee09b501f42a039b757c969a9f32e2b61d2a7"; + hash = "sha256-u/5rhk0JmGKIN72Xg6L3bM5Ji8iSaFo3HOZTR6qOm7s="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino"; + }; + asm = buildGrammar { + language = "asm"; + version = "0.0.0+rev=6ace266"; + src = fetchFromGitHub { + owner = "RubixDev"; + repo = "tree-sitter-asm"; + rev = "6ace266be7ad6bf486a95427ca3fc949aff66211"; + hash = "sha256-sMUlk4BKpsmNhGF/ayi/wkSP6ea7pvTJKuctnOvKda0="; + }; + meta.homepage = "https://github.com/RubixDev/tree-sitter-asm"; + }; + astro = buildGrammar { + language = "astro"; + version = "0.0.0+rev=dfa0893"; + src = fetchFromGitHub { + owner = "virchau13"; + repo = "tree-sitter-astro"; + rev = "dfa0893bdc4bdfada102043404758c66e3580568"; + hash = "sha256-gToRdyLvvDaeE1b9fYRVPFt1mtdR9kSYzqFBDUYpv3k="; + }; + meta.homepage = "https://github.com/virchau13/tree-sitter-astro"; + }; + authzed = buildGrammar { + language = "authzed"; + version = "0.0.0+rev=1dec7e1"; + src = fetchFromGitHub { + owner = "mleonidas"; + repo = "tree-sitter-authzed"; + rev = "1dec7e1af96c56924e3322cd85fdce15d0a31d00"; + hash = "sha256-qPSQF95DO7WByVy9YXEOus3q3U4QfWuUFbJGVXd4EtQ="; + }; + meta.homepage = "https://github.com/mleonidas/tree-sitter-authzed"; + }; + awk = buildGrammar { + language = "awk"; + version = "0.0.0+rev=207b049"; + src = fetchFromGitHub { + owner = "Beaglefoot"; + repo = "tree-sitter-awk"; + rev = "207b04974c83d8d25a947e4d09763675c4617da7"; + hash = "sha256-sW6ix5j9VpeQj7dct9u3cJ8sXgjIQlhQ7Nnh2S8wWbk="; + }; + meta.homepage = "https://github.com/Beaglefoot/tree-sitter-awk"; + }; + bash = buildGrammar { + language = "bash"; + version = "0.0.0+rev=975bc70"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-bash"; + rev = "975bc70ad95dbbf2733872bc2e0a059c055db983"; + hash = "sha256-SU5wBy81aANd7oUZvYR14Vd53Ml/cBSwDtO6uG34CaE="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-bash"; + }; + bass = buildGrammar { + language = "bass"; + version = "0.0.0+rev=c9ba456"; + src = fetchFromGitHub { + owner = "vito"; + repo = "tree-sitter-bass"; + rev = "c9ba4568af24cd3403029730687c0a43d1350a43"; + hash = "sha256-F131TkIt2mW2n8Da3zI1/B0yoT9Ezo2hWoptpsdMrb4="; + }; + meta.homepage = "https://github.com/vito/tree-sitter-bass"; + }; + beancount = buildGrammar { + language = "beancount"; + version = "0.0.0+rev=1f19abf"; + src = fetchFromGitHub { + owner = "polarmutex"; + repo = "tree-sitter-beancount"; + rev = "1f19abf1e162e1828013cb5434c6cf30f4054e80"; + hash = "sha256-yb6z5iLMoK1wWCS9laA1muRVLssFwnyAg4SKWVsti0s="; + }; + meta.homepage = "https://github.com/polarmutex/tree-sitter-beancount"; + }; + bibtex = buildGrammar { + language = "bibtex"; + version = "0.0.0+rev=ccfd77d"; + src = fetchFromGitHub { + owner = "latex-lsp"; + repo = "tree-sitter-bibtex"; + rev = "ccfd77db0ed799b6c22c214fe9d2937f47bc8b34"; + hash = "sha256-wgduSxlpbJy/ITenBLfj5lhziUM1BApX6MjXhWcb7lQ="; + }; + meta.homepage = "https://github.com/latex-lsp/tree-sitter-bibtex"; + }; + bicep = buildGrammar { + language = "bicep"; + version = "0.0.0+rev=c3451d1"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-bicep"; + rev = "c3451d1049c80074b18078ba50007b7c00e063f8"; + hash = "sha256-81Pt/Yyc/r8RDBCaGcXx9giIJ9+smi9Xus43NGOePgM="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-bicep"; + }; + bitbake = buildGrammar { + language = "bitbake"; + version = "0.0.0+rev=7e0e2ac"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-bitbake"; + rev = "7e0e2ac6f1d0da1a91ab84f35edddfdfece54f1a"; + hash = "sha256-7He69Nk1b0gUCnLcfALQk46E2JPDhVpIIqS6qtJIx4k="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-bitbake"; + }; + blueprint = buildGrammar { + language = "blueprint"; + version = "0.0.0+rev=863cea9"; + src = fetchFromGitLab { + owner = "gabmus"; + repo = "tree-sitter-blueprint"; + rev = "863cea9f83ad5637300478e0559262f1e791684b"; + hash = "sha256-QbkwdqH4Q+bqsp7XawUNXR45ROxfpMf+goCBFTw07I4="; + }; + meta.homepage = "https://gitlab.com/gabmus/tree-sitter-blueprint.git"; + }; + c = buildGrammar { + language = "c"; + version = "0.0.0+rev=652433f"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-c"; + rev = "652433fce487d8c3943207da38e3e65e4550e288"; + hash = "sha256-Ld8ufwdOVqRYb9YpOa6z6fWoA+gj0w0nlq3dqhFCap8="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-c"; + }; + c_sharp = buildGrammar { + language = "c_sharp"; + version = "0.0.0+rev=4b4e82c"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-c-sharp"; + rev = "4b4e82ca0a30376ae605e77a0d8a3c803c9f9327"; + hash = "sha256-NPF4nvryKvSmf4cI2xjYQiG391GqO0JoyymQCTXDjGc="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp"; + }; + cairo = buildGrammar { + language = "cairo"; + version = "0.0.0+rev=6216c6e"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-cairo"; + rev = "6216c6ee5e9fc0649c4bd7b1aedd884a55bdd9ef"; + hash = "sha256-D8yAkxaokkdNFLnBDWTa6Xu21ibpVw1A4sd/llh8BKs="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-cairo"; + }; + capnp = buildGrammar { + language = "capnp"; + version = "0.0.0+rev=dc28c9f"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-capnp"; + rev = "dc28c9f4212809eab74d10996086297853eb34e5"; + hash = "sha256-4GcOBC5JJsfbdsIrQd33tSW2sz6ytjYGqWgFVFLH6sc="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-capnp"; + }; + chatito = buildGrammar { + language = "chatito"; + version = "0.0.0+rev=fe7a2a7"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-chatito"; + rev = "fe7a2a75d3d74c1215141b7a7ebebb57ae17a370"; + hash = "sha256-4ianrWSctAIufc/8I1pxWvoij1nG7mcRemQs0fj1Qt8="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-chatito"; + }; + clojure = buildGrammar { + language = "clojure"; + version = "0.0.0+rev=6e41628"; + src = fetchFromGitHub { + owner = "sogaiu"; + repo = "tree-sitter-clojure"; + rev = "6e41628e9d18b19caea1cb1d72aae4ccff5bdfe9"; + hash = "sha256-ssJIftjadMmoESm882mQ3fUjIoTDWtBrOolgYLcmlEE="; + }; + meta.homepage = "https://github.com/sogaiu/tree-sitter-clojure"; + }; + cmake = buildGrammar { + language = "cmake"; + version = "0.0.0+rev=f8de25f"; + src = fetchFromGitHub { + owner = "uyha"; + repo = "tree-sitter-cmake"; + rev = "f8de25f30757a2def006a7c144354710fe63dcf3"; + hash = "sha256-J8Ro3J9kkH7k/v+nwekCotoS/l28yInhk9p/xaSbegc="; + }; + meta.homepage = "https://github.com/uyha/tree-sitter-cmake"; + }; + comment = buildGrammar { + language = "comment"; + version = "0.0.0+rev=aefcc28"; + src = fetchFromGitHub { + owner = "stsewd"; + repo = "tree-sitter-comment"; + rev = "aefcc2813392eb6ffe509aa0fc8b4e9b57413ee1"; + hash = "sha256-ihkBqdYVulTlysb9J8yg4c5XVktJw8jIwzhqybBw8Ug="; + }; + meta.homepage = "https://github.com/stsewd/tree-sitter-comment"; + }; + commonlisp = buildGrammar { + language = "commonlisp"; + version = "0.0.0+rev=cf10fc3"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-commonlisp"; + rev = "cf10fc38bc24faf0549d59217ff37c789973dfdc"; + hash = "sha256-Pm8aZnsw2fKRA0Cz0sOdcWh2GX7ty3wy34OfUtxmBds="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-commonlisp"; + }; + cooklang = buildGrammar { + language = "cooklang"; + version = "0.0.0+rev=81c2a86"; + src = fetchFromGitHub { + owner = "addcninblue"; + repo = "tree-sitter-cooklang"; + rev = "81c2a8667846b1e60db68b5601d864fe00fd1d3a"; + hash = "sha256-zlffOW/ZJxpn3T2CMkrznkLLtuqxp7gIxVHEItvMepY="; + }; + meta.homepage = "https://github.com/addcninblue/tree-sitter-cooklang"; + }; + corn = buildGrammar { + language = "corn"; + version = "0.0.0+rev=604d73c"; + src = fetchFromGitHub { + owner = "jakestanger"; + repo = "tree-sitter-corn"; + rev = "604d73c38d4c28ca68e9e441ffd405d68cb63051"; + hash = "sha256-ewpLp+se6XTY8aRoz247YlouS1p/kaS7CqVFu412C+Q="; + }; + meta.homepage = "https://github.com/jakestanger/tree-sitter-corn"; + }; + cpon = buildGrammar { + language = "cpon"; + version = "0.0.0+rev=f4b3cbc"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-cpon"; + rev = "f4b3cbc8b0bd4e13035d39940fef09f1392e8739"; + hash = "sha256-Enxc0sdQS9vSZVvIQkkHxk/1bzT2denRk0+AZdDNnJ8="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-cpon"; + }; + cpp = buildGrammar { + language = "cpp"; + version = "0.0.0+rev=e0c1678"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-cpp"; + rev = "e0c1678a78731e78655b7d953efb4daecf58be46"; + hash = "sha256-CdNCVDMAmeJrHgPb2JLxFHj/tHnUYC8flmxj+UaVXTo="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp"; + }; + css = buildGrammar { + language = "css"; + version = "0.0.0+rev=02b4ee7"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-css"; + rev = "02b4ee757654b7d54fe35352fd8e53a8a4385d42"; + hash = "sha256-IniaiBBx2pDD5nwJKfr5i9qvfvG+z8H21v14qk14M0g="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-css"; + }; + csv = buildGrammar { + language = "csv"; + version = "0.0.0+rev=cda48a5"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-csv"; + rev = "cda48a5e890b30619da5bc3ff55be1b1d3d08c8d"; + hash = "sha256-K4tOYdI68fXnWbvSat50FL/jDSb8f6gtZOhE6qKPLyg="; + }; + location = "csv"; + meta.homepage = "https://github.com/amaanq/tree-sitter-csv"; + }; + cuda = buildGrammar { + language = "cuda"; + version = "0.0.0+rev=221179d"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-cuda"; + rev = "221179d4287a2c24c08e4c67ff383ef67dc32156"; + hash = "sha256-e01PTB+SduikiiDvOW411v0pBXCqOFBWlu3HgmM6jFg="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda"; + }; + cue = buildGrammar { + language = "cue"; + version = "0.0.0+rev=cdfe1a8"; + src = fetchFromGitHub { + owner = "eonpatapon"; + repo = "tree-sitter-cue"; + rev = "cdfe1a8594fe5be45c883a385ab543acc646d018"; + hash = "sha256-mT6Lt47LEp5b8P0bUcUPlhdh2WnpASYH5SIigx5lXvk="; + }; + meta.homepage = "https://github.com/eonpatapon/tree-sitter-cue"; + }; + d = buildGrammar { + language = "d"; + version = "0.0.0+rev=a33d400"; + src = fetchFromGitHub { + owner = "gdamore"; + repo = "tree-sitter-d"; + rev = "a33d400f025d6bbd37b4c681c93054976f579890"; + hash = "sha256-LUb+1dTj1IP5ZtWaWBT8UWnGEqb0DJodgbkwnT7xywk="; + }; + meta.homepage = "https://github.com/gdamore/tree-sitter-d"; + }; + dart = buildGrammar { + language = "dart"; + version = "0.0.0+rev=1a31399"; + src = fetchFromGitHub { + owner = "UserNobody14"; + repo = "tree-sitter-dart"; + rev = "1a31399a08aefc93bc4cdbfadc0cb619136f86c1"; + hash = "sha256-iQCjzNVCglHP670yT2inJKG5m3pstTZZzzcN0feGpFs="; + }; + meta.homepage = "https://github.com/UserNobody14/tree-sitter-dart"; + }; + devicetree = buildGrammar { + language = "devicetree"; + version = "0.0.0+rev=2087a5b"; + src = fetchFromGitHub { + owner = "joelspadin"; + repo = "tree-sitter-devicetree"; + rev = "2087a5b965db2a9efabab958a27fd8ddf43038a2"; + hash = "sha256-mQDZ+klWpg7csDnrj9R/9OCzwlojZoXJHiK7NCAyXIs="; + }; + meta.homepage = "https://github.com/joelspadin/tree-sitter-devicetree"; + }; + dhall = buildGrammar { + language = "dhall"; + version = "0.0.0+rev=affb6ee"; + src = fetchFromGitHub { + owner = "jbellerb"; + repo = "tree-sitter-dhall"; + rev = "affb6ee38d629c9296749767ab832d69bb0d9ea8"; + hash = "sha256-q9OkKmp0Nor+YkFc8pBVAOoXoWzwjjzg9lBUKAUnjmQ="; + }; + meta.homepage = "https://github.com/jbellerb/tree-sitter-dhall"; + }; + diff = buildGrammar { + language = "diff"; + version = "0.0.0+rev=c165725"; + src = fetchFromGitHub { + owner = "the-mikedavis"; + repo = "tree-sitter-diff"; + rev = "c165725c28e69b36c5799ff0e458713a844f1aaf"; + hash = "sha256-qou5ow/Am/qyO0I1j74ojgnBonwmJriLCCeSNpTk7t8="; + }; + meta.homepage = "https://github.com/the-mikedavis/tree-sitter-diff"; + }; + disassembly = buildGrammar { + language = "disassembly"; + version = "0.0.0+rev=0229c02"; + src = fetchFromGitHub { + owner = "ColinKennedy"; + repo = "tree-sitter-disassembly"; + rev = "0229c0211dba909c5d45129ac784a3f4d49c243a"; + hash = "sha256-IM3HzOhJmbb334PZ8q+r2EMi5Bv/rLoy+llPN0aghr8="; + }; + meta.homepage = "https://github.com/ColinKennedy/tree-sitter-disassembly"; + }; + dockerfile = buildGrammar { + language = "dockerfile"; + version = "0.0.0+rev=33e22c3"; + src = fetchFromGitHub { + owner = "camdencheek"; + repo = "tree-sitter-dockerfile"; + rev = "33e22c33bcdbfc33d42806ee84cfd0b1248cc392"; + hash = "sha256-uCKzTTbJL9Ans3lCQbt2zApF+ERLbbu5D1WcyWJ6Gf4="; + }; + meta.homepage = "https://github.com/camdencheek/tree-sitter-dockerfile"; + }; + dot = buildGrammar { + language = "dot"; + version = "0.0.0+rev=9ab8555"; + src = fetchFromGitHub { + owner = "rydesun"; + repo = "tree-sitter-dot"; + rev = "9ab85550c896d8b294d9b9ca1e30698736f08cea"; + hash = "sha256-w4DInIT7mkTvQ6Hmi8yaAww6ktyNgRz0tPfBLGnOawQ="; + }; + meta.homepage = "https://github.com/rydesun/tree-sitter-dot"; + }; + doxygen = buildGrammar { + language = "doxygen"; + version = "0.0.0+rev=a750758"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-doxygen"; + rev = "a750758da90955c86fcc22fcbb6fa44a7d009865"; + hash = "sha256-/4yBu5S9bQhxGO9JcNZukn+xpfzfaQQRLqVuDHgMYd0="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-doxygen"; + }; + dtd = buildGrammar { + language = "dtd"; + version = "0.0.0+rev=c23bd31"; + src = fetchFromGitHub { + owner = "tree-sitter-grammars"; + repo = "tree-sitter-xml"; + rev = "c23bd31d0aa72bfc01238b2546d5e823d8006709"; + hash = "sha256-oPjO7y2xSVxvP0bpCFo/oGP4hPs3kWJ728d/R5PUdK4="; + }; + location = "dtd"; + meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml"; + }; + ebnf = buildGrammar { + language = "ebnf"; + version = "0.0.0+rev=8e635b0"; + src = fetchFromGitHub { + owner = "RubixDev"; + repo = "ebnf"; + rev = "8e635b0b723c620774dfb8abf382a7f531894b40"; + hash = "sha256-Cch6WCYq9bsWGypzDGapxBLJ0ZB432uAl6YjEjBJ5yg="; + }; + location = "crates/tree-sitter-ebnf"; + meta.homepage = "https://github.com/RubixDev/ebnf"; + }; + eds = buildGrammar { + language = "eds"; + version = "0.0.0+rev=fde6202"; + src = fetchFromGitHub { + owner = "uyha"; + repo = "tree-sitter-eds"; + rev = "fde62029d4c715562230070b9af51a9500c2ce10"; + hash = "sha256-E+VDOAnmbyUXzwhu+j2DXXBpuiI/d9gZdGsikAboLP4="; + }; + meta.homepage = "https://github.com/uyha/tree-sitter-eds"; + }; + eex = buildGrammar { + language = "eex"; + version = "0.0.0+rev=f742f2f"; + src = fetchFromGitHub { + owner = "connorlay"; + repo = "tree-sitter-eex"; + rev = "f742f2fe327463335e8671a87c0b9b396905d1d1"; + hash = "sha256-UPq62MkfGFh9m/UskoB9uBDIYOcotITCJXDyrbg/wKY="; + }; + meta.homepage = "https://github.com/connorlay/tree-sitter-eex"; + }; + elixir = buildGrammar { + language = "elixir"; + version = "0.0.0+rev=511ea5e"; + src = fetchFromGitHub { + owner = "elixir-lang"; + repo = "tree-sitter-elixir"; + rev = "511ea5e0088779e4bdd76e12963ab9a5fe99983a"; + hash = "sha256-gF+bhfaN45KmGGhLa4i2K8LiBLxY8n5fw2m6kYzx5xo="; + }; + meta.homepage = "https://github.com/elixir-lang/tree-sitter-elixir"; + }; + elm = buildGrammar { + language = "elm"; + version = "0.0.0+rev=09dbf22"; + src = fetchFromGitHub { + owner = "elm-tooling"; + repo = "tree-sitter-elm"; + rev = "09dbf221d7491dc8d8839616b27c21b9c025c457"; + hash = "sha256-Bq2oWtqEAsKyV0iHNKC+hXW4fh4yUwbfUhPtZWg5pug="; + }; + meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm"; + }; + elsa = buildGrammar { + language = "elsa"; + version = "0.0.0+rev=0a66b2b"; + src = fetchFromGitHub { + owner = "glapa-grossklag"; + repo = "tree-sitter-elsa"; + rev = "0a66b2b3f3c1915e67ad2ef9f7dbd2a84820d9d7"; + hash = "sha256-zahi5hOXzad6R1+mqmYBFfn2X+SejQUIQzbabgCIJ8w="; + }; + meta.homepage = "https://github.com/glapa-grossklag/tree-sitter-elsa"; + }; + elvish = buildGrammar { + language = "elvish"; + version = "0.0.0+rev=5e7210d"; + src = fetchFromGitHub { + owner = "elves"; + repo = "tree-sitter-elvish"; + rev = "5e7210d945425b77f82cbaebc5af4dd3e1ad40f5"; + hash = "sha256-POuQA2Ihi+qDYQ5Pv7hBAzHpPu/FcnuYscW4ItDOCZg="; + }; + meta.homepage = "https://github.com/elves/tree-sitter-elvish"; + }; + embedded_template = buildGrammar { + language = "embedded_template"; + version = "0.0.0+rev=6d791b8"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-embedded-template"; + rev = "6d791b897ecda59baa0689a85a9906348a2a6414"; + hash = "sha256-I4L3mxkAnmKs+BiNRDAs58QFD2r8jN1B2yv0dZdgkzQ="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-embedded-template"; + }; + erlang = buildGrammar { + language = "erlang"; + version = "0.0.0+rev=54b6f81"; + src = fetchFromGitHub { + owner = "WhatsApp"; + repo = "tree-sitter-erlang"; + rev = "54b6f814f43c4eac81eeedefaa7cc8762fec6683"; + hash = "sha256-21pSBjg3hArexHndfqIOy5q2FGl54uWyW2fWwO+3jIw="; + }; + meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang"; + }; + facility = buildGrammar { + language = "facility"; + version = "0.0.0+rev=a525796"; + src = fetchFromGitHub { + owner = "FacilityApi"; + repo = "tree-sitter-facility"; + rev = "a52579670e2b14ec03d410c3c980fafaf6d659c4"; + hash = "sha256-YHtKuR3AysJXV1JDEBmPCSPOpUxJSnxkbX3/y/tX8ws="; + }; + meta.homepage = "https://github.com/FacilityApi/tree-sitter-facility"; + }; + faust = buildGrammar { + language = "faust"; + version = "0.0.0+rev=f3b9274"; + src = fetchFromGitHub { + owner = "khiner"; + repo = "tree-sitter-faust"; + rev = "f3b9274514b5f9bf6b0dd4a01c30f9cc15c58bc4"; + hash = "sha256-JwR8LCEptgQmEG/ruK5ukIGCNtvKJw5bobZ0WXF1ulY="; + }; + meta.homepage = "https://github.com/khiner/tree-sitter-faust"; + }; + fennel = buildGrammar { + language = "fennel"; + version = "0.0.0+rev=215e391"; + src = fetchFromGitHub { + owner = "alexmozaidze"; + repo = "tree-sitter-fennel"; + rev = "215e3913524abc119daa9db7cf6ad2f2f5620189"; + hash = "sha256-myh0+ZNDzdUZFAdsw8uVGyo0VYh0wKNZ11vlJKTSZnA="; + }; + meta.homepage = "https://github.com/alexmozaidze/tree-sitter-fennel"; + }; + fidl = buildGrammar { + language = "fidl"; + version = "0.0.0+rev=0a8910f"; + src = fetchFromGitHub { + owner = "google"; + repo = "tree-sitter-fidl"; + rev = "0a8910f293268e27ff554357c229ba172b0eaed2"; + hash = "sha256-QFAkxQo2w/+OR7nZn9ldBk2yHOd23kzciAcQvIZ5hrY="; + }; + meta.homepage = "https://github.com/google/tree-sitter-fidl"; + }; + firrtl = buildGrammar { + language = "firrtl"; + version = "0.0.0+rev=2b5adae"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-firrtl"; + rev = "2b5adae629c8cba528c7b1e4aa67a8ae28934ea5"; + hash = "sha256-If34GymYMJpSNtzSGpcq4dMxj8djKZ3B5uMHGx9uCnM="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-firrtl"; + }; + fish = buildGrammar { + language = "fish"; + version = "0.0.0+rev=f917690"; + src = fetchFromGitHub { + owner = "ram02z"; + repo = "tree-sitter-fish"; + rev = "f9176908c9eb2e11eb684d79e1d00f3b29bd65c9"; + hash = "sha256-nPWkKhhG5MvJPOJ5nhm7GXgjnWX71/Ay55rPW+uKu/s="; + }; + meta.homepage = "https://github.com/ram02z/tree-sitter-fish"; + }; + foam = buildGrammar { + language = "foam"; + version = "0.0.0+rev=04664b4"; + src = fetchFromGitHub { + owner = "FoamScience"; + repo = "tree-sitter-foam"; + rev = "04664b40c0dadb7ef37028acf3422c63271d377b"; + hash = "sha256-cIeYuYti/rzMivwRU//zzhMXJsTOMBveLK2zB4qRWGI="; + }; + meta.homepage = "https://github.com/FoamScience/tree-sitter-foam"; + }; + forth = buildGrammar { + language = "forth"; + version = "0.0.0+rev=9018923"; + src = fetchFromGitHub { + owner = "AlexanderBrevig"; + repo = "tree-sitter-forth"; + rev = "90189238385cf636b9ee99ce548b9e5b5e569d48"; + hash = "sha256-vySBDu9cMnubu4+7/sBttNxg1S4/MxWUKpjwEa14Rws="; + }; + meta.homepage = "https://github.com/AlexanderBrevig/tree-sitter-forth"; + }; + fortran = buildGrammar { + language = "fortran"; + version = "0.0.0+rev=f73d473"; + src = fetchFromGitHub { + owner = "stadelmanma"; + repo = "tree-sitter-fortran"; + rev = "f73d473e3530862dee7cbb38520f28824e7804f6"; + hash = "sha256-K9CnLhDKiWTxVM5OBZ80psV2oFDnlTgd+DDoP39ufds="; + }; + meta.homepage = "https://github.com/stadelmanma/tree-sitter-fortran"; + }; + fsh = buildGrammar { + language = "fsh"; + version = "0.0.0+rev=fa33477"; + src = fetchFromGitHub { + owner = "mgramigna"; + repo = "tree-sitter-fsh"; + rev = "fa3347712f7a59ed02ccf508284554689c6cde28"; + hash = "sha256-6TLG2edQeo+jRVAnO6mq3pC8RYNFi2UVVT3mQGZqk5U="; + }; + meta.homepage = "https://github.com/mgramigna/tree-sitter-fsh"; + }; + func = buildGrammar { + language = "func"; + version = "0.0.0+rev=0834e35"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-func"; + rev = "0834e35ecf8b23fbf9ad15b088af6a897e19d4a8"; + hash = "sha256-2+YOp7MnwZR2qg95h/ywjJwDSLUnodtkwwpv9zuy8p8="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-func"; + }; + fusion = buildGrammar { + language = "fusion"; + version = "0.0.0+rev=19db2f4"; + src = fetchFromGitLab { + owner = "jirgn"; + repo = "tree-sitter-fusion"; + rev = "19db2f47ba4c3a0f6238d4ae0e2abfca16e61dd6"; + hash = "sha256-195q39pZYipT0G08kQlwnDE28ODjAz2/Sq1tzpEGFmU="; + }; + meta.homepage = "https://gitlab.com/jirgn/tree-sitter-fusion.git"; + }; + gdscript = buildGrammar { + language = "gdscript"; + version = "0.0.0+rev=b5dea4d"; + src = fetchFromGitHub { + owner = "PrestonKnopp"; + repo = "tree-sitter-gdscript"; + rev = "b5dea4d852db65f0872d849c24533eb121e03c76"; + hash = "sha256-/fmg7DfVX62F3sEovFaMs4dTA4rvPexOdQop3257op4="; + }; + meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-gdscript"; + }; + gdshader = buildGrammar { + language = "gdshader"; + version = "0.0.0+rev=ffd9f95"; + src = fetchFromGitHub { + owner = "GodOfAvacyn"; + repo = "tree-sitter-gdshader"; + rev = "ffd9f958df13cae04593781d7d2562295a872455"; + hash = "sha256-JWlDs0w10TqsPYgZvvaJwAueOciCYaws1Nr8rb0UKy4="; + }; + meta.homepage = "https://github.com/GodOfAvacyn/tree-sitter-gdshader"; + }; + git_config = buildGrammar { + language = "git_config"; + version = "0.0.0+rev=9c2a1b7"; + src = fetchFromGitHub { + owner = "the-mikedavis"; + repo = "tree-sitter-git-config"; + rev = "9c2a1b7894e6d9eedfe99805b829b4ecd871375e"; + hash = "sha256-O0w0BhhPPwhnKfniAFSPMWfBsZUTrijifAsmFiAncWg="; + }; + meta.homepage = "https://github.com/the-mikedavis/tree-sitter-git-config"; + }; + git_rebase = buildGrammar { + language = "git_rebase"; + version = "0.0.0+rev=d8a4207"; + src = fetchFromGitHub { + owner = "the-mikedavis"; + repo = "tree-sitter-git-rebase"; + rev = "d8a4207ebbc47bd78bacdf48f883db58283f9fd8"; + hash = "sha256-mbRu2+wZVf5Nk3XlFvLSBOUg2QqmCR2tqO7gLpOJ45k="; + }; + meta.homepage = "https://github.com/the-mikedavis/tree-sitter-git-rebase"; + }; + gitattributes = buildGrammar { + language = "gitattributes"; + version = "0.0.0+rev=41940e1"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-gitattributes"; + rev = "41940e199ba5763abea1d21b4f717014b45f01ea"; + hash = "sha256-h9RPFI40C4LxjjKZEKkVCnUjNkh6Tgl74msSTpju7ZY="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gitattributes"; + }; + gitcommit = buildGrammar { + language = "gitcommit"; + version = "0.0.0+rev=2474065"; + src = fetchFromGitHub { + owner = "gbprod"; + repo = "tree-sitter-gitcommit"; + rev = "247406593c835065828230bdcecd933138691f68"; + hash = "sha256-+QLzCh99eAoo42C80DJlxdyfmuFYzYTvgOJE320FUGs="; + }; + meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit"; + }; + gitignore = buildGrammar { + language = "gitignore"; + version = "0.0.0+rev=f4685bf"; + src = fetchFromGitHub { + owner = "shunsambongi"; + repo = "tree-sitter-gitignore"; + rev = "f4685bf11ac466dd278449bcfe5fd014e94aa504"; + hash = "sha256-MjoY1tlVZgN6JqoTjhhg0zSdHzc8yplMr8824sfIKp8="; + }; + meta.homepage = "https://github.com/shunsambongi/tree-sitter-gitignore"; + }; + gleam = buildGrammar { + language = "gleam"; + version = "0.0.0+rev=2012f29"; + src = fetchFromGitHub { + owner = "gleam-lang"; + repo = "tree-sitter-gleam"; + rev = "2012f294baacf30e7a62414754021284377366c6"; + hash = "sha256-W+PfxqPUKHhLH5UBATmQ1mlSfLPAWIQyDgiSQBWBtBs="; + }; + meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam"; + }; + glimmer = buildGrammar { + language = "glimmer"; + version = "0.0.0+rev=f9746dc"; + src = fetchFromGitHub { + owner = "alexlafroscia"; + repo = "tree-sitter-glimmer"; + rev = "f9746dc1d0707717fbba84cb5c22a71586af23e1"; + hash = "sha256-57Sp4LrvyNNuOc+8ZiHl6cwvGg1tmXZemRsWeW+Kzys="; + }; + meta.homepage = "https://github.com/alexlafroscia/tree-sitter-glimmer"; + }; + glsl = buildGrammar { + language = "glsl"; + version = "0.0.0+rev=284bed0"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-glsl"; + rev = "284bed0e2f1d9f700756b96512baf33483642ff0"; + hash = "sha256-pyxMMXDwpu4IOXVzBX1LteD6pmRVCcijCyzMioqjlO0="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl"; + }; + gn = buildGrammar { + language = "gn"; + version = "0.0.0+rev=bc06955"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-gn"; + rev = "bc06955bc1e3c9ff8e9b2b2a55b38b94da923c05"; + hash = "sha256-Sn6He4YRrKJe4QvGiaauquYBVQol0lWeIuOwkdUEzkQ="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-gn"; + }; + gnuplot = buildGrammar { + language = "gnuplot"; + version = "0.0.0+rev=7549f6f"; + src = fetchFromGitHub { + owner = "dpezto"; + repo = "tree-sitter-gnuplot"; + rev = "7549f6faf5cc9fb8cf78054a7af356a6b003c6f3"; + hash = "sha256-AnSOI1pAMHtlkK6VcRuTCEsnXP3Sm2O95Eiwdx15UzM="; + }; + meta.homepage = "https://github.com/dpezto/tree-sitter-gnuplot"; + }; + go = buildGrammar { + language = "go"; + version = "0.0.0+rev=fd577c4"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-go"; + rev = "fd577c4358c28cbcb6748bbf65354cc85f1cf7a4"; + hash = "sha256-Fz9xSyjJLbNXAXbYMoVDsRqyRrLTWHAxnQBV9EF6n78="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-go"; + }; + godot_resource = buildGrammar { + language = "godot_resource"; + version = "0.0.0+rev=b6ef076"; + src = fetchFromGitHub { + owner = "PrestonKnopp"; + repo = "tree-sitter-godot-resource"; + rev = "b6ef0768711086a86b3297056f9ffb5cc1d77b4a"; + hash = "sha256-ws/8nL+HOoPb6Hcdh4pihjPoRw90R1fy7MB0V9Lb9ik="; + }; + meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-godot-resource"; + }; + gomod = buildGrammar { + language = "gomod"; + version = "0.0.0+rev=bbe2fe3"; + src = fetchFromGitHub { + owner = "camdencheek"; + repo = "tree-sitter-go-mod"; + rev = "bbe2fe3be4b87e06a613e685250f473d2267f430"; + hash = "sha256-OPtqXe6OMC9c5dgFH8Msj+6DU01LvLKVbCzGLj0PnLI="; + }; + meta.homepage = "https://github.com/camdencheek/tree-sitter-go-mod"; + }; + gosum = buildGrammar { + language = "gosum"; + version = "0.0.0+rev=e2ac513"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-go-sum"; + rev = "e2ac513b2240c7ff1069ae33b2df29ce90777c11"; + hash = "sha256-2foA2sd5PQpmeX8OhXrW/dxoJaEyxDXzPWh+UD0dgzQ="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-go-sum"; + }; + gotmpl = buildGrammar { + language = "gotmpl"; + version = "0.0.0+rev=17144a7"; + src = fetchFromGitHub { + owner = "ngalaiko"; + repo = "tree-sitter-go-template"; + rev = "17144a77be0acdecebd9d557398883569fed41de"; + hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80="; + }; + meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template"; + }; + gowork = buildGrammar { + language = "gowork"; + version = "0.0.0+rev=949a8a4"; + src = fetchFromGitHub { + owner = "omertuc"; + repo = "tree-sitter-go-work"; + rev = "949a8a470559543857a62102c84700d291fc984c"; + hash = "sha256-Tode7W05xaOKKD5QOp3rayFgLEOiMJUeGpVsIrizxto="; + }; + meta.homepage = "https://github.com/omertuc/tree-sitter-go-work"; + }; + gpg = buildGrammar { + language = "gpg"; + version = "0.0.0+rev=f99323f"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-gpg-config"; + rev = "f99323fb8f3f10b6c69db0c2f6d0a14bd7330675"; + hash = "sha256-VJXXpHVMKUNaslsjoKR6XsaUJ8C+0MyidXtRPRywnpg="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gpg-config"; + }; + graphql = buildGrammar { + language = "graphql"; + version = "0.0.0+rev=5e66e96"; + src = fetchFromGitHub { + owner = "bkegley"; + repo = "tree-sitter-graphql"; + rev = "5e66e961eee421786bdda8495ed1db045e06b5fe"; + hash = "sha256-NvE9Rpdp4sALqKSRWJpqxwl6obmqnIIdvrL1nK5peXc="; + }; + meta.homepage = "https://github.com/bkegley/tree-sitter-graphql"; + }; + groovy = buildGrammar { + language = "groovy"; + version = "0.0.0+rev=3c25d1c"; + src = fetchFromGitHub { + owner = "murtaza64"; + repo = "tree-sitter-groovy"; + rev = "3c25d1ce6c1eb9da34215060372792dc9f439b0c"; + hash = "sha256-VWIURpQoofmva6GWnOzq8niYklp5yOHH5ZuE8oDpzfs="; + }; + meta.homepage = "https://github.com/murtaza64/tree-sitter-groovy"; + }; + gstlaunch = buildGrammar { + language = "gstlaunch"; + version = "0.0.0+rev=2c0d9c9"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-gstlaunch"; + rev = "2c0d9c94d35e37aa63fa5002163c8480985b3e5b"; + hash = "sha256-H5H1v4xJSPHW0oaTY/JczhfVmYExbrdfdugYkMJktPY="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-gstlaunch"; + }; + hack = buildGrammar { + language = "hack"; + version = "0.0.0+rev=fca1e29"; + src = fetchFromGitHub { + owner = "slackhq"; + repo = "tree-sitter-hack"; + rev = "fca1e294f6dce8ec5659233a6a21f5bd0ed5b4f2"; + hash = "sha256-XTcsqCvlwbAAi7/TXrYX8wT56Ie+0OW5+eNRMH7XNyk="; + }; + meta.homepage = "https://github.com/slackhq/tree-sitter-hack"; + }; + hare = buildGrammar { + language = "hare"; + version = "0.0.0+rev=3d4af17"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-hare"; + rev = "3d4af179414525a35dd069ba0208c9b71093d8b3"; + hash = "sha256-RRi2uAE9rf0bjQrk8Asf6z+6ZDZYhEoKaX0m8hZnI9o="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-hare"; + }; + haskell = buildGrammar { + language = "haskell"; + version = "0.0.0+rev=6b5ec20"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-haskell"; + rev = "6b5ec205c9d4f23eb36a163f1edc4f2db8c98e4a"; + hash = "sha256-TFI524Pb5RhoPLHJ0ucSKJcWJDmIX6PJELSHRd2ic7Q="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-haskell"; + }; + haskell_persistent = buildGrammar { + language = "haskell_persistent"; + version = "0.0.0+rev=577259b"; + src = fetchFromGitHub { + owner = "MercuryTechnologies"; + repo = "tree-sitter-haskell-persistent"; + rev = "577259b4068b2c281c9ebf94c109bd50a74d5857"; + hash = "sha256-ASdkBQ57GfpLF8NXgDzJMB/Marz9p1q03TZkwMgF/eQ="; + }; + meta.homepage = "https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent"; + }; + hcl = buildGrammar { + language = "hcl"; + version = "0.0.0+rev=e936d3f"; + src = fetchFromGitHub { + owner = "MichaHoffmann"; + repo = "tree-sitter-hcl"; + rev = "e936d3fef8bac884661472dce71ad82284761eb1"; + hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo="; + }; + meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl"; + }; + heex = buildGrammar { + language = "heex"; + version = "0.0.0+rev=4a36c9a"; + src = fetchFromGitHub { + owner = "connorlay"; + repo = "tree-sitter-heex"; + rev = "4a36c9a388505180da6ee0eda1d8afb8c83481c8"; + hash = "sha256-6gdAxNI81jbN8XZALRw31kFQRZg8ge/O7QRprLZpWOg="; + }; + meta.homepage = "https://github.com/connorlay/tree-sitter-heex"; + }; + helm = buildGrammar { + language = "helm"; + version = "0.0.0+rev=17144a7"; + src = fetchFromGitHub { + owner = "ngalaiko"; + repo = "tree-sitter-go-template"; + rev = "17144a77be0acdecebd9d557398883569fed41de"; + hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80="; + }; + location = "dialects/helm"; + meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template"; + }; + hjson = buildGrammar { + language = "hjson"; + version = "0.0.0+rev=02fa3b7"; + src = fetchFromGitHub { + owner = "winston0410"; + repo = "tree-sitter-hjson"; + rev = "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0"; + hash = "sha256-NsTf3DR3gHVMYZDmTNvThB5bJcDwTcJ1+3eJhvsiDn8="; + }; + meta.homepage = "https://github.com/winston0410/tree-sitter-hjson"; + }; + hlsl = buildGrammar { + language = "hlsl"; + version = "0.0.0+rev=ee24be1"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-hlsl"; + rev = "ee24be127560f0de0c4741e382416f45ab47eb76"; + hash = "sha256-FMmJpyburjO/NKq14bQ9LbvxuiYdjBt5/Gfm/jeye0U="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl"; + }; + hlsplaylist = buildGrammar { + language = "hlsplaylist"; + version = "0.0.0+rev=5be34b0"; + src = fetchFromGitHub { + owner = "Freed-Wu"; + repo = "tree-sitter-hlsplaylist"; + rev = "5be34b0f6ea01b24f017c2c715729a3a919f57fd"; + hash = "sha256-3ZFaIc4BrfR7dLxftbSLuFdErjYrJgi0Cd8jp9PB19U="; + }; + meta.homepage = "https://github.com/Freed-Wu/tree-sitter-hlsplaylist"; + }; + hocon = buildGrammar { + language = "hocon"; + version = "0.0.0+rev=c390f10"; + src = fetchFromGitHub { + owner = "antosha417"; + repo = "tree-sitter-hocon"; + rev = "c390f10519ae69fdb03b3e5764f5592fb6924bcc"; + hash = "sha256-9Zo3YYoo9mJ4Buyj7ofSrlZURrwstBo0vgzeTq1jMGw="; + }; + meta.homepage = "https://github.com/antosha417/tree-sitter-hocon"; + }; + hoon = buildGrammar { + language = "hoon"; + version = "0.0.0+rev=0135187"; + src = fetchFromGitHub { + owner = "urbit-pilled"; + repo = "tree-sitter-hoon"; + rev = "0135187126370cbf112d759a50eab4a5c913a827"; + hash = "sha256-9FHCBaHQ/iXL3asJ3OZD9Gc02kPtWPNlPyRXiaEhkMU="; + }; + meta.homepage = "https://github.com/urbit-pilled/tree-sitter-hoon"; + }; + html = buildGrammar { + language = "html"; + version = "0.0.0+rev=b5d9758"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-html"; + rev = "b5d9758e22b4d3d25704b72526670759a9e4d195"; + hash = "sha256-v3BD36OKkzJ1xqQV87HAyQpnQzi/4+PuyEAM1HfkW3U="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-html"; + }; + htmldjango = buildGrammar { + language = "htmldjango"; + version = "0.0.0+rev=8873e3d"; + src = fetchFromGitHub { + owner = "interdependence"; + repo = "tree-sitter-htmldjango"; + rev = "8873e3df89f9ea1d33f6235e516b600009288557"; + hash = "sha256-zVpjgnP39ToEDf59Ldq/DhRVKZOGaWX+usVOcSsJX3k="; + }; + meta.homepage = "https://github.com/interdependence/tree-sitter-htmldjango"; + }; + http = buildGrammar { + language = "http"; + version = "0.0.0+rev=6824a24"; + src = fetchFromGitHub { + owner = "rest-nvim"; + repo = "tree-sitter-http"; + rev = "6824a247d1326079aab4fa9f9164e9319678081d"; + hash = "sha256-QYSdrngNBvDNYpPJ1da4pzXk8PtBidn+u0KPLmm7EW4="; + }; + meta.homepage = "https://github.com/rest-nvim/tree-sitter-http"; + }; + hurl = buildGrammar { + language = "hurl"; + version = "0.0.0+rev=cd1a0ad"; + src = fetchFromGitHub { + owner = "pfeiferj"; + repo = "tree-sitter-hurl"; + rev = "cd1a0ada92cc73dd0f4d7eedc162be4ded758591"; + hash = "sha256-vu/zK/AILJXPn18TmQSKoap7BtUOwhCxAX9v8ekVrIo="; + }; + meta.homepage = "https://github.com/pfeiferj/tree-sitter-hurl"; + }; + hyprlang = buildGrammar { + language = "hyprlang"; + version = "0.0.0+rev=fc1d331"; + src = fetchFromGitHub { + owner = "luckasRanarison"; + repo = "tree-sitter-hyprlang"; + rev = "fc1d331586e4da2b5f5bcfa89d630ebafe66458b"; + hash = "sha256-powQTRaYmGGEdkmt59kLfdbLZRkRFbGra6PRnno0AUo="; + }; + meta.homepage = "https://github.com/luckasRanarison/tree-sitter-hyprlang"; + }; + ini = buildGrammar { + language = "ini"; + version = "0.0.0+rev=bcb84a2"; + src = fetchFromGitHub { + owner = "justinmk"; + repo = "tree-sitter-ini"; + rev = "bcb84a2d4bcd6f55b911c42deade75c8f90cb0c5"; + hash = "sha256-dYPeVTNWO4apY5dsjsKViavU7YtLeGTp6BzEemXhsEU="; + }; + meta.homepage = "https://github.com/justinmk/tree-sitter-ini"; + }; + ispc = buildGrammar { + language = "ispc"; + version = "0.0.0+rev=9b2f9ae"; + src = fetchFromGitHub { + owner = "fab4100"; + repo = "tree-sitter-ispc"; + rev = "9b2f9aec2106b94b4e099fe75e73ebd8ae707c04"; + hash = "sha256-vxe+g7o0gXgB4GjhjkxqLqcLL2+8wqMB3tm1xQFSitI="; + }; + meta.homepage = "https://github.com/fab4100/tree-sitter-ispc"; + }; + janet_simple = buildGrammar { + language = "janet_simple"; + version = "0.0.0+rev=51271e2"; + src = fetchFromGitHub { + owner = "sogaiu"; + repo = "tree-sitter-janet-simple"; + rev = "51271e260346878e1a1aa6c506ce6a797b7c25e2"; + hash = "sha256-QXH/s0mB9kDKuYYB+Pa+nPjArt4pjcsLXCHP4I3nGwU="; + }; + meta.homepage = "https://github.com/sogaiu/tree-sitter-janet-simple"; + }; + java = buildGrammar { + language = "java"; + version = "0.0.0+rev=99b29f1"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-java"; + rev = "99b29f1ed957b3b424b6e21f57bd21a9732a622a"; + hash = "sha256-2A3dXO+N3M7GEiI06Dn28vU73Bow6vK0deC85mY058Q="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-java"; + }; + javascript = buildGrammar { + language = "javascript"; + version = "0.0.0+rev=51aed72"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-javascript"; + rev = "51aed7263d33bee46b0a8a5e165ffcb690d5aca8"; + hash = "sha256-FDnVwYpPgenOTgWaX/VdmtUmmIbCm/TtkiQ3TFoQjYY="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript"; + }; + jq = buildGrammar { + language = "jq"; + version = "0.0.0+rev=13990f5"; + src = fetchFromGitHub { + owner = "flurie"; + repo = "tree-sitter-jq"; + rev = "13990f530e8e6709b7978503da9bc8701d366791"; + hash = "sha256-pek2Vg1osMYAdx6DfVdZhuIDb26op3i2cfvMrf5v3xY="; + }; + meta.homepage = "https://github.com/flurie/tree-sitter-jq"; + }; + jsdoc = buildGrammar { + language = "jsdoc"; + version = "0.0.0+rev=6a6cf9e"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-jsdoc"; + rev = "6a6cf9e7341af32d8e2b2e24a37fbfebefc3dc55"; + hash = "sha256-fKscFhgZ/BQnYnE5EwurFZgiE//O0WagRIHVtDyes/Y="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-jsdoc"; + }; + json = buildGrammar { + language = "json"; + version = "0.0.0+rev=3b12920"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-json"; + rev = "3b129203f4b72d532f58e72c5310c0a7db3b8e6d"; + hash = "sha256-dVErHgsUDEN42wc/Gd68vQfVc8+/r/8No9KZk2GFzmY="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-json"; + }; + json5 = buildGrammar { + language = "json5"; + version = "0.0.0+rev=c23f7a9"; + src = fetchFromGitHub { + owner = "Joakker"; + repo = "tree-sitter-json5"; + rev = "c23f7a9b1ee7d45f516496b1e0e4be067264fa0d"; + hash = "sha256-16gDgbPUyhSo3PJD9+zz6QLVd6G/W1afjyuCJbDUSIY="; + }; + meta.homepage = "https://github.com/Joakker/tree-sitter-json5"; + }; + jsonc = buildGrammar { + language = "jsonc"; + version = "0.0.0+rev=02b0165"; + src = fetchFromGitLab { + owner = "WhyNotHugo"; + repo = "tree-sitter-jsonc"; + rev = "02b01653c8a1c198ae7287d566efa86a135b30d5"; + hash = "sha256-iWc2ePRiQnZ0FEdMAaAwa3iYt/SY0bEjQrZyqE9EhlU="; + }; + meta.homepage = "https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git"; + }; + jsonnet = buildGrammar { + language = "jsonnet"; + version = "0.0.0+rev=d34615f"; + src = fetchFromGitHub { + owner = "sourcegraph"; + repo = "tree-sitter-jsonnet"; + rev = "d34615fa12cc1d1cfc1f1f1a80acc9db80ee4596"; + hash = "sha256-jjDjntNm0YAsG6Ec2n0eB8BjpgEQEAjV8LAZ3GGYhG8="; + }; + meta.homepage = "https://github.com/sourcegraph/tree-sitter-jsonnet"; + }; + julia = buildGrammar { + language = "julia"; + version = "0.0.0+rev=e84f10d"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-julia"; + rev = "e84f10db8eeb8b9807786bfc658808edaa1b4fa2"; + hash = "sha256-jrQjVPLb6SfePxEJV1GgFgLslGxgdmdb8bJy6VHOEbs="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-julia"; + }; + kconfig = buildGrammar { + language = "kconfig"; + version = "0.0.0+rev=486fea7"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-kconfig"; + rev = "486fea71f61ad9f3fd4072a118402e97fe88d26c"; + hash = "sha256-a3uTjtA4KQ8KxEmpva2oHcqp8EwbI5+h9U+qoPSgDd4="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-kconfig"; + }; + kdl = buildGrammar { + language = "kdl"; + version = "0.0.0+rev=49fb89a"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-kdl"; + rev = "49fb89a854d93b58a65a19724ac307195ca11941"; + hash = "sha256-U8N6aaTyYT6zaOKJ8S+3dMjS4ngxc9Yo7g4OFi03RR4="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-kdl"; + }; + kotlin = buildGrammar { + language = "kotlin"; + version = "0.0.0+rev=4e909d6"; + src = fetchFromGitHub { + owner = "fwcd"; + repo = "tree-sitter-kotlin"; + rev = "4e909d6cc9ac96b4eaecb3fb538eaca48e9e9ee9"; + hash = "sha256-Rmq5G+7h/XSNX7JYtpAKcWbOZ1aZpBpe9GpaizK2DRk="; + }; + meta.homepage = "https://github.com/fwcd/tree-sitter-kotlin"; + }; + kusto = buildGrammar { + language = "kusto"; + version = "0.0.0+rev=8353a12"; + src = fetchFromGitHub { + owner = "Willem-J-an"; + repo = "tree-sitter-kusto"; + rev = "8353a1296607d6ba33db7c7e312226e5fc83e8ce"; + hash = "sha256-CZCvgOtHjCgyzKFdys+ZvSWCj1I1/b2MnaJcdAtm2aY="; + }; + meta.homepage = "https://github.com/Willem-J-an/tree-sitter-kusto"; + }; + lalrpop = buildGrammar { + language = "lalrpop"; + version = "0.0.0+rev=456dec2"; + src = fetchFromGitHub { + owner = "traxys"; + repo = "tree-sitter-lalrpop"; + rev = "456dec2990ed7e9595eca82f85db14a1db46e126"; + hash = "sha256-9lBgCmXfsvNZiI6KzOxLE4S9Eh2B6FSAMX3d5Oz9mQg="; + }; + meta.homepage = "https://github.com/traxys/tree-sitter-lalrpop"; + }; + latex = buildGrammar { + language = "latex"; + version = "0.0.0+rev=841f89f"; + src = fetchFromGitHub { + owner = "latex-lsp"; + repo = "tree-sitter-latex"; + rev = "841f89ffbba9650529a40fb867f3456bf92bf9b1"; + hash = "sha256-OVPWwjRD/pYHk+iBskVuvum8+mNjIbAqJOMU22VE7CY="; + }; + meta.homepage = "https://github.com/latex-lsp/tree-sitter-latex"; + }; + ledger = buildGrammar { + language = "ledger"; + version = "0.0.0+rev=8a841fb"; + src = fetchFromGitHub { + owner = "cbarrete"; + repo = "tree-sitter-ledger"; + rev = "8a841fb20ce683bfbb3469e6ba67f2851cfdf94a"; + hash = "sha256-BDMmRRqJXZTgK3yHX+yqgWHGpsMLqzTcQxFYaAWxroo="; + }; + meta.homepage = "https://github.com/cbarrete/tree-sitter-ledger"; + }; + leo = buildGrammar { + language = "leo"; + version = "0.0.0+rev=304611b"; + src = fetchFromGitHub { + owner = "r001"; + repo = "tree-sitter-leo"; + rev = "304611b5eaf53aca07459a0a03803b83b6dfd3b3"; + hash = "sha256-D3jtNBYLgN2/0TnbOMJrsuZrP+PMr835aDYlCwIPPrk="; + }; + meta.homepage = "https://github.com/r001/tree-sitter-leo"; + }; + linkerscript = buildGrammar { + language = "linkerscript"; + version = "0.0.0+rev=f99011a"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-linkerscript"; + rev = "f99011a3554213b654985a4b0a65b3b032ec4621"; + hash = "sha256-Do8MIcl5DJo00V4wqIbdVC0to+2YYwfy08QWqSLMkQA="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-linkerscript"; + }; + liquidsoap = buildGrammar { + language = "liquidsoap"; + version = "0.0.0+rev=fb062bf"; + src = fetchFromGitHub { + owner = "savonet"; + repo = "tree-sitter-liquidsoap"; + rev = "fb062bfc7ca09a741820debb7cb8a75a557b30f9"; + hash = "sha256-Q3ML8h6GU3KxL0G7JUAKwqNVgQBtDeQJANKF5h+MApQ="; + }; + meta.homepage = "https://github.com/savonet/tree-sitter-liquidsoap"; + }; + llvm = buildGrammar { + language = "llvm"; + version = "0.0.0+rev=1b96e58"; + src = fetchFromGitHub { + owner = "benwilliamgraham"; + repo = "tree-sitter-llvm"; + rev = "1b96e58faf558ce057d4dc664b904528aee743cb"; + hash = "sha256-9OCiD7Hotl7EYoggX0lArwFvK2OZisBUsX7xv8+Ig+o="; + }; + meta.homepage = "https://github.com/benwilliamgraham/tree-sitter-llvm"; + }; + lua = buildGrammar { + language = "lua"; + version = "0.0.0+rev=04c9579"; + src = fetchFromGitHub { + owner = "MunifTanjim"; + repo = "tree-sitter-lua"; + rev = "04c9579dcb917255b2e5f8199df4ae7f587d472f"; + hash = "sha256-kzyn6XF4/PN8civ/0UV+ancCMkh7DF2B7WUYxix6aaM="; + }; + meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua"; + }; + luadoc = buildGrammar { + language = "luadoc"; + version = "0.0.0+rev=873612a"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-luadoc"; + rev = "873612aadd3f684dd4e631bdf42ea8990c57634e"; + hash = "sha256-ttGBB9sn+xd9jWzjNAzpo/lwYVYZGSUGEip4K3PfBP0="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-luadoc"; + }; + luap = buildGrammar { + language = "luap"; + version = "0.0.0+rev=31461ae"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-luap"; + rev = "31461ae9bd0866cb5117cfe5de71189854fd0f3e"; + hash = "sha256-SW2ubK5317GUc1dQLkhoaisMgctLOwr6TPVYSQh02vE="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-luap"; + }; + luau = buildGrammar { + language = "luau"; + version = "0.0.0+rev=e5f7a02"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-luau"; + rev = "e5f7a020967407f73959592decdb147bb5fc30bb"; + hash = "sha256-5Tnqt4PA3xX2Gk0CvlzVpWXI3OcqzsIJov4Kn0EWN+w="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-luau"; + }; + m68k = buildGrammar { + language = "m68k"; + version = "0.0.0+rev=d097b12"; + src = fetchFromGitHub { + owner = "grahambates"; + repo = "tree-sitter-m68k"; + rev = "d097b123f19c6eaba2bf181c05420d88b9fc489d"; + hash = "sha256-y1nioJ2R0YgGLH7dkJsTxIkejfMnh1CU+A++yTaQdb0="; + }; + meta.homepage = "https://github.com/grahambates/tree-sitter-m68k"; + }; + make = buildGrammar { + language = "make"; + version = "0.0.0+rev=a4b9187"; + src = fetchFromGitHub { + owner = "alemuller"; + repo = "tree-sitter-make"; + rev = "a4b9187417d6be349ee5fd4b6e77b4172c6827dd"; + hash = "sha256-qQqapnKKH5X8rkxbZG5PjnyxvnpyZHpFVi/CLkIn/x0="; + }; + meta.homepage = "https://github.com/alemuller/tree-sitter-make"; + }; + markdown = buildGrammar { + language = "markdown"; + version = "0.0.0+rev=2821521"; + src = fetchFromGitHub { + owner = "MDeiml"; + repo = "tree-sitter-markdown"; + rev = "2821521a4e6eab37b63dff6a8e169cd88554047d"; + hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4="; + }; + location = "tree-sitter-markdown"; + meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown"; + }; + markdown_inline = buildGrammar { + language = "markdown_inline"; + version = "0.0.0+rev=2821521"; + src = fetchFromGitHub { + owner = "MDeiml"; + repo = "tree-sitter-markdown"; + rev = "2821521a4e6eab37b63dff6a8e169cd88554047d"; + hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4="; + }; + location = "tree-sitter-markdown-inline"; + meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown"; + }; + matlab = buildGrammar { + language = "matlab"; + version = "0.0.0+rev=79d8b25"; + src = fetchFromGitHub { + owner = "acristoffers"; + repo = "tree-sitter-matlab"; + rev = "79d8b25f57b48f83ae1333aff6723b83c9532e37"; + hash = "sha256-DCAMxQqWHM54yzNzF1FjaU0+vETbLhfSZXNq+62DzhE="; + }; + meta.homepage = "https://github.com/acristoffers/tree-sitter-matlab"; + }; + menhir = buildGrammar { + language = "menhir"; + version = "0.0.0+rev=be8866a"; + src = fetchFromGitHub { + owner = "Kerl13"; + repo = "tree-sitter-menhir"; + rev = "be8866a6bcc2b563ab0de895af69daeffa88fe70"; + hash = "sha256-CQVEQurf8Ur5xnz+g7e1nck0a32o4oeMOT78thjx8MQ="; + }; + meta.homepage = "https://github.com/Kerl13/tree-sitter-menhir"; + }; + mermaid = buildGrammar { + language = "mermaid"; + version = "0.0.0+rev=e8dac87"; + src = fetchFromGitHub { + owner = "monaqa"; + repo = "tree-sitter-mermaid"; + rev = "e8dac87a9f789b23a2c7ab8e55b485a2f5927b98"; + hash = "sha256-1FCc8goKhFtgxSPeAzFkQhpbpruhZ+GD8VaLRJpnyS4="; + }; + meta.homepage = "https://github.com/monaqa/tree-sitter-mermaid"; + }; + meson = buildGrammar { + language = "meson"; + version = "0.0.0+rev=d6ec8ce"; + src = fetchFromGitHub { + owner = "Decodetalkers"; + repo = "tree-sitter-meson"; + rev = "d6ec8ce0963c3c8180161391f15d8f7d415f650d"; + hash = "sha256-SwcBhg6luPAOtaL5dhvLxCpJcwlGhZxhvVmn5pa6ecA="; + }; + meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson"; + }; + mlir = buildGrammar { + language = "mlir"; + version = "0.0.0+rev=a56445f"; + src = fetchFromGitHub { + owner = "artagnon"; + repo = "tree-sitter-mlir"; + rev = "a56445f841ae7246e4aa3fdf7b4ef0bccdc82e7c"; + hash = "sha256-eMTLXvLgddUDWk4fk4Av1hp8opKHdu9bhydY5THiH8k="; + }; + generate = true; + meta.homepage = "https://github.com/artagnon/tree-sitter-mlir"; + }; + muttrc = buildGrammar { + language = "muttrc"; + version = "0.0.0+rev=67d9e23"; + src = fetchFromGitHub { + owner = "neomutt"; + repo = "tree-sitter-muttrc"; + rev = "67d9e23ca7aa22d9bce9d16c53d2c927dff5159a"; + hash = "sha256-B3/VoPq8h7TiwOP0nhsuPmFtkLsucpDm9RnUNXkfKpo="; + }; + meta.homepage = "https://github.com/neomutt/tree-sitter-muttrc"; + }; + nasm = buildGrammar { + language = "nasm"; + version = "0.0.0+rev=3bc691d"; + src = fetchFromGitHub { + owner = "naclsn"; + repo = "tree-sitter-nasm"; + rev = "3bc691d2cfba44bea339a775ad496c8bc552c60d"; + hash = "sha256-o4aXvPhXSYMc1oaagIbnFhpqcbWdN8dhMa3QRE/iRMM="; + }; + meta.homepage = "https://github.com/naclsn/tree-sitter-nasm"; + }; + nickel = buildGrammar { + language = "nickel"; + version = "0.0.0+rev=58baf89"; + src = fetchFromGitHub { + owner = "nickel-lang"; + repo = "tree-sitter-nickel"; + rev = "58baf89db8fdae54a84bcf22c80ff10ee3f929ed"; + hash = "sha256-WuY6X1mnXdjiy4joIcY8voK2sqICFf0GvudulZ9lwqg="; + }; + meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel"; + }; + nim = buildGrammar { + language = "nim"; + version = "0.0.0+rev=f5cec6a"; + src = fetchFromGitHub { + owner = "alaviss"; + repo = "tree-sitter-nim"; + rev = "f5cec6a841b585e4e7388a120ded07e60ae19c43"; + hash = "sha256-CL041Tjw7CH9EnpjAVl4f66zyOADfG9qwkFxeUjXH0w="; + }; + meta.homepage = "https://github.com/alaviss/tree-sitter-nim"; + }; + nim_format_string = buildGrammar { + language = "nim_format_string"; + version = "0.0.0+rev=d45f750"; + src = fetchFromGitHub { + owner = "aMOPel"; + repo = "tree-sitter-nim-format-string"; + rev = "d45f75022d147cda056e98bfba68222c9c8eca3a"; + hash = "sha256-hbM0JIxtZ3e2JUV4jXYO4RIO6r63nf2csvsLeIxkMn0="; + }; + meta.homepage = "https://github.com/aMOPel/tree-sitter-nim-format-string"; + }; + ninja = buildGrammar { + language = "ninja"; + version = "0.0.0+rev=0a95cfd"; + src = fetchFromGitHub { + owner = "alemuller"; + repo = "tree-sitter-ninja"; + rev = "0a95cfdc0745b6ae82f60d3a339b37f19b7b9267"; + hash = "sha256-e/LpQUL3UHHko4QvMeT40LCvPZRT7xTGZ9z1Zaboru4="; + }; + meta.homepage = "https://github.com/alemuller/tree-sitter-ninja"; + }; + nix = buildGrammar { + language = "nix"; + version = "0.0.0+rev=763168f"; + src = fetchFromGitHub { + owner = "cstrahan"; + repo = "tree-sitter-nix"; + rev = "763168fa916a333a459434f1424b5d30645f015d"; + hash = "sha256-MarXhVPVmL505c57HkbUk0kHN7jez83mcGtyM5GMw1o="; + }; + meta.homepage = "https://github.com/cstrahan/tree-sitter-nix"; + }; + norg = buildGrammar { + language = "norg"; + version = "0.0.0+rev=014073f"; + src = fetchFromGitHub { + owner = "nvim-neorg"; + repo = "tree-sitter-norg"; + rev = "014073fe8016d1ac440c51d22c77e3765d8f6855"; + hash = "sha256-0wL3Pby7e4nbeVHCRfWwxZfEcAF9/s8e6Njva+lj+Rc="; + }; + meta.homepage = "https://github.com/nvim-neorg/tree-sitter-norg"; + }; + nqc = buildGrammar { + language = "nqc"; + version = "0.0.0+rev=14e6da1"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-nqc"; + rev = "14e6da1627aaef21d2b2aa0c37d04269766dcc1d"; + hash = "sha256-Gf6410cWLENCgI1uIBVBl4RnRuVCHkWkn6sxusmI6j4="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-nqc"; + }; + objc = buildGrammar { + language = "objc"; + version = "0.0.0+rev=62e61b6"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-objc"; + rev = "62e61b6f5c0289c376d61a8c91faf6435cde9012"; + hash = "sha256-Q1qAUgoYfpxmhn5XpnCwLBdu2BL2YF2We9bjumR8dNk="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-objc"; + }; + objdump = buildGrammar { + language = "objdump"; + version = "0.0.0+rev=28d3b2e"; + src = fetchFromGitHub { + owner = "ColinKennedy"; + repo = "tree-sitter-objdump"; + rev = "28d3b2e25a0b1881d1b47ed1924ca276c7003d45"; + hash = "sha256-OPqIhgItghXplQ78Vlwd0G6KtDWTVkaG17RPqx1b5JY="; + }; + meta.homepage = "https://github.com/ColinKennedy/tree-sitter-objdump"; + }; + ocaml = buildGrammar { + language = "ocaml"; + version = "0.0.0+rev=9965d20"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-ocaml"; + rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677"; + hash = "sha256-9Y/eZNsKkz8RKjMn5RIAPITkDQTWdSc/fBXzxMg1ViQ="; + }; + location = "ocaml"; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml"; + }; + ocaml_interface = buildGrammar { + language = "ocaml_interface"; + version = "0.0.0+rev=9965d20"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-ocaml"; + rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677"; + hash = "sha256-9Y/eZNsKkz8RKjMn5RIAPITkDQTWdSc/fBXzxMg1ViQ="; + }; + location = "interface"; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml"; + }; + ocamllex = buildGrammar { + language = "ocamllex"; + version = "0.0.0+rev=4b9898c"; + src = fetchFromGitHub { + owner = "atom-ocaml"; + repo = "tree-sitter-ocamllex"; + rev = "4b9898ccbf198602bb0dec9cd67cc1d2c0a4fad2"; + hash = "sha256-YhmEE7I7UF83qMuldHqc/fD/no/7YuZd6CaAIaZ1now="; + }; + generate = true; + meta.homepage = "https://github.com/atom-ocaml/tree-sitter-ocamllex"; + }; + odin = buildGrammar { + language = "odin"; + version = "0.0.0+rev=f94c590"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-odin"; + rev = "f94c590ed5263e11f1e492d1b53356f8c8459b66"; + hash = "sha256-MLSy1OU8PE2wTfV8JoJdtjoc12MD993TViaZjp3Ujgc="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-odin"; + }; + org = buildGrammar { + language = "org"; + version = "0.0.0+rev=64cfbc2"; + src = fetchFromGitHub { + owner = "milisims"; + repo = "tree-sitter-org"; + rev = "64cfbc213f5a83da17632c95382a5a0a2f3357c1"; + hash = "sha256-/03eZBbv23W5s/GbDgPgaJV5TyK+/lrWUVeINRS5wtA="; + }; + meta.homepage = "https://github.com/milisims/tree-sitter-org"; + }; + pascal = buildGrammar { + language = "pascal"; + version = "0.0.0+rev=9e99540"; + src = fetchFromGitHub { + owner = "Isopod"; + repo = "tree-sitter-pascal"; + rev = "9e995404ddff8319631d72d4b46552e737206912"; + hash = "sha256-y8xPnVZ15+eAnjrLSGjS5wIbLgSKbz9bipgL0o8acmA="; + }; + meta.homepage = "https://github.com/Isopod/tree-sitter-pascal.git"; + }; + passwd = buildGrammar { + language = "passwd"; + version = "0.0.0+rev=2023939"; + src = fetchFromGitHub { + owner = "ath3"; + repo = "tree-sitter-passwd"; + rev = "20239395eacdc2e0923a7e5683ad3605aee7b716"; + hash = "sha256-3UfuyJeblQBKjqZvLYyO3GoCvYJp+DvBwQGkR3pFQQ4="; + }; + meta.homepage = "https://github.com/ath3/tree-sitter-passwd"; + }; + pem = buildGrammar { + language = "pem"; + version = "0.0.0+rev=217ff2a"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-pem"; + rev = "217ff2af3f2db15a79ab7e3d21ea1e0c17e71a1a"; + hash = "sha256-KGJ9ulGi3gKUJxNXil5Zai4v5/5ImUSMVP3/19ra3A0="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pem"; + }; + perl = buildGrammar { + language = "perl"; + version = "0.0.0+rev=6526e5d"; + src = fetchFromGitHub { + owner = "tree-sitter-perl"; + repo = "tree-sitter-perl"; + rev = "6526e5d5bf31501de0dc51c42ac3583078a8fdab"; + hash = "sha256-jqLYYHpcwt2ctcz6zbgyhG6p3yRLHvr9TlUMky2cfaM="; + }; + meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl"; + }; + php = buildGrammar { + language = "php"; + version = "0.0.0+rev=365fd18"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-php"; + rev = "365fd18542aaba90466580f8400e4ba3fb71c5fb"; + hash = "sha256-I/2ZK3kfst/pnmI3bdgN1OW7i2G4+7ExxXQHWv44niI="; + }; + location = "php"; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-php"; + }; + php_only = buildGrammar { + language = "php_only"; + version = "0.0.0+rev=365fd18"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-php"; + rev = "365fd18542aaba90466580f8400e4ba3fb71c5fb"; + hash = "sha256-I/2ZK3kfst/pnmI3bdgN1OW7i2G4+7ExxXQHWv44niI="; + }; + location = "php_only"; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-php"; + }; + phpdoc = buildGrammar { + language = "phpdoc"; + version = "0.0.0+rev=f285e33"; + src = fetchFromGitHub { + owner = "claytonrcarter"; + repo = "tree-sitter-phpdoc"; + rev = "f285e338d328a03920a9bfd8dda78585c7ddcca3"; + hash = "sha256-kvAZ1+tbw6bAtLhPeNGi1rmnyNhBSL/nynQADX+4tMw="; + }; + meta.homepage = "https://github.com/claytonrcarter/tree-sitter-phpdoc"; + }; + pioasm = buildGrammar { + language = "pioasm"; + version = "0.0.0+rev=924aada"; + src = fetchFromGitHub { + owner = "leo60228"; + repo = "tree-sitter-pioasm"; + rev = "924aadaf5dea2a6074d72027b064f939acf32e20"; + hash = "sha256-og5DjoyTtKUTp0V4/PpcGb8xwzLeidsb2lq0+QF7u9M="; + }; + meta.homepage = "https://github.com/leo60228/tree-sitter-pioasm"; + }; + po = buildGrammar { + language = "po"; + version = "0.0.0+rev=d6aed22"; + src = fetchFromGitHub { + owner = "erasin"; + repo = "tree-sitter-po"; + rev = "d6aed225290bc71a15ab6f06305cb11419360c56"; + hash = "sha256-fz4DGPA+KtOvLBmVMXqwnEMeXhupFecQC1xfhMbWCJg="; + }; + meta.homepage = "https://github.com/erasin/tree-sitter-po"; + }; + pod = buildGrammar { + language = "pod"; + version = "0.0.0+rev=39da859"; + src = fetchFromGitHub { + owner = "tree-sitter-perl"; + repo = "tree-sitter-pod"; + rev = "39da859947b94abdee43e431368e1ae975c0a424"; + hash = "sha256-sMUlAtl0IaykKlEhOiAkdrLNNJiCS0L7gj7+2WHwO5U="; + }; + meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-pod"; + }; + poe_filter = buildGrammar { + language = "poe_filter"; + version = "0.0.0+rev=592476d"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-poe-filter"; + rev = "592476d81f95d2451f2ca107dc872224c76fecdf"; + hash = "sha256-dmo/t8gCT7UTlhBvxH4xmliR3Evazv3qsz9EWz7h/gU="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-poe-filter"; + }; + pony = buildGrammar { + language = "pony"; + version = "0.0.0+rev=16f930b"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-pony"; + rev = "16f930b250433cfcd4fb4144df92bb98ad344c20"; + hash = "sha256-UamgLmI1aI5e/JlGVZzFCPgDol8MnFomncrFKhQYLsk="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-pony"; + }; + printf = buildGrammar { + language = "printf"; + version = "0.0.0+rev=0e0acea"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-printf"; + rev = "0e0aceabbf607ea09e03562f5d8a56f048ddea3d"; + hash = "sha256-y/7CDnHpT3D6hL0f+52mReCphn+lvElfQQKJwY4fr9c="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-printf"; + }; + prisma = buildGrammar { + language = "prisma"; + version = "0.0.0+rev=eca2596"; + src = fetchFromGitHub { + owner = "victorhqc"; + repo = "tree-sitter-prisma"; + rev = "eca2596a355b1a9952b4f80f8f9caed300a272b5"; + hash = "sha256-MOqkM7DCQl1L8Jn9nyw89EoAr0ez4+d39HeKy2cb66c="; + }; + meta.homepage = "https://github.com/victorhqc/tree-sitter-prisma"; + }; + promql = buildGrammar { + language = "promql"; + version = "0.0.0+rev=77625d7"; + src = fetchFromGitHub { + owner = "MichaHoffmann"; + repo = "tree-sitter-promql"; + rev = "77625d78eebc3ffc44d114a07b2f348dff3061b0"; + hash = "sha256-IJbnC03pDfcSAF//Ux+LqqfjtagGSD5Nu46yUo0vT5Q="; + }; + meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-promql"; + }; + properties = buildGrammar { + language = "properties"; + version = "0.0.0+rev=9d09f5f"; + src = fetchFromGitHub { + owner = "tree-sitter-grammars"; + repo = "tree-sitter-properties"; + rev = "9d09f5f200c356c50c4103d36441309fd61b48d1"; + hash = "sha256-KrQlLqCH4P5pwm8ql+iVR09khzQuJu2UHXdMT9MZYe8="; + }; + meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-properties"; + }; + proto = buildGrammar { + language = "proto"; + version = "0.0.0+rev=e9f6b43"; + src = fetchFromGitHub { + owner = "treywood"; + repo = "tree-sitter-proto"; + rev = "e9f6b43f6844bd2189b50a422d4e2094313f6aa3"; + hash = "sha256-Ue6w6HWy+NTJt+AKTFfJIUf3HXHTwkUkDk4UdDMSD+U="; + }; + meta.homepage = "https://github.com/treywood/tree-sitter-proto"; + }; + prql = buildGrammar { + language = "prql"; + version = "0.0.0+rev=09e158c"; + src = fetchFromGitHub { + owner = "PRQL"; + repo = "tree-sitter-prql"; + rev = "09e158cd3650581c0af4c49c2e5b10c4834c8646"; + hash = "sha256-bdT7LZ2x7BdUqLJRq4ENJTaIFnciac7l2dCxOSB09CI="; + }; + meta.homepage = "https://github.com/PRQL/tree-sitter-prql"; + }; + psv = buildGrammar { + language = "psv"; + version = "0.0.0+rev=cda48a5"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-csv"; + rev = "cda48a5e890b30619da5bc3ff55be1b1d3d08c8d"; + hash = "sha256-K4tOYdI68fXnWbvSat50FL/jDSb8f6gtZOhE6qKPLyg="; + }; + location = "psv"; + meta.homepage = "https://github.com/amaanq/tree-sitter-csv"; + }; + pug = buildGrammar { + language = "pug"; + version = "0.0.0+rev=a7ff31a"; + src = fetchFromGitHub { + owner = "zealot128"; + repo = "tree-sitter-pug"; + rev = "a7ff31a38908df9b9f34828d21d6ca5e12413e18"; + hash = "sha256-WDx2Y1LxuJJuAaeTxfqQrxRXxVd4Cn3niQeherh+5Uc="; + }; + meta.homepage = "https://github.com/zealot128/tree-sitter-pug"; + }; + puppet = buildGrammar { + language = "puppet"; + version = "0.0.0+rev=5849f96"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-puppet"; + rev = "5849f9694197a6e822872945b415429c285fdd54"; + hash = "sha256-Lwfiby7amjTIOz8QRoC4RdZyFPfFikmQ2sqta4akyH8="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-puppet"; + }; + purescript = buildGrammar { + language = "purescript"; + version = "0.0.0+rev=daf9b3e"; + src = fetchFromGitHub { + owner = "postsolar"; + repo = "tree-sitter-purescript"; + rev = "daf9b3e2be18b0b2996a1281f7783e0d041d8b80"; + hash = "sha256-eY2WF2n0fZUl1zxZZHJVYR8b1FwaAjkCeSeOdSf67m4="; + }; + meta.homepage = "https://github.com/postsolar/tree-sitter-purescript"; + }; + pymanifest = buildGrammar { + language = "pymanifest"; + version = "0.0.0+rev=e3b82b7"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-pymanifest"; + rev = "e3b82b78721aee07f676dac8473ae69db51debcf"; + hash = "sha256-pZCqeSdiYctbFthdb8Olw35CAXQmT7jG2LOO/3NN/8s="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pymanifest"; + }; + python = buildGrammar { + language = "python"; + version = "0.0.0+rev=03e88c1"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-python"; + rev = "03e88c170cb23142559a406b6e7621c4af3128f5"; + hash = "sha256-SqPd9O1OqBEOA+WPLfP3J2vuHWt53G5gI/9FWKQx2/Y="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-python"; + }; + ql = buildGrammar { + language = "ql"; + version = "0.0.0+rev=ff04ba6"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-ql"; + rev = "ff04ba61857ba05b80221e71b423b2728dbebe1e"; + hash = "sha256-/ayyqSF/SBVvqMYm27NOlCYR3JN0xR3oy0OggwTysvE="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-ql"; + }; + qmldir = buildGrammar { + language = "qmldir"; + version = "0.0.0+rev=6b2b5e4"; + src = fetchFromGitHub { + owner = "Decodetalkers"; + repo = "tree-sitter-qmldir"; + rev = "6b2b5e41734bd6f07ea4c36ac20fb6f14061c841"; + hash = "sha256-7ic9Xd+1G0JM25bY0f8N5r6YZx5NV5HrJXXHp6pXvo4="; + }; + meta.homepage = "https://github.com/Decodetalkers/tree-sitter-qmldir"; + }; + qmljs = buildGrammar { + language = "qmljs"; + version = "0.0.0+rev=9fa49ff"; + src = fetchFromGitHub { + owner = "yuja"; + repo = "tree-sitter-qmljs"; + rev = "9fa49ff3315987f715ce5666ff979a7742fa8a98"; + hash = "sha256-q20gLVLs0LpqRpgo/qNRDfExbWXhICWZjM1ux4+AT6M="; + }; + meta.homepage = "https://github.com/yuja/tree-sitter-qmljs"; + }; + query = buildGrammar { + language = "query"; + version = "0.0.0+rev=176a380"; + src = fetchFromGitHub { + owner = "nvim-treesitter"; + repo = "tree-sitter-query"; + rev = "176a380df78800167565118bb0dadfc961abbd43"; + hash = "sha256-b9M213q6dmuK65llDTMW7rksrOyTEzlE0kdAVv0fDnA="; + }; + meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query"; + }; + r = buildGrammar { + language = "r"; + version = "0.0.0+rev=c55f8b4"; + src = fetchFromGitHub { + owner = "r-lib"; + repo = "tree-sitter-r"; + rev = "c55f8b4dfaa32c80ddef6c0ac0e79b05cb0cbf57"; + hash = "sha256-NWnEk0FixC7pBdNLwJUGvKifwZj8nzX7VWv8AhgaI2o="; + }; + meta.homepage = "https://github.com/r-lib/tree-sitter-r"; + }; + racket = buildGrammar { + language = "racket"; + version = "0.0.0+rev=e4ba1a9"; + src = fetchFromGitHub { + owner = "6cdh"; + repo = "tree-sitter-racket"; + rev = "e4ba1a9674a3b4dd7905d04f194ae6f8331be342"; + hash = "sha256-4+TRol2i6ibuXqBr6O8jI/4MZq8hnf09eVBtPqaKp8s="; + }; + meta.homepage = "https://github.com/6cdh/tree-sitter-racket"; + }; + rasi = buildGrammar { + language = "rasi"; + version = "0.0.0+rev=43196d9"; + src = fetchFromGitHub { + owner = "Fymyte"; + repo = "tree-sitter-rasi"; + rev = "43196d934a9a6ab3c7093a8683efd0111bb03db1"; + hash = "sha256-7zhQ5wGm0FFyuTiBVN2KgvUTw8G6fwUGR8HKJ69kR+c="; + }; + meta.homepage = "https://github.com/Fymyte/tree-sitter-rasi"; + }; + rbs = buildGrammar { + language = "rbs"; + version = "0.0.0+rev=519a611"; + src = fetchFromGitHub { + owner = "joker1007"; + repo = "tree-sitter-rbs"; + rev = "519a61132a51222e3ce73d3b7ef07465f587f346"; + hash = "sha256-MLsbOdH4R3nZxqTFtPstTsbr+yjAz7UvKB/lsD8aWxM="; + }; + meta.homepage = "https://github.com/joker1007/tree-sitter-rbs"; + }; + re2c = buildGrammar { + language = "re2c"; + version = "0.0.0+rev=47aa19c"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-re2c"; + rev = "47aa19cf5f7aba2ed30e2b377f7172df76e819a6"; + hash = "sha256-Mwnm8kN0xfAdGG00aUYrqPU0zyWbc6QH9Zlgb4on+do="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-re2c"; + }; + readline = buildGrammar { + language = "readline"; + version = "0.0.0+rev=e436eae"; + src = fetchFromGitHub { + owner = "ribru17"; + repo = "tree-sitter-readline"; + rev = "e436eaef452266a3d00c195f0eb757d6502c767a"; + hash = "sha256-y38TDQ+7wBzEKol/UQ5Xk6f15wUW7hJxByDuhx9d0hQ="; + }; + meta.homepage = "https://github.com/ribru17/tree-sitter-readline"; + }; + regex = buildGrammar { + language = "regex"; + version = "0.0.0+rev=ba22e4e"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-regex"; + rev = "ba22e4e0cb42b2ef066948d0ea030ac509cef733"; + hash = "sha256-mb8y3lsbN5zEpVCeBQxGXSRqC3FKsvNg1Rb1XTSh3Qo="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-regex"; + }; + rego = buildGrammar { + language = "rego"; + version = "0.0.0+rev=9ac75e7"; + src = fetchFromGitHub { + owner = "FallenAngel97"; + repo = "tree-sitter-rego"; + rev = "9ac75e71b2d791e0aadeef68098319d86a2a14cf"; + hash = "sha256-L6n6Z5y9t1ixpy9mktB9HVKy69jigqbIFB2SrSW/yoo="; + }; + meta.homepage = "https://github.com/FallenAngel97/tree-sitter-rego"; + }; + requirements = buildGrammar { + language = "requirements"; + version = "0.0.0+rev=8666a4d"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-requirements"; + rev = "8666a4dfeb3107144398158bc3dd7a3f59d89ccb"; + hash = "sha256-M+/I0pn79Juk8LRB6LLRAyA3R5zcm6rIoR4viT9SW0c="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-requirements"; + }; + rnoweb = buildGrammar { + language = "rnoweb"; + version = "0.0.0+rev=502c112"; + src = fetchFromGitHub { + owner = "bamonroe"; + repo = "tree-sitter-rnoweb"; + rev = "502c1126dc6777f09af5bef16e72a42f75bd081e"; + hash = "sha256-aGEhy4uMhKFbL0+JO5rrn3GIe//8PZpDHEMDGHDlBCY="; + }; + meta.homepage = "https://github.com/bamonroe/tree-sitter-rnoweb"; + }; + robot = buildGrammar { + language = "robot"; + version = "0.0.0+rev=322e4cc"; + src = fetchFromGitHub { + owner = "Hubro"; + repo = "tree-sitter-robot"; + rev = "322e4cc65754d2b3fdef4f2f8a71e0762e3d13af"; + hash = "sha256-VxWZWFPYkD3odM3TpEgLKsFnN8wB6xoIiXUYqBbpDqw="; + }; + meta.homepage = "https://github.com/Hubro/tree-sitter-robot"; + }; + ron = buildGrammar { + language = "ron"; + version = "0.0.0+rev=ce6086b"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-ron"; + rev = "ce6086b2c9e8e71065b8129d6c2289c5f66d1879"; + hash = "sha256-4ZKhJ3qvKWwINQIWJLqgPwfnDvQBWzeZb2dZY7imYfc="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-ron"; + }; + rst = buildGrammar { + language = "rst"; + version = "0.0.0+rev=3ba9eb9"; + src = fetchFromGitHub { + owner = "stsewd"; + repo = "tree-sitter-rst"; + rev = "3ba9eb9b5a47aadb1f2356a3cab0dd3d2bd00b4b"; + hash = "sha256-0w11mtDcIc2ol9Alg4ukV33OzXADOeJDx+3uxV1hGfs="; + }; + meta.homepage = "https://github.com/stsewd/tree-sitter-rst"; + }; + ruby = buildGrammar { + language = "ruby"; + version = "0.0.0+rev=22a0bb2"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-ruby"; + rev = "22a0bb2678755a3714e194609862ea7f4516e807"; + hash = "sha256-lD3pRbQZDyqIkiknuXAkXd+6aHqKUY/8SNwQgfnrbBw="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby"; + }; + rust = buildGrammar { + language = "rust"; + version = "0.0.0+rev=2d7bac5"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-rust"; + rev = "2d7bac5164c344c95530c16dd5c8fa1319e34308"; + hash = "sha256-k5/tfG8ONOK8ARgHwpxqB27sJWHioTd5WfCpmMZ1vJY="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust"; + }; + scala = buildGrammar { + language = "scala"; + version = "0.0.0+rev=e02f003"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-scala"; + rev = "e02f003d78dc269fef287b9b7b9963dc1f26bd7e"; + hash = "sha256-LkrZ+y7QSAGe/kkkdUSyFQJFmD/mOI5Ps/wxD3BAkDI="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala"; + }; + scfg = buildGrammar { + language = "scfg"; + version = "0.0.0+rev=6deae0c"; + src = fetchFromSourcehut { + owner = "~rockorager"; + repo = "tree-sitter-scfg"; + rev = "6deae0cbb458c849a4d1e2985093e9c9c32d7fd0"; + hash = "sha256-2ubRvjpvRJEBZXpM7ZIkWAwSZARCzP/klydQ6IVpCSk="; + }; + generate = true; + meta.homepage = "https://git.sr.ht/~rockorager/tree-sitter-scfg"; + }; + scheme = buildGrammar { + language = "scheme"; + version = "0.0.0+rev=85b6188"; + src = fetchFromGitHub { + owner = "6cdh"; + repo = "tree-sitter-scheme"; + rev = "85b6188fb77c03dfb01d13e58e2844450506860c"; + hash = "sha256-v+iQpeAeySKPgMu5IQ8vNnUSc2duX1vYvO3qqK1/Pmc="; + }; + meta.homepage = "https://github.com/6cdh/tree-sitter-scheme"; + }; + scss = buildGrammar { + language = "scss"; + version = "0.0.0+rev=c478c68"; + src = fetchFromGitHub { + owner = "serenadeai"; + repo = "tree-sitter-scss"; + rev = "c478c6868648eff49eb04a4df90d703dc45b312a"; + hash = "sha256-BFtMT6eccBWUyq6b8UXRAbB1R1XD3CrrFf1DM3aUI5c="; + }; + meta.homepage = "https://github.com/serenadeai/tree-sitter-scss"; + }; + slang = buildGrammar { + language = "slang"; + version = "0.0.0+rev=0cdfb17"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-slang"; + rev = "0cdfb1741323f38e9a33798674145c22cfc0092b"; + hash = "sha256-1xSnb3n9u45B2gEBApZpZlb1VvbJOrmgQwrPL2OuGro="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-slang"; + }; + slint = buildGrammar { + language = "slint"; + version = "0.0.0+rev=cdb3078"; + src = fetchFromGitHub { + owner = "slint-ui"; + repo = "tree-sitter-slint"; + rev = "cdb307898345cb0465922be447a063b9c294afca"; + hash = "sha256-dHbOnCiy5dDW8ksqKs2y4553kXgPXtPg0dFzKiqFj2M="; + }; + meta.homepage = "https://github.com/slint-ui/tree-sitter-slint"; + }; + smali = buildGrammar { + language = "smali"; + version = "0.0.0+rev=72e334b"; + src = fetchFromSourcehut { + owner = "~yotam"; + repo = "tree-sitter-smali"; + rev = "72e334b2630f5852825ba5ff9dfd872447175eb5"; + hash = "sha256-vV+4Q2IyWyw/GN8bmgHJmSEHhpjUWHkL2yschPI9fiU="; + }; + meta.homepage = "https://git.sr.ht/~yotam/tree-sitter-smali"; + }; + smithy = buildGrammar { + language = "smithy"; + version = "0.0.0+rev=8327eb8"; + src = fetchFromGitHub { + owner = "indoorvivants"; + repo = "tree-sitter-smithy"; + rev = "8327eb84d55639ffbe08c9dc82da7fff72a1ad07"; + hash = "sha256-6z2Psw+cjC11CXoGOJ/lkBPJXKqECCSrhchOiAPmd14="; + }; + meta.homepage = "https://github.com/indoorvivants/tree-sitter-smithy"; + }; + snakemake = buildGrammar { + language = "snakemake"; + version = "0.0.0+rev=65a6c3b"; + src = fetchFromGitHub { + owner = "osthomas"; + repo = "tree-sitter-snakemake"; + rev = "65a6c3b4671877821082164da0a310851b211953"; + hash = "sha256-NfbRqT3wB6gncrbL/Kx2Qtk7k5lXK2KwdQ4aOV0Acx8="; + }; + meta.homepage = "https://github.com/osthomas/tree-sitter-snakemake"; + }; + solidity = buildGrammar { + language = "solidity"; + version = "0.0.0+rev=5cb506a"; + src = fetchFromGitHub { + owner = "JoranHonig"; + repo = "tree-sitter-solidity"; + rev = "5cb506ae419c4ad620c77210fd47500d3d169dbc"; + hash = "sha256-3BQuEGrmQD9Va7JpTuKJaZ6VaJ//tfPtjoEDRj/utcU="; + }; + meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity"; + }; + soql = buildGrammar { + language = "soql"; + version = "0.0.0+rev=857077f"; + src = fetchFromGitHub { + owner = "aheber"; + repo = "tree-sitter-sfapex"; + rev = "857077f9e6bb04df0f769c18d32bfe036911adc8"; + hash = "sha256-b7rw0AWqqvFisS0qlDppJFxSnjNZaTTeph6gKfQwFNA="; + }; + location = "soql"; + meta.homepage = "https://github.com/aheber/tree-sitter-sfapex"; + }; + sosl = buildGrammar { + language = "sosl"; + version = "0.0.0+rev=857077f"; + src = fetchFromGitHub { + owner = "aheber"; + repo = "tree-sitter-sfapex"; + rev = "857077f9e6bb04df0f769c18d32bfe036911adc8"; + hash = "sha256-b7rw0AWqqvFisS0qlDppJFxSnjNZaTTeph6gKfQwFNA="; + }; + location = "sosl"; + meta.homepage = "https://github.com/aheber/tree-sitter-sfapex"; + }; + sourcepawn = buildGrammar { + language = "sourcepawn"; + version = "0.0.0+rev=3ca89fd"; + src = fetchFromGitHub { + owner = "nilshelmig"; + repo = "tree-sitter-sourcepawn"; + rev = "3ca89fdf998340a7973e276b39516d8902950f86"; + hash = "sha256-AF7PiM0Tt6wqGdNsfMGSkgWXgZRDZGdKc7DQpUHuGUA="; + }; + meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn"; + }; + sparql = buildGrammar { + language = "sparql"; + version = "0.0.0+rev=05f949d"; + src = fetchFromGitHub { + owner = "BonaBeavis"; + repo = "tree-sitter-sparql"; + rev = "05f949d3c1c15e3261473a244d3ce87777374dec"; + hash = "sha256-KBalxmAukeSbjyelEy+ZqMcBlRd0V0/pntCwTeINTAQ="; + }; + meta.homepage = "https://github.com/BonaBeavis/tree-sitter-sparql"; + }; + sql = buildGrammar { + language = "sql"; + version = "0.0.0+rev=da2d1ef"; + src = fetchFromGitHub { + owner = "derekstride"; + repo = "tree-sitter-sql"; + rev = "da2d1eff425b146d3c8cab7be8dfa98b11d896dc"; + hash = "sha256-aNxUvmj4AMO744fsSOsvQcNEtHYuQDephKha/hSphh0="; + }; + meta.homepage = "https://github.com/derekstride/tree-sitter-sql"; + }; + squirrel = buildGrammar { + language = "squirrel"; + version = "0.0.0+rev=e8b5835"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-squirrel"; + rev = "e8b5835296f931bcaa1477d3c5a68a0c5c2ba034"; + hash = "sha256-wKefWCqcQcg7zLT6abaDC9lWoJiJp7EbbsBOWRRsWFQ="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-squirrel"; + }; + ssh_config = buildGrammar { + language = "ssh_config"; + version = "0.0.0+rev=514695d"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-ssh-config"; + rev = "514695df4985f56455b8f139a319453a2325cdcf"; + hash = "sha256-LDqRP8FA5m1tnbGNTxItQlp6B6U+M6gOBlbi4zX0FHI="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-ssh-config"; + }; + starlark = buildGrammar { + language = "starlark"; + version = "0.0.0+rev=b31a616"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-starlark"; + rev = "b31a616aac5d05f927f3f9dd809789db7805b632"; + hash = "sha256-AVQNg7Ck2x1+5asFqJHQ3sdNKJrLVeck9fsgNMBU3x8="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-starlark"; + }; + strace = buildGrammar { + language = "strace"; + version = "0.0.0+rev=d819cdd"; + src = fetchFromGitHub { + owner = "sigmaSd"; + repo = "tree-sitter-strace"; + rev = "d819cdd5dbe455bd3c859193633c8d91c0df7c36"; + hash = "sha256-u2LznohljEq7WEoVbwr1ZyV+qbchDuoktJFCeh4iePg="; + }; + meta.homepage = "https://github.com/sigmaSd/tree-sitter-strace"; + }; + styled = buildGrammar { + language = "styled"; + version = "0.0.0+rev=5e52758"; + src = fetchFromGitHub { + owner = "mskelton"; + repo = "tree-sitter-styled"; + rev = "5e52758b32e02adca16bb93f95b3f9c050c72b56"; + hash = "sha256-3x/ZKVYyWuLGkgdm9HutI16m8xpJKSMOZHY48WqH9b0="; + }; + meta.homepage = "https://github.com/mskelton/tree-sitter-styled"; + }; + supercollider = buildGrammar { + language = "supercollider"; + version = "0.0.0+rev=3b35bd0"; + src = fetchFromGitHub { + owner = "madskjeldgaard"; + repo = "tree-sitter-supercollider"; + rev = "3b35bd0fded4423c8fb30e9585c7bacbcd0e8095"; + hash = "sha256-mWTOZ3u9VGjEhjDeYJGd8aVxjVG9kJgKX/wHMZSsaEU="; + }; + meta.homepage = "https://github.com/madskjeldgaard/tree-sitter-supercollider"; + }; + surface = buildGrammar { + language = "surface"; + version = "0.0.0+rev=f4586b3"; + src = fetchFromGitHub { + owner = "connorlay"; + repo = "tree-sitter-surface"; + rev = "f4586b35ac8548667a9aaa4eae44456c1f43d032"; + hash = "sha256-Fn/pF8yvU+Ll7WmoMHnEcNxb3dsfNhuKhXA1UgXeviA="; + }; + meta.homepage = "https://github.com/connorlay/tree-sitter-surface"; + }; + svelte = buildGrammar { + language = "svelte"; + version = "0.0.0+rev=04a126d"; + src = fetchFromGitHub { + owner = "tree-sitter-grammars"; + repo = "tree-sitter-svelte"; + rev = "04a126d9210def99f06d9ab84a255110b862d47c"; + hash = "sha256-F6AC72IHMKs1jTwshwNkAXFfiBGEbBn7m83xedCoDsA="; + }; + meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-svelte"; + }; + swift = buildGrammar { + language = "swift"; + version = "0.0.0+rev=eebf8bc"; + src = fetchFromGitHub { + owner = "alex-pinkus"; + repo = "tree-sitter-swift"; + rev = "eebf8bc3f8d4204124c59ff48b1a19417bbf99df"; + hash = "sha256-ha/T0xV1mCGOeaeCruIeIgrhd9Wv9no+JdsWQ4PEf2g="; + }; + generate = true; + meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift"; + }; + sxhkdrc = buildGrammar { + language = "sxhkdrc"; + version = "0.0.0+rev=440d5f9"; + src = fetchFromGitHub { + owner = "RaafatTurki"; + repo = "tree-sitter-sxhkdrc"; + rev = "440d5f913d9465c9c776a1bd92334d32febcf065"; + hash = "sha256-AGhGYomrMe6Wj+EHLQT4v0BiU4jxhxXpVQkU2xU/1ZI="; + }; + meta.homepage = "https://github.com/RaafatTurki/tree-sitter-sxhkdrc"; + }; + systemtap = buildGrammar { + language = "systemtap"; + version = "0.0.0+rev=1af543a"; + src = fetchFromGitHub { + owner = "ok-ryoko"; + repo = "tree-sitter-systemtap"; + rev = "1af543a96d060b1f808982037bfc54cc02218edd"; + hash = "sha256-KCsISHv9yglW+63UY/9Dhb0yVz7Ha76EyHo65Si6SpY="; + }; + meta.homepage = "https://github.com/ok-ryoko/tree-sitter-systemtap"; + }; + t32 = buildGrammar { + language = "t32"; + version = "0.0.0+rev=0a457a5"; + src = fetchFromGitLab { + owner = "xasc"; + repo = "tree-sitter-t32"; + rev = "0a457a557be7779336bc8ac2b396e73797bc68f7"; + hash = "sha256-ylMJ177FYVcnfaXbnOieNP1Emq8HpeAgEddt96tBJqE="; + }; + meta.homepage = "https://gitlab.com/xasc/tree-sitter-t32.git"; + }; + tablegen = buildGrammar { + language = "tablegen"; + version = "0.0.0+rev=300f6a4"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-tablegen"; + rev = "300f6a490e71f895e644ed2deec6920860a2e107"; + hash = "sha256-V4fEmiGPBAnZO+NAyA7FdlyjLSA0ByUfrCTbsdDOxc8="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-tablegen"; + }; + tcl = buildGrammar { + language = "tcl"; + version = "0.0.0+rev=56ad1fa"; + src = fetchFromGitHub { + owner = "tree-sitter-grammars"; + repo = "tree-sitter-tcl"; + rev = "56ad1fa6a34ba800e5495d1025a9b0fda338d5b8"; + hash = "sha256-GhK92+nbJ+M5/1ZnPbIJ3EuNub332YK+hyWiwyBqUmk="; + }; + meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-tcl"; + }; + teal = buildGrammar { + language = "teal"; + version = "0.0.0+rev=33482c9"; + src = fetchFromGitHub { + owner = "euclidianAce"; + repo = "tree-sitter-teal"; + rev = "33482c92a0dfa694491d34e167a1d2f52b0dccb1"; + hash = "sha256-6T9hn+Tvz8AYMsAu2J8vt6WkRQRrdGwGJcw3c85W14I="; + }; + generate = true; + meta.homepage = "https://github.com/euclidianAce/tree-sitter-teal"; + }; + templ = buildGrammar { + language = "templ"; + version = "0.0.0+rev=592faa3"; + src = fetchFromGitHub { + owner = "vrischmann"; + repo = "tree-sitter-templ"; + rev = "592faa3186ef857c92e4bd1c31d73c07a4a334db"; + hash = "sha256-XX1+P8ibo8REYYZQaC47lneg/roralo+YiRwFNnARsQ="; + }; + meta.homepage = "https://github.com/vrischmann/tree-sitter-templ"; + }; + terraform = buildGrammar { + language = "terraform"; + version = "0.0.0+rev=e936d3f"; + src = fetchFromGitHub { + owner = "MichaHoffmann"; + repo = "tree-sitter-hcl"; + rev = "e936d3fef8bac884661472dce71ad82284761eb1"; + hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo="; + }; + location = "dialects/terraform"; + meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl"; + }; + textproto = buildGrammar { + language = "textproto"; + version = "0.0.0+rev=8dacf02"; + src = fetchFromGitHub { + owner = "PorterAtGoogle"; + repo = "tree-sitter-textproto"; + rev = "8dacf02aa402892c91079f8577998ed5148c0496"; + hash = "sha256-MpQTrNjjNO2Bj5qR6ESwI9SZtJPmcS6ckqjAR0qaLx8="; + }; + meta.homepage = "https://github.com/PorterAtGoogle/tree-sitter-textproto"; + }; + thrift = buildGrammar { + language = "thrift"; + version = "0.0.0+rev=d4deb1b"; + src = fetchFromGitHub { + owner = "duskmoon314"; + repo = "tree-sitter-thrift"; + rev = "d4deb1bd9e848f2dbe81103a151d99e8546de480"; + hash = "sha256-MCa7319E8bo3r2kDClBmjOvvs+yZDlE1E+52WqJqvMI="; + }; + meta.homepage = "https://github.com/duskmoon314/tree-sitter-thrift"; + }; + tiger = buildGrammar { + language = "tiger"; + version = "0.0.0+rev=a7f11d9"; + src = fetchFromGitHub { + owner = "ambroisie"; + repo = "tree-sitter-tiger"; + rev = "a7f11d946b44244f71df41d2a78af0665d618dae"; + hash = "sha256-zGrbf5cCkgKGw+dQiEqUyHqj8Fu42MfAhEEADoC8DIA="; + }; + meta.homepage = "https://github.com/ambroisie/tree-sitter-tiger"; + }; + tlaplus = buildGrammar { + language = "tlaplus"; + version = "0.0.0+rev=aaf5bb5"; + src = fetchFromGitHub { + owner = "tlaplus-community"; + repo = "tree-sitter-tlaplus"; + rev = "aaf5bb5c1df0a6e583bb51efa519a9ac788b2ad8"; + hash = "sha256-p/khQ31bReopPyZ1TvUKI6bnFipWiGrxKO7cAYzeku4="; + }; + meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus"; + }; + tmux = buildGrammar { + language = "tmux"; + version = "0.0.0+rev=10737f5"; + src = fetchFromGitHub { + owner = "Freed-Wu"; + repo = "tree-sitter-tmux"; + rev = "10737f5dc4d8e68c9667f11a6996688a1185755f"; + hash = "sha256-7MQYyWu1Rw3Vwmp3nbuorn9rD0xcEU5nRXPuTVpOqkM="; + }; + meta.homepage = "https://github.com/Freed-Wu/tree-sitter-tmux"; + }; + todotxt = buildGrammar { + language = "todotxt"; + version = "0.0.0+rev=3937c5c"; + src = fetchFromGitHub { + owner = "arnarg"; + repo = "tree-sitter-todotxt"; + rev = "3937c5cd105ec4127448651a21aef45f52d19609"; + hash = "sha256-OeAh51rcFTiexAraRzIZUR/A8h9RPwKY7rmtc3ZzoRQ="; + }; + meta.homepage = "https://github.com/arnarg/tree-sitter-todotxt.git"; + }; + toml = buildGrammar { + language = "toml"; + version = "0.0.0+rev=8bd2056"; + src = fetchFromGitHub { + owner = "ikatyang"; + repo = "tree-sitter-toml"; + rev = "8bd2056818b21860e3d756b5a58c4f6e05fb744e"; + hash = "sha256-z9MWNOBxLHBd/pVs5/QiSSGtaW+DUd7y3wZXcl3hWnk="; + }; + meta.homepage = "https://github.com/ikatyang/tree-sitter-toml"; + }; + tsv = buildGrammar { + language = "tsv"; + version = "0.0.0+rev=cda48a5"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-csv"; + rev = "cda48a5e890b30619da5bc3ff55be1b1d3d08c8d"; + hash = "sha256-K4tOYdI68fXnWbvSat50FL/jDSb8f6gtZOhE6qKPLyg="; + }; + location = "tsv"; + meta.homepage = "https://github.com/amaanq/tree-sitter-csv"; + }; + tsx = buildGrammar { + language = "tsx"; + version = "0.0.0+rev=198e2ea"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-typescript"; + rev = "198e2ea43d1c4ddd76ee883f4eae15f4201cd241"; + hash = "sha256-WnVqoshymxZgGC/p5nFX08ypB1VDLIAMjjWN5YC4UT8="; + }; + location = "tsx"; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript"; + }; + turtle = buildGrammar { + language = "turtle"; + version = "0.0.0+rev=085437f"; + src = fetchFromGitHub { + owner = "BonaBeavis"; + repo = "tree-sitter-turtle"; + rev = "085437f5cb117703b7f520dd92161140a684f092"; + hash = "sha256-ub777Pjody2SvP2EjW7IwWj8YnMuMzdJ4AlrkP6WrdA="; + }; + meta.homepage = "https://github.com/BonaBeavis/tree-sitter-turtle"; + }; + twig = buildGrammar { + language = "twig"; + version = "0.0.0+rev=eaf80e6"; + src = fetchFromGitHub { + owner = "gbprod"; + repo = "tree-sitter-twig"; + rev = "eaf80e6af969e25993576477a9dbdba3e48c1305"; + hash = "sha256-fp7HcdJEFxi/zBFSrM86THwBMpqFwAGugcTVbPk3bd4="; + }; + meta.homepage = "https://github.com/gbprod/tree-sitter-twig"; + }; + typescript = buildGrammar { + language = "typescript"; + version = "0.0.0+rev=198e2ea"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-typescript"; + rev = "198e2ea43d1c4ddd76ee883f4eae15f4201cd241"; + hash = "sha256-WnVqoshymxZgGC/p5nFX08ypB1VDLIAMjjWN5YC4UT8="; + }; + location = "typescript"; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript"; + }; + typoscript = buildGrammar { + language = "typoscript"; + version = "0.0.0+rev=43b221c"; + src = fetchFromGitHub { + owner = "Teddytrombone"; + repo = "tree-sitter-typoscript"; + rev = "43b221c0b76e77244efdaa9963e402a17c930fbc"; + hash = "sha256-7ottrupSWC83rDP59yceDG/TuikNHoyCBnAlns/x6Tc="; + }; + meta.homepage = "https://github.com/Teddytrombone/tree-sitter-typoscript"; + }; + typst = buildGrammar { + language = "typst"; + version = "0.0.0+rev=3c3e5f8"; + src = fetchFromGitHub { + owner = "uben0"; + repo = "tree-sitter-typst"; + rev = "3c3e5f8e0caeba6157e26a1bedf8321e1da62799"; + hash = "sha256-9XbFIvZvmeeR38Kejt8Yyxidy/XiAtZ5aQMt/rfg4JE="; + }; + meta.homepage = "https://github.com/uben0/tree-sitter-typst"; + }; + udev = buildGrammar { + language = "udev"; + version = "0.0.0+rev=8f58696"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-udev"; + rev = "8f58696e79092b4ad6bf197415bbd0970acf15cd"; + hash = "sha256-4vkEHlK8r69cvSu7CAXOmyiSSuIRlZcnQAGHtWqx41w="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-udev"; + }; + ungrammar = buildGrammar { + language = "ungrammar"; + version = "0.0.0+rev=debd26f"; + src = fetchFromGitHub { + owner = "Philipp-M"; + repo = "tree-sitter-ungrammar"; + rev = "debd26fed283d80456ebafa33a06957b0c52e451"; + hash = "sha256-ftvcD8I+hYqH3EGxaRZ0w8FHjBA34OSTTsrUsAOtayU="; + }; + meta.homepage = "https://github.com/Philipp-M/tree-sitter-ungrammar"; + }; + unison = buildGrammar { + language = "unison"; + version = "0.0.0+rev=fb49b81"; + src = fetchFromGitHub { + owner = "kylegoetz"; + repo = "tree-sitter-unison"; + rev = "fb49b8125509c079e08f345758c03a427129010e"; + hash = "sha256-Y4Pnte9ZxXq7tzjc+cliXO8U57cnHlQxOMuX8u39ptE="; + }; + generate = true; + meta.homepage = "https://github.com/kylegoetz/tree-sitter-unison"; + }; + usd = buildGrammar { + language = "usd"; + version = "0.0.0+rev=ab8c30b"; + src = fetchFromGitHub { + owner = "ColinKennedy"; + repo = "tree-sitter-usd"; + rev = "ab8c30bde2df0e58c4b3f01f220fb0125ecb57a7"; + hash = "sha256-Y7AYRpiblBd8xun73UohIf8FFkbNIqSXv44bM3L5uDc="; + }; + meta.homepage = "https://github.com/ColinKennedy/tree-sitter-usd"; + }; + uxntal = buildGrammar { + language = "uxntal"; + version = "0.0.0+rev=4c5ecd6"; + src = fetchFromGitHub { + owner = "amaanq"; + repo = "tree-sitter-uxntal"; + rev = "4c5ecd6326ebd61f6f9a22a370cbd100e0d601da"; + hash = "sha256-vgeTsRJ3mlR02jXuucmXpszVOmusZwuV0xj/7sSs+WQ="; + }; + meta.homepage = "https://github.com/amaanq/tree-sitter-uxntal"; + }; + v = buildGrammar { + language = "v"; + version = "0.0.0+rev=be121f7"; + src = fetchFromGitHub { + owner = "vlang"; + repo = "v-analyzer"; + rev = "be121f724e4f3e2159dfa193c876be605c1de7fa"; + hash = "sha256-nOWhtoPoVjfPitOMxTiU8Y3dBKT3GwGswRFmVYkcZ2E="; + }; + location = "tree_sitter_v"; + meta.homepage = "https://github.com/vlang/v-analyzer"; + }; + vala = buildGrammar { + language = "vala"; + version = "0.0.0+rev=8f690bf"; + src = fetchFromGitHub { + owner = "vala-lang"; + repo = "tree-sitter-vala"; + rev = "8f690bfa639f2b83d1fb938ed3dd98a7ba453e8b"; + hash = "sha256-YZTE3PkBPCEkMXnLC0HSQ86v5+3/J7/ETDQp8eguFW8="; + }; + meta.homepage = "https://github.com/vala-lang/tree-sitter-vala"; + }; + verilog = buildGrammar { + language = "verilog"; + version = "0.0.0+rev=2dfddfc"; + src = fetchFromGitHub { + owner = "tree-sitter"; + repo = "tree-sitter-verilog"; + rev = "2dfddfcb891f74a1cdb9d8ce480a997d11846e17"; + hash = "sha256-ekR9rDaGbDmtzZr0zXubq0brZI4hDsJUzZJTbgxIE2M="; + }; + meta.homepage = "https://github.com/tree-sitter/tree-sitter-verilog"; + }; + vhs = buildGrammar { + language = "vhs"; + version = "0.0.0+rev=9534865"; + src = fetchFromGitHub { + owner = "charmbracelet"; + repo = "tree-sitter-vhs"; + rev = "9534865e614c95eb9418e5e73f061c32fa4d9540"; + hash = "sha256-Qf4Y1I/X5xGVZ4u2ud+XdC2dL+0sjR+0pJRJ8SUraiQ="; + }; + meta.homepage = "https://github.com/charmbracelet/tree-sitter-vhs"; + }; + vim = buildGrammar { + language = "vim"; + version = "0.0.0+rev=bc1364d"; + src = fetchFromGitHub { + owner = "neovim"; + repo = "tree-sitter-vim"; + rev = "bc1364d922952138957a62105171ed68e73fbb6c"; + hash = "sha256-5h1GYjyYMJd5GS0zXh0LP1wBs60fYohpFv89gcdZ4vU="; + }; + meta.homepage = "https://github.com/neovim/tree-sitter-vim"; + }; + vimdoc = buildGrammar { + language = "vimdoc"; + version = "0.0.0+rev=016ad75"; + src = fetchFromGitHub { + owner = "neovim"; + repo = "tree-sitter-vimdoc"; + rev = "016ad75faa854e4e13bc40c517015183b795eed9"; + hash = "sha256-v+hSI/6ocC2KxH8ogCexNcxxhcZsl7OvV9197zBCKr4="; + }; + meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc"; + }; + vue = buildGrammar { + language = "vue"; + version = "0.0.0+rev=3b9d520"; + src = fetchFromGitHub { + owner = "tree-sitter-grammars"; + repo = "tree-sitter-vue"; + rev = "3b9d52087100bdfce43dad2ca46d75b0e21613f6"; + hash = "sha256-36MnM1X8uhqCb44oHY0kEKDLpYmU1QL2JfGpdIbb3pc="; + }; + meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-vue"; + }; + wgsl = buildGrammar { + language = "wgsl"; + version = "0.0.0+rev=40259f3"; + src = fetchFromGitHub { + owner = "szebniok"; + repo = "tree-sitter-wgsl"; + rev = "40259f3c77ea856841a4e0c4c807705f3e4a2b65"; + hash = "sha256-voLkcJ/062hzipb3Ak/mgQvFbrLUJdnXq1IupzjMJXA="; + }; + meta.homepage = "https://github.com/szebniok/tree-sitter-wgsl"; + }; + wgsl_bevy = buildGrammar { + language = "wgsl_bevy"; + version = "0.0.0+rev=cbd58ee"; + src = fetchFromGitHub { + owner = "theHamsta"; + repo = "tree-sitter-wgsl-bevy"; + rev = "cbd58ee33e24f46d16b9882b001eefb25a958ee2"; + hash = "sha256-EPpI4UJ/5GB2iDQGoSziUOcP1TVf7VU4FMTKvrujcAY="; + }; + meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy"; + }; + wing = buildGrammar { + language = "wing"; + version = "0.0.0+rev=4a9f821"; + src = fetchFromGitHub { + owner = "winglang"; + repo = "wing"; + rev = "4a9f8210586aa2903dd839538cf5dccc614e6f94"; + hash = "sha256-A8V7HAQvOfigWpI36Av/+eAwis/DZ4jKBe2rPS+K5AY="; + }; + location = "libs/tree-sitter-wing"; + generate = true; + meta.homepage = "https://github.com/winglang/wing"; + }; + xcompose = buildGrammar { + language = "xcompose"; + version = "0.0.0+rev=2383cc6"; + src = fetchFromGitHub { + owner = "ObserverOfTime"; + repo = "tree-sitter-xcompose"; + rev = "2383cc69a2c42cfade41c7cb971fb3862bec6df1"; + hash = "sha256-N8pJhB35IApb41TKn6NuVMEgmQGC+1Nyu5eQck1K5g8="; + }; + meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xcompose"; + }; + xml = buildGrammar { + language = "xml"; + version = "0.0.0+rev=c23bd31"; + src = fetchFromGitHub { + owner = "tree-sitter-grammars"; + repo = "tree-sitter-xml"; + rev = "c23bd31d0aa72bfc01238b2546d5e823d8006709"; + hash = "sha256-oPjO7y2xSVxvP0bpCFo/oGP4hPs3kWJ728d/R5PUdK4="; + }; + location = "xml"; + meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml"; + }; + yaml = buildGrammar { + language = "yaml"; + version = "0.0.0+rev=0e36bed"; + src = fetchFromGitHub { + owner = "ikatyang"; + repo = "tree-sitter-yaml"; + rev = "0e36bed171768908f331ff7dff9d956bae016efb"; + hash = "sha256-bpiT3FraOZhJaoiFWAoVJX1O+plnIi8aXOW2LwyU23M="; + }; + meta.homepage = "https://github.com/ikatyang/tree-sitter-yaml"; + }; + yang = buildGrammar { + language = "yang"; + version = "0.0.0+rev=2c0e6be"; + src = fetchFromGitHub { + owner = "Hubro"; + repo = "tree-sitter-yang"; + rev = "2c0e6be8dd4dcb961c345fa35c309ad4f5bd3502"; + hash = "sha256-6EIK1EStHrUHBLZBsZqd1LL05ZAJ6PKUyIzBBsTVjO8="; + }; + meta.homepage = "https://github.com/Hubro/tree-sitter-yang"; + }; + yuck = buildGrammar { + language = "yuck"; + version = "0.0.0+rev=c348825"; + src = fetchFromGitHub { + owner = "Philipp-M"; + repo = "tree-sitter-yuck"; + rev = "c348825d3f86dec71dee0e1223c6bd73114e3579"; + hash = "sha256-H4tsLDo9Egp1mpZGcA5Z9C9wPFNxPEBDTugUYKeYW9I="; + }; + meta.homepage = "https://github.com/Philipp-M/tree-sitter-yuck"; + }; + zathurarc = buildGrammar { + language = "zathurarc"; + version = "0.0.0+rev=353bdf2"; + src = fetchFromGitHub { + owner = "Freed-Wu"; + repo = "tree-sitter-zathurarc"; + rev = "353bdf25e7af9c2830e254977fd3fb57ccaa8203"; + hash = "sha256-vFDz4X0ujqM9GbrpGt3dRjvo0SR07E2qXrT/ppTegBQ="; + }; + meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc"; + }; + zig = buildGrammar { + language = "zig"; + version = "0.0.0+rev=0d08703"; + src = fetchFromGitHub { + owner = "maxxnino"; + repo = "tree-sitter-zig"; + rev = "0d08703e4c3f426ec61695d7617415fff97029bd"; + hash = "sha256-a3W7eBUN4V3HD3YPr1+3tpuWQfIQy1Wu8qxCQx0hEnI="; + }; + meta.homepage = "https://github.com/maxxnino/tree-sitter-zig"; + }; +} diff --git a/neovim/nvim-treesitter/override.nix b/neovim/nvim-treesitter/override.nix new file mode 100644 index 0000000..26f7a58 --- /dev/null +++ b/neovim/nvim-treesitter/override.nix @@ -0,0 +1,90 @@ +{ + lib, + callPackage, + tree-sitter, + neovim, + neovimUtils, + runCommand, +}: self: super: let + inherit (neovimUtils) grammarToPlugin; + generatedGrammars = callPackage ./generated.nix { + inherit (tree-sitter) buildGrammar; + }; + + generatedDerivations = lib.filterAttrs (_: lib.isDerivation) generatedGrammars; + + # add aliases so grammars from `tree-sitter` are overwritten in `withPlugins` + # for example, for ocaml_interface, the following aliases will be added + # ocaml-interface + # tree-sitter-ocaml-interface + # tree-sitter-ocaml_interface + builtGrammars = + generatedGrammars + // lib.concatMapAttrs + (k: v: let + replaced = lib.replaceStrings ["_"] ["-"] k; + in + { + "tree-sitter-${k}" = v; + } + // lib.optionalAttrs (k != replaced) { + ${replaced} = v; + "tree-sitter-${replaced}" = v; + }) + generatedDerivations; + + allGrammars = lib.attrValues generatedDerivations; + + # Usage: + # pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.c p.java ... ]) + # or for all grammars: + # pkgs.vimPlugins.nvim-treesitter.withAllGrammars + withPlugins = f: + self.nvim-treesitter.overrideAttrs { + passthru.dependencies = + map grammarToPlugin + (f (tree-sitter.builtGrammars // builtGrammars)); + }; + + withAllGrammars = withPlugins (_: allGrammars); +in { + postPatch = '' + rm -r parser + ''; + + passthru = { + inherit builtGrammars allGrammars grammarToPlugin withPlugins withAllGrammars; + + grammarPlugins = lib.mapAttrs (_: grammarToPlugin) generatedDerivations; + + tests.check-queries = let + nvimWithAllGrammars = neovim.override { + configure.packages.all.start = [withAllGrammars]; + }; + in + runCommand "nvim-treesitter-check-queries" + { + nativeBuildInputs = [nvimWithAllGrammars]; + CI = true; + } + '' + touch $out + export HOME=$(mktemp -d) + ln -s ${withAllGrammars}/CONTRIBUTING.md . + + nvim --headless "+luafile ${withAllGrammars}/scripts/check-queries.lua" | tee log + + if grep -q Warning log; then + echo "Error: warnings were emitted by the check" + exit 1 + fi + ''; + }; + + meta = with lib; + (super.nvim-treesitter.meta or {}) + // { + license = licenses.asl20; + maintainers = with maintainers; [figsoda]; + }; +} diff --git a/neovim/nvim-treesitter/update.py b/neovim/nvim-treesitter/update.py new file mode 100755 index 0000000..a56a3e4 --- /dev/null +++ b/neovim/nvim-treesitter/update.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 + +import json +import subprocess +from concurrent.futures import ThreadPoolExecutor +from os import environ +from os.path import dirname, join +import sys + +lockfile = json.load(open(join(environ["NVIM_TREESITTER"], "lockfile.json"))) + +configs = json.loads( + subprocess.check_output( + [ + "nvim", + "--headless", + "-u", + "NONE", + "+lua io.write(vim.json.encode(require('nvim-treesitter.parsers').get_parser_configs()))", + "+quit!", + ] + ) +) + + +def generate_grammar(item): + lang, lock = item + cfg = configs.get(lang) + if not cfg: + return "" + + info = cfg["install_info"] + url = info["url"] + rev = lock["revision"] + + generated = f""" {lang} = buildGrammar {{ + language = "{lang}"; + version = "0.0.0+rev={rev[:7]}"; + src = """ + + generated += subprocess.check_output(["nurl", url, rev, "--indent=4"], text=True) + generated += ";" + + location = info.get("location") + if location: + generated += f""" + location = "{location}";""" + + if info.get("requires_generate_from_grammar"): + generated += """ + generate = true;""" + + generated += f""" + meta.homepage = "{url}"; + }}; +""" + + return generated + + +generated_file = """# generated by nix run .\#update-nvim-treesitter -- nvim-treesitter + +{ buildGrammar, """ + +generated_file += subprocess.check_output(["nurl", "-Ls", ", "], text=True) + +generated_file += """ }: + +{ +""" + +for generated in ThreadPoolExecutor().map(generate_grammar, lockfile.items()): + generated_file += generated + +generated_file += "}\n" + +open(join(sys.argv[1], "generated.nix"), "w").write(generated_file) diff --git a/neovim/plugins/firenvim.nix b/neovim/plugins/firenvim.nix new file mode 100644 index 0000000..d77627a --- /dev/null +++ b/neovim/plugins/firenvim.nix @@ -0,0 +1,186 @@ +{ + pkgs, + config, + lib, + ... +}: +with lib; +with builtins; { + options.plugins.firenvim = { + enable = mkEnableOption "Enable firenvim support"; + global = let + mkKey = mkOption { + type = types.enum ["default" "noop"]; + default = "default"; + description = '' + When it is possible to do so, if you press this keyboard shortcut while not in a Firenvim + frame, Firenvim will attempt to emulate the expected behavior of the shortcut + ''; + }; + + nvimModes = [ + "all" + "normal" + "visual" + "insert" + "replace" + "cmdline_normal" + "cmdline_insert" + "cmdline_replace" + "operator" + "visual_select" + "cmdline_hover" + "statusline_hover" + "statusline_drag" + "vsep_hover" + "vsep_drag" + "more" + "more_lastline" + "showmatch" + ]; + + modeOptions = listToAttrs (map (mode: { + name = mode; + value = mkOption { + type = types.listOf types.str; + default = []; + description = "Keys to ignore in ${mode} mode"; + }; + }) + nvimModes); + in { + alt = mkOption { + type = types.enum ["all" "alphanum"]; + # TODO: set to 'alphanum' by default on macOS + default = "all"; + description = '' + Change the handling of alt with dead keys. See + https://github.com/glacambre/firenvim#special-characters-on-macos for more information. + ''; + }; + "" = mkKey; + "" = mkKey; + "" = mkKey; + "" = mkKey; + "" = mkKey; + "" = mkKey; + ignoreKeys = mkOption { + type = types.submodule {options = modeOptions;}; + default = {}; + description = '' + You can make Firenvim ignore key presses (thus letting the browser handle them) by + specifying them in this module + ''; + }; + cmdlineTimeout = mkOption { + type = types.int; + default = 3000; + description = '' + Due to space constraints, the external command line covers part of the buffer. + This can be a problem as sometimes neovim will send a message that tells Firenvim to draw + the command line, and then never send the message to tell Firenvim to stop displaying it. + + In order to work around this problem, a "cmdlineTimeout" configuration option has been + implemented, which makes Firenvim hide the external command line after the cursor has + moved and some amount of milliseconds have passed: + ''; + }; + }; + + local = mkOption { + type = types.attrsOf (types.submodule { + options = { + cmdline = mkOption { + type = types.nullOr (types.enum ["neovim" "firenvim" "none"]); + default = null; + description = '' + You can chose between neovim's built-in command line, firenvim's command line and no + command line at all + + Choosing none does not make sense unless you have alternative way to display the + command line such as noice.nvim. + ''; + }; + content = mkOption { + type = types.nullOr (types.enum ["html" "text"]); + default = null; + description = '' + This option controls how Firenvim should read the content of an element. + Setting it to 'html' will make Firenvim fetch the content of elements as HTML, + 'text' will make it use plaintext. + ''; + }; + priority = mkOption { + type = types.int; + default = 0; + description = "Higher priority options overwrite lower priority ones"; + }; + renderer = mkOption { + type = types.nullOr (types.enum ["html" "canvas"]); + default = null; + }; + selector = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + This options is a CSS selector that allows to choose which elements firenvim + will link to + ''; + }; + takeover = mkOption { + type = types.nullOr (types.enum ["always" "once" "empty" "nonempty" "never"]); + default = null; + description = '' + When set to 'always', Firenvim will always take over elements for you. When set to + 'empty', Firenvim will only take over empty elements. When set to 'never', Firenvim + will never automatically appear, thus forcing you to use a keyboard shortcut in order + to make the Firenvim frame appear. When set to 'nonempty', Firenvim will only take + over elements that aren't empty. When set to 'once', Firenvim will take over elements + the first time you select them, which means that after :q'ing Firenvim, you'll have + to use the keyboard shortcut to make it appear again. + ''; + }; + filename = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + This setting is a format string where each element in curly braces will be replaced + with a value and where the maximum length can be specified with a percentage. Possible + format elements are 'hostname' (= the domain name of the website), 'pathname' + (= the path of the page), 'selector' (= the CSS selector of the text area), + 'timestamp' (= the current date) and 'extension' (the language extension when using + Firenvim on a code editor or txt otherwise). + ''; + }; + }; + }); + default = { + ".*" = { + cmdline = "firenvim"; + content = "text"; + priority = 0; + renderer = "canvas"; + selector = ''textarea:not([readonly]), div[role="textbox"]''; + takeover = "always"; + filename = "{hostname%32}_{pathname%32}_{selector%32}_{timestamp%32}.{extension}"; + }; + }; + description = '' + Configure firenvim for different urls. The keys are regex to match URL, and if multiple + regex match the URL then the value with the highest priority is choosen + ''; + }; + }; + + config = let + cfg = config.plugins.firenvim; + in + mkIf cfg.enable { + extraPlugins = with pkgs.vimPlugins; [firenvim]; + + globals.firenvim_config = { + globalSettings = cfg.global; + localSettings = cfg.local; + }; + }; +} diff --git a/neovim/plugins/headerguard.nix b/neovim/plugins/headerguard.nix new file mode 100644 index 0000000..6549566 --- /dev/null +++ b/neovim/plugins/headerguard.nix @@ -0,0 +1,22 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; { + options.plugins.headerguard = { + enable = mkEnableOption "Enable headerguard"; + + useCppComment = mkEnableOption "Use c++-style comments instead of c-style"; + }; + + config = let + cfg = config.plugins.headerguard; + in + mkIf cfg.enable { + extraPlugins = with pkgs.vimPlugins; [vim-headerguard]; + + globals.headerguard_use_cpp_comments = cfg.useCppComment; + }; +} diff --git a/neovim/plugins/lsp-signature.nix b/neovim/plugins/lsp-signature.nix new file mode 100644 index 0000000..c93c442 --- /dev/null +++ b/neovim/plugins/lsp-signature.nix @@ -0,0 +1,189 @@ +{ + config, + lib, + pkgs, + helpers, + ... +}: +with lib; { + options.plugins.lsp_signature = { + enable = mkEnableOption "lsp_signature, a plugin to show function signatures"; + + package = mkOption { + type = types.package; + default = pkgs.vimPlugins.lsp_signature-nvim; + description = "Package to use for lsp_signature"; + }; + + debug = { + enable = helpers.defaultNullOpts.mkBool false "set to true to enable debug logging"; + logPath = + helpers.defaultNullOpts.mkNullable types.str + ''vim.fn.stdpath("cache") .. "/lsp_signature.log"'' "log dir when debug is on"; + verbose = helpers.defaultNullOpts.mkBool false "show debug line number"; + }; + + bind = helpers.defaultNullOpts.mkBool true '' + This is mandatory, otherwise border config won't get registered. + If you want to hook lspsaga or other signature handler, pls set to false + ''; + + docLines = helpers.defaultNullOpts.mkInt 10 '' + will show two lines of comment/doc(if there are more than two lines in doc, will be truncated); + set to 0 if you DO NOT want any API comments be shown + This setting only take effect in insert mode, it does not affect signature help in normal + mode. + ''; + + maxHeight = helpers.defaultNullOpts.mkInt 12 "max height of signature floating_window"; + maxWidth = helpers.defaultNullOpts.mkInt 82 "max_width of signature floating_window"; + noice = helpers.defaultNullOpts.mkBool false "set to true if you using noice to render markdown"; + wrap = helpers.defaultNullOpts.mkBool true '' + allow doc/signature text wrap inside floating_window, useful if your lsp return doc/sig is too + long + ''; + + floatingWindow = { + enable = helpers.defaultNullOpts.mkBool true '' + show hint in a floating window, set to false for virtual text only mode + ''; + + aboveCurLine = helpers.defaultNullOpts.mkBool true '' + try to place the floating above the current line when possible + Note: + will set to true when fully tested, set to false will use whichever side has more space + this setting will be helpful if you do not want the PUM and floating win overlap + ''; + + # NOTE: this could be functions, if need be we can adjust the types + offX = helpers.defaultNullOpts.mkInt 1 "adjust float windows x position"; + offY = helpers.defaultNullOpts.mkInt 0 '' + adjust float windows y position. e.g -2 move window up 2 lines; 2 move down 2 lines + ''; + }; + + closeTimeout = helpers.defaultNullOpts.mkInt 4000 '' + close floating window after ms when laster parameter is entered + ''; + + fixPos = helpers.defaultNullOpts.mkBool false '' + set to true, the floating window will not auto-close until finish all parameters + ''; + + hint = { + enable = helpers.defaultNullOpts.mkBool true "virtual hint enable"; + prefix = helpers.defaultNullOpts.mkStr "🐼 " '' + Panda for parameter, NOTE: for the terminal not support emoji, might crash + ''; + scheme = helpers.defaultNullOpts.mkStr "String" ""; + }; + + hiParameter = + helpers.defaultNullOpts.mkStr "LspSignatureActiveParameter" + "how your parameter will be highlight"; + + handlerOpts = { + border = let + bordersTy = + types.enum ["double" "rounded" "single" "shadow" "none"]; + in + helpers.defaultNullOpts.mkNullable (types.either bordersTy (types.listOf bordersTy)) + ''"rounded"'' ""; + }; + + alwaysTrigger = helpers.defaultNullOpts.mkBool false '' + sometime show signature on new line or in middle of parameter can be confusing, set it to + false for #58 + ''; + + autoCloseAfter = helpers.defaultNullOpts.mkNullable types.int "null" '' + autoclose signature float win after x sec, disabled if nil. + ''; + extraTriggerChars = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" '' + Array of extra characters that will trigger signature completion, e.g., ["(" ","] + ''; + zindex = helpers.defaultNullOpts.mkInt 200 '' + by default it will be on top of all floating windows, set to <= 50 send it to bottom + ''; + + padding = helpers.defaultNullOpts.mkStr "" '' + character to pad on left and right of signature can be " ", or "|" etc + ''; + + transparency = helpers.defaultNullOpts.mkNullable types.int "null" '' + disabled by default, allow floating win transparent value 1~100 + ''; + shadowBlend = helpers.defaultNullOpts.mkInt 36 '' + if you using shadow as border use this set the opacity + ''; + shadowGuibg = helpers.defaultNullOpts.mkStr "Black" '' + if you using shadow as border use this set the color e.g. "Green" or "#121315" + ''; + timerInterval = helpers.defaultNullOpts.mkInt 200 '' + default timer check interval set to lower value if you want to reduce latency + ''; + toggleKey = helpers.defaultNullOpts.mkNullable types.str "null" '' + toggle signature on and off in insert mode, e.g. "" + ''; + + selectSignatureKey = helpers.defaultNullOpts.mkNullable types.str "null" '' + cycle to next signature, e.g. "" function overloading + ''; + + moveCursorKey = helpers.defaultNullOpts.mkNullable types.str "null" '' + imap, use nvim_set_current_win to move cursor between current win and floating + ''; + }; + + config = let + cfg = config.plugins.lsp_signature; + setupOptions = { + debug = cfg.debug.enable; + log_path = cfg.debug.logPath; + verbose = cfg.debug.verbose; + + bind = cfg.bind; + doc_lines = cfg.docLines; + max_height = cfg.maxHeight; + noice = cfg.noice; + + floating_window = cfg.floatingWindow.enable; + floating_window_above_cur_line = cfg.floatingWindow.aboveCurLine; + floating_window_off_x = cfg.floatingWindow.offX; + floating_window_off_y = cfg.floatingWindow.offY; + + close_timeout = cfg.closeTimeout; + fix_pos = cfg.fixPos; + + hint_enable = cfg.hint.enable; + hint_prefix = cfg.hint.prefix; + hint_scheme = cfg.hint.scheme; + + hi_parameter = cfg.hiParameter; + handle_opts = {border = cfg.handlerOpts.border;}; + + always_trigger = cfg.alwaysTrigger; + auto_close_after = cfg.autoCloseAfter; + extra_trigger_chars = cfg.extraTriggerChars; + zindex = cfg.zindex; + + padding = cfg.padding; + + transparency = cfg.transparency; + shadow_blend = cfg.shadowBlend; + shadow_guibg = cfg.shadowGuibg; + timer_interval = cfg.timerInterval; + toggle_key = cfg.toggleKey; + + select_signature_key = cfg.selectSignatureKey; + move_cursor_key = cfg.moveCursorKey; + }; + in + mkIf cfg.enable { + extraPlugins = [cfg.package]; + + extraConfigLua = '' + require("lsp_signature").setup(${helpers.toLuaObject setupOptions}) + ''; + }; +}