From 9cd9ca210ecf46579423486fa033bfcac9d1ee90 Mon Sep 17 00:00:00 2001 From: Eric Tiedemann Date: Tue, 28 Nov 2023 12:55:32 -0500 Subject: [PATCH] Add treesj to vscode --- lua/vscode-plugins.lua | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lua/vscode-plugins.lua b/lua/vscode-plugins.lua index 4bbc7726..70b84efc 100644 --- a/lua/vscode-plugins.lua +++ b/lua/vscode-plugins.lua @@ -21,7 +21,8 @@ require('lazy').setup({ { 'kylechui/nvim-surround', opts = { config = {} } - } + }, + 'Wansmer/treesj', }) require('nvim-treesitter.configs').setup({ @@ -38,3 +39,31 @@ require('nvim-treesitter.configs').setup({ } } }) + +local lang_utils = require("treesj.langs.utils") +local options = { + join = { space_in_brackets = false }, + split = { last_separator = true }, +} + +require("treesj").setup( + { + use_default_keymaps = false, + langs = { + python = { + argument_list = lang_utils.set_preset_for_args(options), + assignment = { target_nodes = { "list", "set", "tuple", "dictionary" } }, + call = { target_nodes = { "argument_list" } }, + dictionary = lang_utils.set_preset_for_dict(options), + list = lang_utils.set_preset_for_list(options), + parameters = lang_utils.set_preset_for_args(options), + set = lang_utils.set_preset_for_list(options), + tuple = lang_utils.set_preset_for_list(options), + } + } + } +) + +vim.keymap.set('n', 'ct', ':lua require("treesj").toggle()') +vim.keymap.set('n', 'cs', ':lua require("treesj").split()') +vim.keymap.set('n', 'cj', ':lua require("treesj").join()')