diff --git a/after/queries/lua/textobjects.scm b/after/queries/lua/textobjects.scm new file mode 100644 index 0000000..e6aa91b --- /dev/null +++ b/after/queries/lua/textobjects.scm @@ -0,0 +1,3 @@ +; extends + +((field) ",") @myfield diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 0777be9..465df34 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -194,6 +194,13 @@ M.general = { --{{{ ["tf"] = { " set foldmethod=expr| set foldexpr=nvim_treesitter#foldexpr()", "enable Treesitter folding"}, + ["tp"]= { + function() + vim.cmd("TSPlaygroundToggle") + end, + "Treesitter playground" + }, + ["en"] = { " cn ", "next error" }, ["]e"] = { " cn ", "next error" }, ["ep"] = { " cp ", "previous error" }, @@ -246,13 +253,13 @@ M.general = { --{{{ }, -- Notify cmd watcher (see /scripts/utils/fifo_watch.sh) - [""] = { + --[[ [""] = { function() local fifo_patch = "/tmp/fifo_vimnotify" os.execute("echo do >" .. fifo_patch) end, "notify " - }, + }, ]] -- TODO: move to lspconfig section @@ -826,7 +833,20 @@ M.general = { --{{{ -- -- } -- }}} --- + +M.vimux = { + plugin = true, + n = { + -- rerun last + [""] = {"VimuxRunLastCommand", "vimux run last command"}, + -- prompt + ["vv"] = {"VimuxPromptCommand", "vimux prompt command"}, + ["vc"] = {"VimuxInterruptRunner", "vimux interrupt command"}, + ["vl"] = {"VimuxClearTerminalScreen", "vimux clear terminal"}, + ["vx"] = {"VimuxCloseRunner", "vimux close runner"}, + } +} + -- extra mappings for golang M.golang = { plugin = true, diff --git a/lua/custom/plugins/configs/treesitter.lua b/lua/custom/plugins/configs/treesitter.lua index b2a6009..b28cf12 100644 --- a/lua/custom/plugins/configs/treesitter.lua +++ b/lua/custom/plugins/configs/treesitter.lua @@ -1,115 +1,117 @@ return { - ensure_installed = { - "query", - "css", - "lua", - "go", - "rust", - "fish", - "bash", - "python", - "c", - "cpp", - "haskell", - "javascript", - "html", - "markdown", - "markdown_inline", - "make", - "sql", - "yaml", - "toml", - "vue", - }, + ensure_installed = { + "query", + "css", + "lua", + "go", + "rust", + "fish", + "bash", + "python", + "c", + "cpp", + "haskell", + "javascript", + "html", + "markdown", + "markdown_inline", + "make", + "sql", + "yaml", + "toml", + "vue", + }, - highlight = { - enable = true, - disable = function (lang, bufnr) - return lang == "help" - end - }, + highlight = { + enable = true, + disable = function(lang, bufnr) + return lang == "help" + end + }, - incremental_selection = { - enable = true, - keymaps = { - init_selection = "", - node_incremental = "", - node_decremental = "", - scope_incremental = "", - } - }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = "", + node_incremental = "", + node_decremental = "", + scope_incremental = "", + } + }, - -- textsubjects = { - -- enable = true, - -- prev_selection = "", - -- keymaps = { - -- [""] = "textsubjects-smart", -- works in visual mode - -- } - -- }, - -- - rainbow = { - enable = true, - extended_mode = true, - }, + -- textsubjects = { + -- enable = true, + -- prev_selection = "", + -- keymaps = { + -- [""] = "textsubjects-smart", -- works in visual mode + -- } + -- }, + -- + rainbow = { + enable = true, + extended_mode = true, + }, - textobjects = { - enable = true, + textobjects = { + enable = true, - select = { - enable = true, - lookahead = true, - keymaps = { - -- You can use the capture groups defined in textobjects.scm - ["af"] = "@function.outer", - ["if"] = "@function.inner", - ["aF"] = "@field.outer", - ["ac"] = "@class.outer", - ["ic"] = "@class.inner", - ["aC"] = "@conditional.outer", - ["iC"] = "@conditional.inner", - ["ae"] = "@block.outer", - ["ie"] = "@block.inner", - ["al"] = "@loop.outer", - ["il"] = "@loop.inner", - ["is"] = "@statement.inner", - ["as"] = "@statement.outer", - ["ad"] = "@comment.outer", - ["am"] = "@call.outer", - ["im"] = "@call.inner", - } - }, + select = { + enable = true, + lookahead = true, + keymaps = { + -- You can use the capture groups defined in textobjects.scm + ["af"] = { query = "@function.outer", desc = "TS function" }, + ["if"] = { query = "@function.inner", desc = "TS function" }, + ["aF"] = { query = "@myfield", desc = "TS field" }, + ["ac"] = { query = "@class.outer", desc = "TS class" }, + ["ic"] = { query = "@class.inner", desc = "TS class" }, + ["aC"] = { query = "@conditional.outer", desc = "TS conditional" }, + ["iC"] = { query = "@conditional.inner", desc = "TS conditional" }, + ["ae"] = { query = "@block.outer", desc = "TS block" }, + ["ie"] = { query = "@block.inner", desc = "TS block" }, + ["al"] = { query = "@loop.outer", desc = "TS loop" }, + ["il"] = { query = "@loop.inner", desc = "TS loop" }, + ["is"] = { query = "@statement.inner", desc = "TS statement" }, + ["as"] = { query = "@statement.outer", desc = "TS statement" }, + ["ad"] = { query = "@comment.outer", desc = "TS comment" }, + ["am"] = { query = "@call.outer", desc = "TS Call" }, + ["im"] = { query = "@call.inner", desc = "TS Call" }, + } + }, - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist + move = { + enable = true, + set_jumps = true, -- whether to set jumps in the jumplist - goto_next_start = { - ["]]"] = "@function.outer", - ["]C"] = "@class.outer", - }, + goto_next_start = { + ["]]"] = "@function.outer", + ["]C"] = "@class.outer", + ["]f"] = "@field.outer", + }, - goto_next_end = { - ["]["] = "@function.outer", - }, - goto_previous_start = { - ["[["] = "@function.outer", - ["[C"] = "@class.outer" - }, - goto_previous_end = { - ["[]"] = "@function.outer", - } + goto_next_end = { + ["]["] = "@function.outer", + }, + goto_previous_start = { + ["[["] = "@function.outer", + ["[C"] = "@class.outer", + ["[f"] = "@field.outer", + }, + goto_previous_end = { + ["[]"] = "@function.outer", + } + }, + + swap = { + enable = true, + swap_next = { + ["~"] = "@parameter.inner" + }, + } }, - swap = { - enable = true, - swap_next = { - ["~"] = "@parameter.inner" - }, + playground = { + enable = true, } - }, - - playground = { - enable = true, - } } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index b1f0c52..8acaafd 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -73,6 +73,7 @@ return { -- Treesitter dev/exploration tool ["nvim-treesitter/playground"] = { opt = true, + cmd = {"TSPlayground*"}, }, ["nvim-treesitter/nvim-treesitter-context"] = { @@ -268,11 +269,16 @@ return { end }, - --[[ ["preservim/vimux"] = { + ["https://git.sp4ke.xyz/sp4ke/vim-vimux"] = { cond = function() return vim.env.TMUX ~= nil + end, + setup = function() + require("core.utils").load_mappings "vimux" + -- vim.g.VimuxDebug = 1 + vim.g.VimuxHeight = 20 end - }, ]] + }, -- Job management (use nvim startjob ) -- Run async commands (make & errors) diff --git a/queries/lua/textobjects.scm b/queries/lua/textobjects.scm deleted file mode 100644 index 2d3bf08..0000000 --- a/queries/lua/textobjects.scm +++ /dev/null @@ -1,3 +0,0 @@ -(field) @field.outer - -(function_declaration) @function.outer