Skip to content

Commit 6a60610

Browse files
committed
add modes in config
1 parent 7ca67f8 commit 6a60610

File tree

3 files changed

+42
-35
lines changed

3 files changed

+42
-35
lines changed

lua/convert/config.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ config.keymaps = {
88
submit = { "<CR>", "<Space>" },
99
}
1010

11+
config.modes = { "color", "size" }
12+
1113
return config

lua/convert/init.lua

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@ local ui = require("convert.ui.open_popup")
33
local config = require("convert.config")
44
local split = require("convert.ui.open_split")
55

6+
local Menu = require("nui.menu")
7+
68

79
local M = {}
810

911
M.setup = function(opts)
1012
if opts.keymaps then
1113
config.keymaps = opts.keymaps
1214
end
15+
if opts.modes then
16+
config.modes = opts.modes
17+
end
1318
end
1419

1520
M.find_next = function()
@@ -52,7 +57,34 @@ M.find_current = function()
5257
end
5358

5459
M.convert_all = function()
55-
split.open_split(config)
60+
local units_menu = {}
61+
62+
if utils.contains(config.modes, "color") then
63+
table.insert(units_menu, Menu.separator('Colors', { char = '-', text_align = 'left' }))
64+
table.insert(units_menu, Menu.item('rgb'))
65+
table.insert(units_menu, Menu.item('hex'))
66+
table.insert(units_menu, Menu.item('hsl'))
67+
end
68+
69+
if utils.contains(config.modes, "size") then
70+
table.insert(units_menu, Menu.separator('Size', { char = '-', text_align = 'left' }))
71+
table.insert(units_menu, Menu.item('px'))
72+
table.insert(units_menu, Menu.item('rem'))
73+
table.insert(units_menu, Menu.item('cm'))
74+
table.insert(units_menu, Menu.item('in'))
75+
table.insert(units_menu, Menu.item('mm'))
76+
table.insert(units_menu, Menu.item('pt'))
77+
table.insert(units_menu, Menu.item('pc'))
78+
end
79+
80+
if utils.contains(config.modes, "number") then
81+
table.insert(units_menu, Menu.separator('Numbers', { char = '-', text_align = 'left' }))
82+
table.insert(units_menu, Menu.item('bin'))
83+
table.insert(units_menu, Menu.item('hexadecimal'))
84+
table.insert(units_menu, Menu.item('octal'))
85+
end
86+
87+
split.open_split(config, units_menu)
5688
end
5789

5890
return M

lua/convert/ui/open_split.lua

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,6 @@ local Layout = require("nui.layout")
22
local Menu = require("nui.menu")
33
local convert_all = require("convert.convert_all")
44

5-
local units_menu = {
6-
Menu.separator('Colors', {
7-
char = '-',
8-
text_align = 'left'
9-
}),
10-
Menu.item('rgb'),
11-
Menu.item('hex'),
12-
Menu.item('hsl'),
13-
Menu.separator('Size', {
14-
char = '-',
15-
text_align = 'left'
16-
}),
17-
Menu.item('px'),
18-
Menu.item('rem'),
19-
Menu.item('cm'),
20-
Menu.item('in'),
21-
Menu.item('mm'),
22-
Menu.item('pt'),
23-
Menu.item('pc'),
24-
Menu.separator('Numbers', {
25-
char = '-',
26-
text_align = 'left'
27-
}),
28-
Menu.item('bin'),
29-
Menu.item('hexadecimal'),
30-
Menu.item('octal'),
31-
}
32-
335
local left_options = {
346
enter = true,
357
border = {
@@ -53,14 +25,15 @@ local right_options = {
5325
},
5426
}
5527

56-
local origin_unit = nil
57-
local to_unit = nil
5828

5929
local M = {}
6030

61-
M.open_split = function(config)
31+
M.open_split = function(config, menu)
32+
local origin_unit = nil
33+
local to_unit = nil
34+
6235
local right_menu = Menu(right_options, {
63-
lines = units_menu,
36+
lines = menu,
6437
keymap = config.keymaps,
6538
on_submit = function(item)
6639
if origin_unit == nil then
@@ -75,7 +48,7 @@ M.open_split = function(config)
7548
})
7649

7750
local left_menu = Menu(left_options, {
78-
lines = units_menu,
51+
lines = menu,
7952
keymap = config.keymaps,
8053
on_change = function(item)
8154
origin_unit = item.text
@@ -90,7 +63,7 @@ M.open_split = function(config)
9063
position = "50%",
9164
size = {
9265
width = 80,
93-
height = #units_menu,
66+
height = #menu,
9467
},
9568
},
9669
Layout.Box({

0 commit comments

Comments
 (0)