From d9e3da291a1748d9b1c8efebcd6d12cbf092c3c6 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Tue, 30 Jan 2024 23:40:21 -0600 Subject: feat: add treesitter-context --- lua/plugins/context.lua | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lua/plugins/context.lua (limited to 'lua') diff --git a/lua/plugins/context.lua b/lua/plugins/context.lua new file mode 100644 index 0000000..e0625ab --- /dev/null +++ b/lua/plugins/context.lua @@ -0,0 +1,26 @@ +return { + 'nvim-treesitter/nvim-treesitter-context', + dependencies = { + 'nvim-treesitter/nvim-treesitter', + }, + opts = { + enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) + 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 + }, + config = function(_, opts) + require('treesitter-context').setup(opts) + + -- TODO: change keybind? + vim.keymap.set('n', 'cx', 'TSContextToggle', { desc = '[C]onte[x]t Toggle' }) + end, +} -- cgit v1.2.3-70-g09d2