init.lua 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. -- TODO: refacor this whole file and treesitter in general
  2. -- if not package.loaded['nvim-treesitter'] then return end
  3. --
  4. -- Custom parsers
  5. -- local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
  6. -- parser_config.make = {
  7. -- install_info = {
  8. -- url = "https://github.com/alemuller/tree-sitter-make", -- local path or git repo
  9. -- files = {"src/parser.c"},
  10. -- requires_generate_from_grammar = true
  11. -- }
  12. -- }
  13. -- parser_config.just = {
  14. -- install_info = {
  15. -- url = "~/dev/tree-sitter-just", -- local path or git repo
  16. -- files = {"src/parser.c"}
  17. -- }
  18. -- -- filetype = "just", -- if filetype does not agrees with parser name
  19. -- -- used_by = {"bar", "baz"} -- additional filetypes that use this parser
  20. -- }
  21. -- Custom text objects
  22. -- local textobj_prefixes = O.treesitter.textobj_prefixes
  23. -- local textobj_suffixes = O.treesitter.textobj_suffixes
  24. -- local textobj_sel_keymaps = {}
  25. -- local textobj_swap_keymaps = {}
  26. -- local textobj_move_keymaps = {
  27. -- enable = O.plugin.ts_textobjects,
  28. -- set_jumps = true, -- whether to set jumps in the jumplist
  29. -- goto_next_start = {},
  30. -- goto_next_end = {},
  31. -- goto_previous_start = {},
  32. -- goto_previous_end = {},
  33. -- }
  34. -- for obj, suffix in pairs(textobj_suffixes) do
  35. -- if textobj_prefixes["goto_next"] ~= nil then
  36. -- textobj_move_keymaps["goto_next_start"][textobj_prefixes["goto_next"] .. suffix[1]] = "@" .. obj .. ".outer"
  37. -- textobj_move_keymaps["goto_next_end"][textobj_prefixes["goto_next"] .. suffix[2]] = "@" .. obj .. ".outer"
  38. -- end
  39. -- if textobj_prefixes["goto_previous"] ~= nil then
  40. -- textobj_move_keymaps["goto_previous_start"][textobj_prefixes["goto_previous"] .. suffix[2]] = "@" .. obj .. ".outer"
  41. -- textobj_move_keymaps["goto_previous_end"][textobj_prefixes["goto_previous"] .. suffix[1]] = "@" .. obj .. ".outer"
  42. -- end
  43. --
  44. -- if textobj_prefixes["inner"] ~= nil then
  45. -- textobj_sel_keymaps[textobj_prefixes["inner"] .. suffix[1]] = "@" .. obj .. ".inner"
  46. -- end
  47. -- if textobj_prefixes["outer"] ~= nil then
  48. -- textobj_sel_keymaps[textobj_prefixes["outer"] .. suffix[1]] = "@" .. obj .. ".outer"
  49. -- end
  50. --
  51. -- if textobj_prefixes["swap"] ~= nil then
  52. -- textobj_swap_keymaps[textobj_prefixes["swap"] .. suffix[1]] = "@" .. obj .. ".outer"
  53. -- end
  54. -- end
  55. -- vim.g.ts_hint_textobject_keys = O.treesitter.hint_labels -- Requires https://github.com/mfussenegger/nvim-ts-hint-textobject/pull/2
  56. --
  57. -- -- Add which key menu entries
  58. -- local status, wk = pcall(require, "which-key")
  59. -- if status then
  60. -- local normal = {
  61. -- mode = "n", -- Normal mode
  62. -- }
  63. -- local operators = {
  64. -- mode = "o", -- Operator mode
  65. -- }
  66. -- wk.register(textobj_sel_keymaps, operators)
  67. -- wk.register({
  68. -- ["m"] = "Hint Objects",
  69. -- ["."] = "Textsubject",
  70. -- [";"] = "Textsubject-big",
  71. -- }, operators)
  72. -- wk.register(textobj_swap_keymaps, normal)
  73. -- wk.register({
  74. -- [textobj_prefixes["swap"]] = "Swap",
  75. -- -- [textobj_prefixes["goto_next"]] = "Jump [",
  76. -- -- [textobj_prefixes["goto_previous"]] = "Jump ]"
  77. -- }, normal)
  78. -- wk.register(textobj_move_keymaps["goto_next_start"], normal)
  79. -- wk.register(textobj_move_keymaps["goto_next_end"], normal)
  80. -- wk.register(textobj_move_keymaps["goto_previous_start"], normal)
  81. -- wk.register(textobj_move_keymaps["goto_previous_end"], normal)
  82. -- end
  83. local status_ok, treesitter_configs = pcall(require, "nvim-treesitter.configs")
  84. if not status_ok then
  85. return
  86. end
  87. treesitter_configs.setup(O.treesitter)