diff options
Diffstat (limited to 'lua/plugins/treesitter.lua')
-rw-r--r-- | lua/plugins/treesitter.lua | 85 |
1 files changed, 60 insertions, 25 deletions
diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 4a6a012..a96d883 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -1,33 +1,68 @@ -require 'nvim-treesitter.configs'.setup { - -- A list of parser names, or "all" - ensure_installed = { "c", "lua", "cpp", "markdown", "vimdoc" }, +return { + 'nvim-treesitter/nvim-treesitter', + dependencies = { + { + 'nvim-treesitter/nvim-treesitter-context', + opts = { + -- Avoid the sticky context from growing a lot. + max_lines = 3, + -- Match the context lines to the source code. + multiline_threshold = 1, + -- Disable it when the window is too small. + min_window_height = 20, + }, + keys = { + { + '[c', + function() + -- Jump to previous change when in diffview. + if vim.wo.diff then + return '[c' + else + vim.schedule(function() + require('treesitter-context').go_to_context() + end) + return '<Ignore>' + end + end, + desc = 'Jump to upper context', + expr = true, + }, + }, + }, + }, + build = ':TSUpdate', + opts = { + -- A list of parser names, or "all" + ensure_installed = { "c", "lua", "cpp", "markdown", "markdown_inline", "vim", "regex", "vimdoc" }, - -- Install parsers synchronously (only applied to `ensure_installed`) - sync_install = true, + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = true, - -- Automatically install missing parsers when entering buffer - auto_install = false, + -- Automatically install missing parsers when entering buffer + auto_install = false, - -- List of parsers to ignore installing (for "all") - ignore_install = { "javascript" }, + -- List of parsers to ignore installing (for "all") + ignore_install = { "javascript" }, - highlight = { - -- `false` will disable the whole extension - enable = true, + highlight = { + -- `false` will disable the whole extension + enable = true, - -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to - -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is - -- the name of the parser) - -- list of language that will be disabled - -- disable = { "c", "rust" }, - disable = { "markdown" }, + -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to + -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is + -- the name of the parser) + -- list of language that will be disabled + -- disable = { "c", "rust" }, + disable = { "markdown" }, - -- Setting this to true will run `:h syntax` and tree-sitter at the same time. - -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). - -- Using this option may slow down your editor, and you may see some duplicate highlights. - -- Instead of true it can also be a list of languages - additional_vim_regex_highlighting = false, - }, + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, - indent = true, + indent = true, + }, } |