plugin stuff

This commit is contained in:
Alexander Gehrke 2024-04-11 20:06:27 +02:00
parent 0563865360
commit 2c0362678f
5 changed files with 152 additions and 96 deletions

View file

@ -5,7 +5,7 @@ end
return {
{
"nvim-treesitter/nvim-treesitter",
version = false, -- last release is way too old and doesn't work on Windows
version = false,
build = ":TSUpdate",
event = { "BufReadPost", "BufNewFile" },
dependencies = {
@ -32,10 +32,11 @@ return {
},
keys = {
{ "<c-space>", desc = "Increment selection" },
{ "<bs>", desc = "Decrement selection", mode = "x" },
{ "<bs>", desc = "Decrement selection", mode = "x" },
},
---@type TSConfig
opts = {
auto_install = true,
ignore_install = {},
highlight = { enable = true, disable = ts_disable },
indent = { enable = true },
ensure_installed = {
@ -68,6 +69,36 @@ return {
node_decremental = "<bs>",
},
},
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
-- stylua: ignore start
["af"] = { query = "@function.outer", desc = "outer function" },
["if"] = { query = "@function.inner", desc = "inner function" },
["ac"] = { query = "@class.outer", desc = "outer class" },
["ic"] = { query = "@class.inner", desc = "inner class" },
["ap"] = { query = "@parameter.outer", desc = "outer parameter" },
["ip"] = { query = "@parameter.inner", desc = "inner parameter" },
-- stylua: ignore end
},
selection_modes = {
["@parameter.outer"] = "v", -- charwise
["@function.outer"] = "V", -- linewise
["@class.outer"] = "V",
},
},
swap = {
enable = true,
swap_next = {
["<leader>a"] = "@parameter.inner",
},
swap_previous = {
["<leader>A"] = "@parameter.inner",
},
},
},
},
---@param opts TSConfig
config = function(_, opts)
@ -86,28 +117,29 @@ return {
end,
},
{
'nvim-treesitter/playground',
"nvim-treesitter/playground",
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = {
'TSPlaygroundToggle',
'TSHighlightCapturesUnderCursor',
'TSNodeUnderCursor',
}
"TSPlaygroundToggle",
"TSHighlightCapturesUnderCursor",
"TSNodeUnderCursor",
},
},
{
"nvim-treesitter/nvim-treesitter-context",
event = "VeryLazy",
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = { 'TSContextEnable', 'TSContextDisable', 'TSContextToggle' },
cmd = { "TSContextEnable", "TSContextDisable", "TSContextToggle" },
keys = {
{ "[c", function() require("treesitter-context").go_to_context() end, desc = "Go to context start" },
-- stylua: ignore start
{ "[c", function() require("treesitter-context").go_to_context() end, desc = "Go to context start", },
-- stylua: ignore end
},
opts = { enable = true },
config = function(_, opts)
require 'treesitter-context'.setup(opts)
vim.api.nvim_set_hl(0, 'TreesitterContext', { bg = "#555555" })
vim.api.nvim_set_hl(0, 'TreesitterContextLineNumber', { link = "Special" })
require("treesitter-context").setup(opts)
vim.api.nvim_set_hl(0, "TreesitterContext", { bg = "#555555" })
vim.api.nvim_set_hl(0, "TreesitterContextLineNumber", { link = "Special" })
end,
}
},
}