summaryrefslogtreecommitdiff
path: root/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/context.lua
blob: 1daaa548628010edd5ef8e468075b95d5e7091f3 (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
return {
	"nvim-treesitter/nvim-treesitter-context",
	cmd = { "TSContextEnable", "TSContextDisable", "TSContextToggle" },
	config = function()
		require("treesitter-context").setup({
			enable = false, -- Enable this plugin (Can be enabled/disabled later via commands)
			max_lines = 3, -- How many lines the window should span. Values <= 0 mean no limit.
			min_window_height = 1, -- 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
		})

		vim.keymap.set("n", "[t", function()
			require("treesitter-context").go_to_context(vim.v.count1)
		end, { silent = true, desc = "Go to context" })
		vim.keymap.set({ "n", "v" }, "<leader>zc", "<cmd>TSContextToggle<cr>", { desc = "Toggle context" })
	end,
}