aboutsummaryrefslogtreecommitdiff
path: root/modules/neovim/nvim/lua/config/treesitter.lua
blob: f47f60b4960c30bd10240c8fa38538f85bf39af8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
-- require("nvim-treesitter.configs").setup {
--   highlight = { enable = true },
--   indent = { enable = false },
--   incremental_selection = {
--     enable = true,
--     keymaps = {
--       -- init_selection = "gnn",
--       node_incremental = "aa",
--       node_decremental = "ii",
--     },
--   },
-- highlight = {
--   enable = false,
--   disable = function(lang, buf)
--     local max_filesize = 100 * 1024 -- 100 KB
--     local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
--     if ok and stats and stats.size > max_filesize then
--         return true
--     end
--   end,
-- },
-- }

vim.api.nvim_create_autocmd("FileType", {
	pattern = {
		"lua",
		"cpp",
		"nix",
		"scala",
		"nu",
		"go",
		"rst",
		"css",
		"yaml",
		"toml",
		"scss",
		"json",
		"html",
		"bash",
		"query",
		"ocaml",
		"ocaml-interface",
		"tex",
		"python",
		"bibtex",
		"comment",
		"dockerfile",
		"make",
		"cmake",
		"scheme",
		"llvm",
		"html",
		"glsl",
		"devicetree",
		"cuda",
		"c",
		"cpp",
		"zig",
		"rust",
		"haskell",
		"toml",
		"markdown",
		"markdown-inline",
		"tablegen",
	},
	callback = function()
		vim.treesitter.start()
	end,
})

require'treesitter-context'.setup{
  enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
  multiwindow = false, -- Enable multiwindow support.
  max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
  min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit.
  line_numbers = true,
  multiline_threshold = 20, -- Maximum number of lines to show for a single context
  trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer'
  mode = 'cursor',  -- Line used to calculate context. Choices: 'cursor', 'topline'
  -- Separator between context and content. Should be a single character string, like '-'.
  -- When separator is set, the context will only show up when there are at least 2 lines above cursorline.
  separator = nil,
  zindex = 20, -- The Z-index of the context window
  on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching
}

-- require("nvim-treesitter-textobjects").setup({
-- 	select = {
-- 		lookahead = true,
-- 	},
-- })