@@ -3,13 +3,18 @@ local ui = require("convert.ui.open_popup")
33local config = require (" convert.config" )
44local split = require (" convert.ui.open_split" )
55
6+ local Menu = require (" nui.menu" )
7+
68
79local M = {}
810
911M .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
1318end
1419
1520M .find_next = function ()
@@ -52,7 +57,34 @@ M.find_current = function()
5257end
5358
5459M .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 )
5688end
5789
5890return M
0 commit comments