Skip to content

Commit 500edc6

Browse files
committed
feat: add commands
docs: update
1 parent 758d90b commit 500edc6

4 files changed

Lines changed: 71 additions & 15 deletions

File tree

doc/tags

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
TextTransform.enable() text-transform.txt /*TextTransform.enable()*
22
TextTransform.get_visual_selection_details() text-transform.txt /*TextTransform.get_visual_selection_details()*
3+
TextTransform.init_commands() text-transform.txt /*TextTransform.init_commands()*
34
TextTransform.options text-transform.txt /*TextTransform.options*
45
TextTransform.replace_columns() text-transform.txt /*TextTransform.replace_columns()*
56
TextTransform.replace_selection() text-transform.txt /*TextTransform.replace_selection()*

doc/text-transform.txt

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@
55
Setup TextTransform options and merge them with user provided ones.
66

77

8+
==============================================================================
9+
------------------------------------------------------------------------------
10+
*TextTransform.init_commands()*
11+
`TextTransform.init_commands`()
12+
Initializes user commands
13+
@private
14+
15+
816
==============================================================================
917
------------------------------------------------------------------------------
1018
*TextTransform.options*
@@ -16,21 +24,33 @@ Default values:
1624
TextTransform.options = {
1725
-- Prints useful logs about what event are triggered, and reasons actions are executed.
1826
debug = false,
19-
-- Keymap to trigger the transform.
27+
-- Keymap configurations
2028
keymap = {
21-
-- Normal mode keymap.
22-
["n"] = "<Leader>~",
23-
-- Visual mode keymap.
24-
["v"] = "<Leader>~",
29+
-- Keymap to open the telescope popup. Set to `false` or `nil` to disable keymapping
30+
-- You can always customize your own keymapping manually.
31+
telescope_popup = {
32+
-- Opens the popup in normal mode
33+
["n"] = "<Leader>~",
34+
-- Opens the popup in visual/visual block modes
35+
["v"] = "<Leader>~",
36+
},
2537
},
2638
}
2739
2840
local function init()
2941
local o = TextTransform.options
3042
D.log("config", "Initializing TextTransform with %s", utils.dump(o))
31-
32-
vim.keymap.set("n", o.keymap.n, telescope_popup, { silent = true })
33-
vim.keymap.set("v", o.keymap.v, telescope_popup, { silent = true })
43+
commands.init_commands()
44+
45+
if o.keymap.telescope_popup then
46+
local keys = o.keymap.telescope_popup
47+
if keys.n then
48+
vim.keymap.set("n", keys.n, telescope_popup, { silent = true })
49+
end
50+
if keys.v then
51+
vim.keymap.set("v", keys.v, telescope_popup, { silent = true })
52+
end
53+
end
3454
end
3555
3656
<

lua/text-transform/commands.lua

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
local replacers = require("text-transform.replacers")
2+
local TextTransform = {}
3+
4+
--- Initializes user commands
5+
--- @private
6+
function TextTransform.init_commands()
7+
local map = {
8+
TtCamel = "camel_case",
9+
TtConst = "const_case",
10+
TtDot = "dot_case",
11+
TtKebab = "kebab_case",
12+
TtPascal = "pascal_case",
13+
TtSnake = "snake_case",
14+
TtTitle = "title_case",
15+
}
16+
17+
for cmd, transformer_name in pairs(map) do
18+
vim.api.nvim_create_user_command(cmd, replacers.replace_selection(transformer_name))
19+
end
20+
end
21+
22+
return TextTransform

lua/text-transform/config.lua

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
local telescope_popup = require("text-transform.telescope")
2+
local commands = require("text-transform.commands")
23
local D = require("text-transform.util.debug")
34
local utils = require("text-transform.util")
45
local TextTransform = {}
@@ -10,21 +11,33 @@ local TextTransform = {}
1011
TextTransform.options = {
1112
-- Prints useful logs about what event are triggered, and reasons actions are executed.
1213
debug = false,
13-
-- Keymap to trigger the transform.
14+
-- Keymap configurations
1415
keymap = {
15-
-- Normal mode keymap.
16-
["n"] = "<Leader>~",
17-
-- Visual mode keymap.
18-
["v"] = "<Leader>~",
16+
-- Keymap to open the telescope popup. Set to `false` or `nil` to disable keymapping
17+
-- You can always customize your own keymapping manually.
18+
telescope_popup = {
19+
-- Opens the popup in normal mode
20+
["n"] = "<Leader>~",
21+
-- Opens the popup in visual/visual block modes
22+
["v"] = "<Leader>~",
23+
},
1924
},
2025
}
2126

2227
local function init()
2328
local o = TextTransform.options
2429
D.log("config", "Initializing TextTransform with %s", utils.dump(o))
30+
commands.init_commands()
2531

26-
vim.keymap.set("n", o.keymap.n, telescope_popup, { silent = true })
27-
vim.keymap.set("v", o.keymap.v, telescope_popup, { silent = true })
32+
if o.keymap.telescope_popup then
33+
local keys = o.keymap.telescope_popup
34+
if keys.n then
35+
vim.keymap.set("n", keys.n, telescope_popup, { silent = true })
36+
end
37+
if keys.v then
38+
vim.keymap.set("v", keys.v, telescope_popup, { silent = true })
39+
end
40+
end
2841
end
2942

3043
--- Define your text-transform setup.

0 commit comments

Comments
 (0)