feat(nvim_create_user_command): pass structured modifiers to commands

Adds an `smods` key to `nvim_create_user_command` Lua command callbacks,
which has command modifiers but in a structured format. This removes the
need to manually parse command modifiers. It also reduces friction in
using `nvim_cmd` inside a Lua command callback.
This commit is contained in:
Famiu Haque
2022-05-29 10:42:00 +06:00
parent 081eb72a80
commit 9988d2f214
4 changed files with 194 additions and 0 deletions

View File

@@ -120,6 +120,25 @@ describe('nvim_create_user_command', function()
line1 = 1,
line2 = 1,
mods = "",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "",
tab = 0,
verbose = 0,
vertical = false,
},
range = 0,
count = 2,
reg = "",
@@ -135,6 +154,25 @@ describe('nvim_create_user_command', function()
line1 = 1,
line2 = 1,
mods = "",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "",
tab = 0,
verbose = 0,
vertical = false,
},
range = 0,
count = 2,
reg = "",
@@ -150,6 +188,25 @@ describe('nvim_create_user_command', function()
line1 = 1,
line2 = 1,
mods = "",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "",
tab = 0,
verbose = 0,
vertical = false,
},
range = 0,
count = 2,
reg = "",
@@ -165,6 +222,25 @@ describe('nvim_create_user_command', function()
line1 = 10,
line2 = 10,
mods = "botright",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "botright",
tab = 0,
verbose = 0,
vertical = false,
},
range = 1,
count = 10,
reg = "",
@@ -180,6 +256,25 @@ describe('nvim_create_user_command', function()
line1 = 1,
line2 = 42,
mods = "",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "",
tab = 0,
verbose = 0,
vertical = false,
},
range = 1,
count = 42,
reg = "",
@@ -195,6 +290,25 @@ describe('nvim_create_user_command', function()
line1 = 1,
line2 = 1,
mods = "",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "",
tab = 0,
verbose = 0,
vertical = false,
},
range = 0,
count = 2,
reg = "",
@@ -222,6 +336,25 @@ describe('nvim_create_user_command', function()
line1 = 1,
line2 = 1,
mods = "",
smods = {
browse = false,
confirm = false,
emsg_silent = false,
hide = false,
keepalt = false,
keepjumps = false,
keepmarks = false,
keeppatterns = false,
lockmarks = false,
noautocmd = false,
noswapfile = false,
sandbox = false,
silent = false,
split = "",
tab = 0,
verbose = 0,
vertical = false,
},
range = 0,
count = 2,
reg = "",