| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | -- TODO: refacor this whole file and treesitter in general-- if not package.loaded['nvim-treesitter'] then return end---- Custom parsers-- local parser_config = require("nvim-treesitter.parsers").get_parser_configs()-- parser_config.make = {--     install_info = {--         url = "https://github.com/alemuller/tree-sitter-make", -- local path or git repo--         files = {"src/parser.c"},--         requires_generate_from_grammar = true--     }-- }-- parser_config.just = {--     install_info = {--         url = "~/dev/tree-sitter-just", -- local path or git repo--         files = {"src/parser.c"}--     }--     -- filetype = "just", -- if filetype does not agrees with parser name--     -- used_by = {"bar", "baz"} -- additional filetypes that use this parser-- }-- Custom text objects-- local textobj_prefixes = O.treesitter.textobj_prefixes-- local textobj_suffixes = O.treesitter.textobj_suffixes-- local textobj_sel_keymaps = {}-- local textobj_swap_keymaps = {}-- local textobj_move_keymaps = {--   enable = O.plugin.ts_textobjects,--   set_jumps = true, -- whether to set jumps in the jumplist--   goto_next_start = {},--   goto_next_end = {},--   goto_previous_start = {},--   goto_previous_end = {},-- }-- for obj, suffix in pairs(textobj_suffixes) do--   if textobj_prefixes["goto_next"] ~= nil then--     textobj_move_keymaps["goto_next_start"][textobj_prefixes["goto_next"] .. suffix[1]] = "@" .. obj .. ".outer"--     textobj_move_keymaps["goto_next_end"][textobj_prefixes["goto_next"] .. suffix[2]] = "@" .. obj .. ".outer"--   end--   if textobj_prefixes["goto_previous"] ~= nil then--     textobj_move_keymaps["goto_previous_start"][textobj_prefixes["goto_previous"] .. suffix[2]] = "@" .. obj .. ".outer"--     textobj_move_keymaps["goto_previous_end"][textobj_prefixes["goto_previous"] .. suffix[1]] = "@" .. obj .. ".outer"--   end----   if textobj_prefixes["inner"] ~= nil then--     textobj_sel_keymaps[textobj_prefixes["inner"] .. suffix[1]] = "@" .. obj .. ".inner"--   end--   if textobj_prefixes["outer"] ~= nil then--     textobj_sel_keymaps[textobj_prefixes["outer"] .. suffix[1]] = "@" .. obj .. ".outer"--   end----   if textobj_prefixes["swap"] ~= nil then--     textobj_swap_keymaps[textobj_prefixes["swap"] .. suffix[1]] = "@" .. obj .. ".outer"--   end-- end-- vim.g.ts_hint_textobject_keys = O.treesitter.hint_labels -- Requires https://github.com/mfussenegger/nvim-ts-hint-textobject/pull/2---- -- Add which key menu entries-- local status, wk = pcall(require, "which-key")-- if status then--   local normal = {--     mode = "n", -- Normal mode--   }--   local operators = {--     mode = "o", -- Operator mode--   }--   wk.register(textobj_sel_keymaps, operators)--   wk.register({--     ["m"] = "Hint Objects",--     ["."] = "Textsubject",--     [";"] = "Textsubject-big",--   }, operators)--   wk.register(textobj_swap_keymaps, normal)--   wk.register({--     [textobj_prefixes["swap"]] = "Swap",--     -- [textobj_prefixes["goto_next"]] = "Jump [",--     -- [textobj_prefixes["goto_previous"]] = "Jump ]"--   }, normal)--   wk.register(textobj_move_keymaps["goto_next_start"], normal)--   wk.register(textobj_move_keymaps["goto_next_end"], normal)--   wk.register(textobj_move_keymaps["goto_previous_start"], normal)--   wk.register(textobj_move_keymaps["goto_previous_end"], normal)-- endlocal status_ok, treesitter_configs = pcall(require, "nvim-treesitter.configs")if not status_ok then  returnendtreesitter_configs.setup(O.treesitter)
 |