treesitter
better hightlight
return {
{ -- "nvim-treesitter/nvim-treesitter",
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
opts = {
indent = { enable = true },
ensure_installed = {
"c",
"html",
"lua",
"markdown",
"markdown_inline",
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "vv",
node_incremental = "<cr>",
scope_incremental = false,
node_decremental = "<bs>",
},
},
},
config = function(_, opts)
if type(opts.ensure_installed) == "table" then
local added = {}
opts.ensure_installed = vim.tbl_filter(function(lang)
if added[lang] then
return false
end
added[lang] = true
return true
end, opts.ensure_installed)
end
table.insert(opts.ensure_installed, "latex") -- extend but not merge
require("nvim-treesitter.configs").setup(opts)
end,
},
{ -- "nvim-treesitter/nvim-treesitter-context",
"nvim-treesitter/nvim-treesitter-context",
-- enabled = false,
cmd = "TSContext enable",
keys = {
{ "<leader>ut", "<cmd>TSContext toggle<cr>", desc = "toggle treesitter context" },
},
opts = {
max_lines = 3,
},
},
{ -- "code-biscuits/nvim-biscuits",
"code-biscuits/nvim-biscuits",
keys = {
{
"<leader>ub",
function()
local nvim_biscuits = require("nvim-biscuits")
nvim_biscuits.BufferAttach()
nvim_biscuits.toggle_biscuits()
end,
mode = "n",
desc = "Enable Biscuits",
},
},
dependencies = {
"nvim-treesitter/nvim-treesitter",
},
opts = {
cursor_line_only = true,
},
},
}