summaryrefslogtreecommitdiffstats
path: root/lua/conf/plugins/treesitter-context.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lua/conf/plugins/treesitter-context.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/lua/conf/plugins/treesitter-context.lua b/lua/conf/plugins/treesitter-context.lua
new file mode 100644
index 0000000..3306e6b
--- /dev/null
+++ b/lua/conf/plugins/treesitter-context.lua
@@ -0,0 +1,40 @@
+local misc = require("core.misc")
+local map = misc.map
+
+local branch = nil
+if vim.version().minor == 7 then
+ branch = 'compat/0.7'
+end
+
+return { 'nvim-treesitter/nvim-treesitter-context',
+ disable = vim.version().minor < 7,
+ branch = branch,
+ requires = 'nvim-treesitter/nvim-treesitter',
+ function()
+ local treesitter_context = require("treesitter-context")
+
+ treesitter_context.setup {
+ enable = true,
+ line_numbers = true,
+ separator = '─',
+ }
+
+ -- mapping to jump to the first closest line of context in buffer
+ map("n", "[j", function()
+ local lline = vim.api.nvim_win_get_cursor(0)[1];
+ local line
+
+ -- go to the first closest line of context and center it
+ treesitter_context.go_to_context()
+ vim.api.nvim_input('zz')
+
+ -- make sure we actually moved
+ line = vim.api.nvim_win_get_cursor(0)[1];
+ if line == lline then
+ return
+ end
+
+ misc.timeout_highlight()
+ end)
+ end
+}