63 lines
1.9 KiB
Lua
63 lines
1.9 KiB
Lua
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' .. string.upper(change.keys), function()
|
|
textcase.visual(change.type)
|
|
end, { noremap = true })
|
|
end
|
|
end
|
|
}
|