summaryrefslogtreecommitdiff
path: root/lua/plugins
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2024-01-30 23:40:21 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2024-01-30 23:40:21 -0600
commitd9e3da291a1748d9b1c8efebcd6d12cbf092c3c6 (patch)
tree9fdfdd70a3dd72e25ef9bc0ca2abd6990611dbba /lua/plugins
parenta01152c8146817d904d8f2980c689280c4cbec0b (diff)
feat: add treesitter-context
Diffstat (limited to 'lua/plugins')
-rw-r--r--lua/plugins/context.lua26
1 files changed, 26 insertions, 0 deletions
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', '<leader>cx', '<CMD>TSContextToggle<CR>', { desc = '[C]onte[x]t Toggle' })
+ end,
+}