From cd767afa3235459effe9f905005918c9319db96a Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Tue, 5 Mar 2024 00:08:16 +0000 Subject: [PATCH] Abolished vim-abolish with text-change.nvim --- lua/plugins/text-case.lua | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 lua/plugins/text-case.lua diff --git a/lua/plugins/text-case.lua b/lua/plugins/text-case.lua new file mode 100644 index 0000000..fd5203e --- /dev/null +++ b/lua/plugins/text-case.lua @@ -0,0 +1,62 @@ +return { + 'johmsalas/text-case.nvim', + config = function() + local textcase = require('textcase') + require("telescope").load_extension("textcase") + textcase.setup({ + default_keymappings_enabled = false, + enable_methods = { + 'to_upper_case', + 'to_lower_case', + 'to_snake_case', + 'to_dash_case', + 'to_title_dash_case', + 'to_constant_case', + 'to_dot_case', + 'to_phrase_case', + 'to_camel_case', + 'to_pascal_case', + 'to_title_case', + 'to_path_case', + 'to_upper_phrase_case', + 'to_lower_phrase_case', + }, + }) + + local changes = { + -- 'to_upper_case', + -- 'to_lower_case', + { type = 'to_snake_case', keys = 's', lsp = true }, + { type = 'to_dash_case', keys = '-', lsp = false }, + { type = 'to_title_dash_case', keys = 't-', lsp = false }, + { type = 'to_constant_case', keys = 'u', lsp = true }, + { type = 'to_dot_case', keys = '.', lsp = false }, + -- 'to_phrase_case', + { type = 'to_camel_case', keys = 'c', lsp = true }, + { type = 'to_pascal_case', keys = 'm', lsp = true }, + -- 'to_title_case', + { type = 'to_path_case', keys = '/', lsp = false }, + -- 'to_upper_phrase_case', + -- 'to_lower_phrase_case', + } + + for _, change in ipairs(changes) do + -- normal mode current word + vim.keymap.set('n', 'cr' .. change.keys, function() + textcase.current_word(change.type) + end, { noremap = true }) + + -- normal mode lsp rename + if change.lsp then + vim.keymap.set('n', 'cr' .. string.upper(change.keys), function() + textcase.lsp_rename(change.type) + end, { noremap = true }) + end + + -- visual mode selection + vim.keymap.set('v', 'T' .. change.keys, function() + textcase.visual(change.type) + end, { noremap = true }) + end + end +}