Add nvim-treesitter-textobjects
This commit is contained in:
parent
86ccf3bb2d
commit
fe912ab5fb
@ -5,8 +5,8 @@ local M = {}
|
|||||||
local highlights = require "custom.highlights"
|
local highlights = require "custom.highlights"
|
||||||
|
|
||||||
M.ui = {
|
M.ui = {
|
||||||
theme = "gatekeeper",
|
theme = "onedark",
|
||||||
theme_toggle = { "gatekeeper", "monekai" },
|
theme_toggle = { "onedark", "monekai" },
|
||||||
|
|
||||||
hl_override = highlights.override,
|
hl_override = highlights.override,
|
||||||
hl_add = highlights.add,
|
hl_add = highlights.add,
|
||||||
|
|||||||
@ -4,7 +4,7 @@ local capabilities = require("plugins.configs.lspconfig").capabilities
|
|||||||
local lspconfig = require "lspconfig"
|
local lspconfig = require "lspconfig"
|
||||||
|
|
||||||
-- if you just want default config for the servers then put them in a table
|
-- if you just want default config for the servers then put them in a table
|
||||||
local servers = { "html", "cssls", "tsserver", "clangd" }
|
local servers = { "html", "cssls", "tsserver", "clangd", "salt_ls" }
|
||||||
|
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
lspconfig[lsp].setup {
|
lspconfig[lsp].setup {
|
||||||
|
|||||||
@ -19,6 +19,15 @@ M.treesitter = {
|
|||||||
-- "python"
|
-- "python"
|
||||||
-- },
|
-- },
|
||||||
},
|
},
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<C-space>",
|
||||||
|
node_incremental = "<C-space>",
|
||||||
|
scope_incremental = false,
|
||||||
|
node_decremental = "<bs>",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
M.mason = {
|
M.mason = {
|
||||||
|
|||||||
35
lua/plugins/configs/hydra.lua
Normal file
35
lua/plugins/configs/hydra.lua
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
local Hydra = require("hydra")
|
||||||
|
|
||||||
|
Hydra({
|
||||||
|
name = "Change / Resize Window",
|
||||||
|
mode = { "n" },
|
||||||
|
body = "<leader>t",
|
||||||
|
config = {
|
||||||
|
-- color = "pink",
|
||||||
|
},
|
||||||
|
heads = {
|
||||||
|
-- move between windows
|
||||||
|
{ "<C-h>", "<C-w>h", { desc="Noot nooty" } },
|
||||||
|
{ "<C-j>", "<C-w>j" },
|
||||||
|
{ "<C-k>", "<C-w>k" },
|
||||||
|
{ "<C-l>", "<C-w>l" },
|
||||||
|
|
||||||
|
-- resizing window
|
||||||
|
{ "H", "<C-w>3<" },
|
||||||
|
{ "L", "<C-w>3>" },
|
||||||
|
{ "K", "<C-w>2+" },
|
||||||
|
{ "J", "<C-w>2-" },
|
||||||
|
|
||||||
|
-- equalize window sizes
|
||||||
|
{ "e", "<C-w>=" },
|
||||||
|
|
||||||
|
-- close active window
|
||||||
|
{ "Q", ":q<cr>" },
|
||||||
|
{ "<C-q>", ":q<cr>" },
|
||||||
|
|
||||||
|
-- exit this Hydra
|
||||||
|
{ "q", nil, { exit = true, nowait = true } },
|
||||||
|
{ ";", nil, { exit = true, nowait = true } },
|
||||||
|
{ "<Esc>", nil, { exit = true, nowait = true } },
|
||||||
|
},
|
||||||
|
})
|
||||||
133
lua/plugins/configs/treesitter_textobjects.lua
Normal file
133
lua/plugins/configs/treesitter_textobjects.lua
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.textobjects = {
|
||||||
|
select = {
|
||||||
|
enable = true,
|
||||||
|
|
||||||
|
-- Automatically jump forward to textobj, similar to targets.vim
|
||||||
|
lookahead = true,
|
||||||
|
|
||||||
|
keymaps = {
|
||||||
|
-- You can use the capture groups defined in textobjects.scm
|
||||||
|
["a="] = { query = "@assignment.outer", desc = "Select outer part of an assignment" },
|
||||||
|
["i="] = { query = "@assignment.inner", desc = "Select inner part of an assignment" },
|
||||||
|
["l="] = { query = "@assignment.lhs", desc = "Select left hand side of an assignment" },
|
||||||
|
["r="] = { query = "@assignment.rhs", desc = "Select right hand side of an assignment" },
|
||||||
|
|
||||||
|
["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
|
||||||
|
["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
|
||||||
|
|
||||||
|
["ai"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
|
||||||
|
["ii"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
|
||||||
|
|
||||||
|
["al"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
|
||||||
|
["il"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
|
||||||
|
|
||||||
|
["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
|
||||||
|
["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
|
||||||
|
|
||||||
|
["am"] = { query = "@function.outer", desc = "Select outer part of a function def" },
|
||||||
|
["im"] = { query = "@function.inner", desc = "Select inner part of a function def" },
|
||||||
|
|
||||||
|
["ak"] = { query = "@class.outer", desc = "Select outer part of a class" },
|
||||||
|
["ik"] = { query = "@class.inner", desc = "Select inner part of a class" },
|
||||||
|
|
||||||
|
["ac"] = { query = "@comment.outer", desc = "Select outer part of a comment" },
|
||||||
|
["ic"] = { query = "@comment.inner", desc = "Select inner part of a comment" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
move = {
|
||||||
|
enable = true,
|
||||||
|
-- Whether to set jumps in the jumplist
|
||||||
|
set_jumps = true,
|
||||||
|
goto_next_start = {
|
||||||
|
["]a"] = { query = "@parameter.outer", desc = "Goto next start outer parameter" },
|
||||||
|
["]i"] = { query = "@conditional.outer", desc = "Goto next start outer conditional" },
|
||||||
|
["]l"] = { query = "@loop.outer", desc = "Goto next start outer loop" },
|
||||||
|
["]f"] = { query = "@call.outer", desc = "Goto next start outer call" },
|
||||||
|
["]m"] = { query = "@function.outer", desc = "Goto next start outer function" },
|
||||||
|
["]k"] = { query = "@class.outer", desc = "Goto next start outer class" },
|
||||||
|
["]c"] = { query = "@comment.outer", desc = "Goto next start outer comment" },
|
||||||
|
},
|
||||||
|
goto_next_end = {
|
||||||
|
["]A"] = { query = "@parameter.outer", desc = "Goto next end outer parameter" },
|
||||||
|
["]I"] = { query = "@conditional.outer", desc = "Goto next end outer conditional" },
|
||||||
|
["]L"] = { query = "@loop.outer", desc = "Goto next end outer loop" },
|
||||||
|
["]F"] = { query = "@call.outer", desc = "Goto next end outer call" },
|
||||||
|
["]M"] = { query = "@function.outer", desc = "Goto next end outer function" },
|
||||||
|
["]K"] = { query = "@class.outer", desc = "Goto next end outer class" },
|
||||||
|
["]C"] = { query = "@comment.outer", desc = "Goto next end outer comment" },
|
||||||
|
},
|
||||||
|
goto_previous_start = {
|
||||||
|
["[a"] = { query = "@parameter.outer", desc = "Goto previous start outer parameter" },
|
||||||
|
["[i"] = { query = "@conditional.outer", desc = "Goto previous start outer conditional" },
|
||||||
|
["[l"] = { query = "@loop.outer", desc = "Goto previous start outer loop" },
|
||||||
|
["[f"] = { query = "@call.outer", desc = "Goto previous start outer call" },
|
||||||
|
["[m"] = { query = "@function.outer", desc = "Goto previous start outer function" },
|
||||||
|
["[k"] = { query = "@class.outer", desc = "Goto previous start outer class" },
|
||||||
|
["[c"] = { query = "@comment.outer", desc = "Goto previous start outer comment" },
|
||||||
|
},
|
||||||
|
goto_previous_end = {
|
||||||
|
["[A"] = { query = "@parameter.outer", desc = "Goto previous end outer parameter" },
|
||||||
|
["[I"] = { query = "@conditional.outer", desc = "Goto previous end outer conditional" },
|
||||||
|
["[L"] = { query = "@loop.outer", desc = "Goto previous end outer loop" },
|
||||||
|
["[F"] = { query = "@call.outer", desc = "Goto previous end outer call" },
|
||||||
|
["[M"] = { query = "@function.outer", desc = "Goto previous end outer function" },
|
||||||
|
["[K"] = { query = "@class.outer", desc = "Goto previous end outer class" },
|
||||||
|
["[C"] = { query = "@comment.outer", desc = "Goto previous end outer comment" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
swap = {
|
||||||
|
enable = true,
|
||||||
|
|
||||||
|
swap_next = {
|
||||||
|
["<leader>na"] = { query = "@parameter.inner", desc = "Swap with next inner parameter" },
|
||||||
|
["<leader>ni"] = { query = "@conditional.outer", desc = "Swap with next outer conditional" },
|
||||||
|
["<leader>nl"] = { query = "@loop.outer", desc = "Swap with next outer loop" },
|
||||||
|
["<leader>nf"] = { query = "@call.outer", desc = "Swap with next outer call" },
|
||||||
|
["<leader>nm"] = { query = "@function.outer", desc = "Swap with next outer function" },
|
||||||
|
["<leader>nk"] = { query = "@class.outer", desc = "Swap with next outer class" },
|
||||||
|
["<leader>nc"] = { query = "@comment.outer", desc = "Swap with next outer comment" },
|
||||||
|
|
||||||
|
["<leader>nA"] = { query = "@parameter.outer", desc = "Swap with next outer parameter" },
|
||||||
|
["<leader>nI"] = { query = "@conditional.inner", desc = "Swap with next inner conditional" },
|
||||||
|
["<leader>nL"] = { query = "@loop.inner", desc = "Swap with next inner loop" },
|
||||||
|
["<leader>nF"] = { query = "@call.inner", desc = "Swap with next inner call" },
|
||||||
|
["<leader>nM"] = { query = "@function.inner", desc = "Swap with next inner function" },
|
||||||
|
["<leader>nK"] = { query = "@class.inner", desc = "Swap with next inner class" },
|
||||||
|
["<leader>nC"] = { query = "@comment.inner", desc = "Swap with next inner comment" },
|
||||||
|
},
|
||||||
|
swap_previous = {
|
||||||
|
["<leader>pa"] = { query = "@parameter.inner", desc = "Swap with previous inner parameter" },
|
||||||
|
["<leader>pi"] = { query = "@conditional.outer", desc = "Swap with previous outer conditional" },
|
||||||
|
["<leader>pl"] = { query = "@loop.outer", desc = "Swap with previous outer loop" },
|
||||||
|
["<leader>pf"] = { query = "@call.outer", desc = "Swap with previous outer call" },
|
||||||
|
["<leader>pm"] = { query = "@function.outer", desc = "Swap with previous outer function" },
|
||||||
|
["<leader>pk"] = { query = "@class.outer", desc = "Swap with previous outer class" },
|
||||||
|
["<leader>pc"] = { query = "@comment.outer", desc = "Swap with previous outer comment" },
|
||||||
|
|
||||||
|
["<leader>pA"] = { query = "@parameter.outer", desc = "Swap with previous outer parameter" },
|
||||||
|
["<leader>pI"] = { query = "@conditional.inner", desc = "Swap with previous inner conditional" },
|
||||||
|
["<leader>pL"] = { query = "@loop.inner", desc = "Swap with previous inner loop" },
|
||||||
|
["<leader>pF"] = { query = "@call.inner", desc = "Swap with previous inner call" },
|
||||||
|
["<leader>pM"] = { query = "@function.inner", desc = "Swap with previous inner function" },
|
||||||
|
["<leader>pK"] = { query = "@class.inner", desc = "Swap with previous inner class" },
|
||||||
|
["<leader>pC"] = { query = "@comment.inner", desc = "Swap with previous inner comment" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- local ts_repeat_move = require "nvim-treesitter.textobjects.repeatable_move"
|
||||||
|
|
||||||
|
-- Repeat movement with ; and ,
|
||||||
|
-- vim.keymap.set({"n", "x", "o"}, ",", ts_repeat_move.repeat_last_move_next)
|
||||||
|
-- vim.keymap.set({"n", "x", "o"}, ",", ts_repeat_move.repeat_last_move_previous)
|
||||||
|
|
||||||
|
-- Optionnally, make builtin f, F, t, T also repeatable with ; and ,
|
||||||
|
-- vim.keymap.set({"n", "x", "o"}, "f", ts_repeat_move.builtin_f)
|
||||||
|
-- vim.keymap.set({"n", "x", "o"}, "F", ts_repeat_move.builtin_F)
|
||||||
|
-- vim.keymap.set({"n", "x", "o"}, "t", ts_repeat_move.builtin_t)
|
||||||
|
-- vim.keymap.set({"n", "x", "o"}, "T", ts_repeat_move.builtin_T)
|
||||||
|
|
||||||
|
return M
|
||||||
@ -119,6 +119,16 @@ local default_plugins = {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter-textobjects",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require("nvim-treesitter.configs").setup(
|
||||||
|
require("plugins.configs.treesitter_textobjects")
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- git stuff
|
-- git stuff
|
||||||
{
|
{
|
||||||
"lewis6991/gitsigns.nvim",
|
"lewis6991/gitsigns.nvim",
|
||||||
@ -260,6 +270,16 @@ local default_plugins = {
|
|||||||
debug=false,
|
debug=false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"anuvyklack/hydra.nvim",
|
||||||
|
lazy=false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"gioele/vim-autoswap",
|
||||||
|
lazy=false,
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"natecraddock/workspaces.nvim",
|
"natecraddock/workspaces.nvim",
|
||||||
lazy=false,
|
lazy=false,
|
||||||
@ -378,6 +398,11 @@ local default_plugins = {
|
|||||||
require("which-key").setup(opts)
|
require("which-key").setup(opts)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ThePrimeagen/harpoon",
|
||||||
|
branch = "harpoon2",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" }
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local config = require("core.utils").load_config()
|
local config = require("core.utils").load_config()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user