{ pkgs, lib, ... }: let kts-src = pkgs.unstable.kak-tree-sitter-unwrapped.src; in with pkgs.tree-sitter-grammars; { xdg.configFile."kak-tree-sitter/config.toml".text = lib.foldlAttrs ( acc: name: vals: acc + '' [language.${name}.grammar.source.local] path = "${vals.parser}" [language.${name}.queries.source.local] path = "${vals.queries}" [language.${name}.queries] path = "${vals.queries}" '' ) "" { nix = { parser = tree-sitter-nix + "/parser"; queries = tree-sitter-nix + "/queries"; }; scss = { parser = tree-sitter-scss + "/parser"; queries = tree-sitter-scss + "/queries"; }; css = { parser = tree-sitter-css + "/parser"; queries = tree-sitter-css + "/queries"; }; javascript = { parser = tree-sitter-javascript + "/parser"; queries = tree-sitter-javascript + "/queries"; }; typescript = { parser = tree-sitter-typescript + "/parser"; queries = kts-src + "/runtime/queries/typescript"; }; }; }