mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 06:28:35 +00:00
feat(api): add unsilent
to command APIs
This commit is contained in:
@@ -1951,6 +1951,7 @@ nvim_parse_cmd({str}, {opts}) *nvim_parse_cmd()*
|
|||||||
|
|
||||||
• silent: (boolean) |:silent|.
|
• silent: (boolean) |:silent|.
|
||||||
• emsg_silent: (boolean) |:silent!|.
|
• emsg_silent: (boolean) |:silent!|.
|
||||||
|
• unsilent: (boolean) |:unsilent|.
|
||||||
• sandbox: (boolean) |:sandbox|.
|
• sandbox: (boolean) |:sandbox|.
|
||||||
• noautocmd: (boolean) |:noautocmd|.
|
• noautocmd: (boolean) |:noautocmd|.
|
||||||
• browse: (boolean) |:browse|.
|
• browse: (boolean) |:browse|.
|
||||||
|
@@ -54,6 +54,7 @@
|
|||||||
/// - force: (boolean) Whether filter is inverted or not.
|
/// - force: (boolean) Whether filter is inverted or not.
|
||||||
/// - silent: (boolean) |:silent|.
|
/// - silent: (boolean) |:silent|.
|
||||||
/// - emsg_silent: (boolean) |:silent!|.
|
/// - emsg_silent: (boolean) |:silent!|.
|
||||||
|
/// - unsilent: (boolean) |:unsilent|.
|
||||||
/// - sandbox: (boolean) |:sandbox|.
|
/// - sandbox: (boolean) |:sandbox|.
|
||||||
/// - noautocmd: (boolean) |:noautocmd|.
|
/// - noautocmd: (boolean) |:noautocmd|.
|
||||||
/// - browse: (boolean) |:browse|.
|
/// - browse: (boolean) |:browse|.
|
||||||
@@ -232,6 +233,7 @@ Dictionary nvim_parse_cmd(String str, Dictionary opts, Error *err)
|
|||||||
|
|
||||||
PUT(mods, "silent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_SILENT));
|
PUT(mods, "silent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_SILENT));
|
||||||
PUT(mods, "emsg_silent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_ERRSILENT));
|
PUT(mods, "emsg_silent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_ERRSILENT));
|
||||||
|
PUT(mods, "unsilent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_UNSILENT));
|
||||||
PUT(mods, "sandbox", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_SANDBOX));
|
PUT(mods, "sandbox", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_SANDBOX));
|
||||||
PUT(mods, "noautocmd", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_NOAUTOCMD));
|
PUT(mods, "noautocmd", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_NOAUTOCMD));
|
||||||
PUT(mods, "tab", INTEGER_OBJ(cmdinfo.cmdmod.cmod_tab));
|
PUT(mods, "tab", INTEGER_OBJ(cmdinfo.cmdmod.cmod_tab));
|
||||||
@@ -598,6 +600,7 @@ String nvim_cmd(uint64_t channel_id, Dict(cmd) *cmd, Dict(cmd_opts) *opts, Error
|
|||||||
|
|
||||||
OBJ_TO_CMOD_FLAG(CMOD_SILENT, mods.silent, false, "'mods.silent'");
|
OBJ_TO_CMOD_FLAG(CMOD_SILENT, mods.silent, false, "'mods.silent'");
|
||||||
OBJ_TO_CMOD_FLAG(CMOD_ERRSILENT, mods.emsg_silent, false, "'mods.emsg_silent'");
|
OBJ_TO_CMOD_FLAG(CMOD_ERRSILENT, mods.emsg_silent, false, "'mods.emsg_silent'");
|
||||||
|
OBJ_TO_CMOD_FLAG(CMOD_UNSILENT, mods.silent, false, "'mods.unsilent'");
|
||||||
OBJ_TO_CMOD_FLAG(CMOD_SANDBOX, mods.sandbox, false, "'mods.sandbox'");
|
OBJ_TO_CMOD_FLAG(CMOD_SANDBOX, mods.sandbox, false, "'mods.sandbox'");
|
||||||
OBJ_TO_CMOD_FLAG(CMOD_NOAUTOCMD, mods.noautocmd, false, "'mods.noautocmd'");
|
OBJ_TO_CMOD_FLAG(CMOD_NOAUTOCMD, mods.noautocmd, false, "'mods.noautocmd'");
|
||||||
OBJ_TO_CMOD_FLAG(CMOD_BROWSE, mods.browse, false, "'mods.browse'");
|
OBJ_TO_CMOD_FLAG(CMOD_BROWSE, mods.browse, false, "'mods.browse'");
|
||||||
@@ -722,6 +725,10 @@ static void build_cmdline_str(char **cmdlinep, exarg_T *eap, CmdParseInfo *cmdin
|
|||||||
kv_concat(cmdline, "silent ");
|
kv_concat(cmdline, "silent ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cmdinfo->cmdmod.cmod_flags & CMOD_UNSILENT) {
|
||||||
|
kv_concat(cmdline, "unsilent ");
|
||||||
|
}
|
||||||
|
|
||||||
switch (cmdinfo->cmdmod.cmod_split & (WSP_ABOVE | WSP_BELOW | WSP_TOP | WSP_BOT)) {
|
switch (cmdinfo->cmdmod.cmod_split & (WSP_ABOVE | WSP_BELOW | WSP_TOP | WSP_BOT)) {
|
||||||
case WSP_ABOVE:
|
case WSP_ABOVE:
|
||||||
kv_concat(cmdline, "aboveleft ");
|
kv_concat(cmdline, "aboveleft ");
|
||||||
|
@@ -181,6 +181,7 @@ return {
|
|||||||
cmd_mods = {
|
cmd_mods = {
|
||||||
"silent";
|
"silent";
|
||||||
"emsg_silent";
|
"emsg_silent";
|
||||||
|
"unsilent";
|
||||||
"filter";
|
"filter";
|
||||||
"sandbox";
|
"sandbox";
|
||||||
"noautocmd";
|
"noautocmd";
|
||||||
|
@@ -1946,6 +1946,8 @@ int nlua_do_ucmd(ucmd_T *cmd, exarg_T *eap, bool preview)
|
|||||||
lua_setfield(lstate, -2, "silent");
|
lua_setfield(lstate, -2, "silent");
|
||||||
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_ERRSILENT);
|
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_ERRSILENT);
|
||||||
lua_setfield(lstate, -2, "emsg_silent");
|
lua_setfield(lstate, -2, "emsg_silent");
|
||||||
|
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_UNSILENT);
|
||||||
|
lua_setfield(lstate, -2, "unsilent");
|
||||||
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_SANDBOX);
|
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_SANDBOX);
|
||||||
lua_setfield(lstate, -2, "sandbox");
|
lua_setfield(lstate, -2, "sandbox");
|
||||||
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_NOAUTOCMD);
|
lua_pushboolean(lstate, cmdmod.cmod_flags & CMOD_NOAUTOCMD);
|
||||||
|
@@ -136,6 +136,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = false,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
@@ -170,6 +171,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = false,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
@@ -204,6 +206,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = false,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
@@ -221,10 +224,10 @@ describe('nvim_create_user_command', function()
|
|||||||
bang = true,
|
bang = true,
|
||||||
line1 = 10,
|
line1 = 10,
|
||||||
line2 = 10,
|
line2 = 10,
|
||||||
mods = "botright",
|
mods = "confirm unsilent botright",
|
||||||
smods = {
|
smods = {
|
||||||
browse = false,
|
browse = false,
|
||||||
confirm = false,
|
confirm = true,
|
||||||
emsg_silent = false,
|
emsg_silent = false,
|
||||||
hide = false,
|
hide = false,
|
||||||
keepalt = false,
|
keepalt = false,
|
||||||
@@ -238,6 +241,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "botright",
|
split = "botright",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = true,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
@@ -245,7 +249,7 @@ describe('nvim_create_user_command', function()
|
|||||||
count = 10,
|
count = 10,
|
||||||
reg = "",
|
reg = "",
|
||||||
}, exec_lua [=[
|
}, exec_lua [=[
|
||||||
vim.api.nvim_command('botright 10CommandWithLuaCallback! h\tey ')
|
vim.api.nvim_command('unsilent botright confirm 10CommandWithLuaCallback! h\tey ')
|
||||||
return result
|
return result
|
||||||
]=])
|
]=])
|
||||||
|
|
||||||
@@ -272,6 +276,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = false,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
@@ -306,6 +311,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = false,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
@@ -352,6 +358,7 @@ describe('nvim_create_user_command', function()
|
|||||||
silent = false,
|
silent = false,
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
|
unsilent = false,
|
||||||
verbose = -1,
|
verbose = -1,
|
||||||
vertical = false,
|
vertical = false,
|
||||||
},
|
},
|
||||||
|
@@ -3181,10 +3181,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('echo foo', {}))
|
}, meths.parse_cmd('echo foo', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3221,10 +3222,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('4,6s/math.random/math.max/', {}))
|
}, meths.parse_cmd('4,6s/math.random/math.max/', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3261,10 +3263,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('buffer 1', {}))
|
}, meths.parse_cmd('buffer 1', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3301,10 +3304,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('put +', {}))
|
}, meths.parse_cmd('put +', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3341,10 +3345,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('1,3delete * 5', {}))
|
}, meths.parse_cmd('1,3delete * 5', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3381,10 +3386,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
},
|
},
|
||||||
}, meths.parse_cmd('w!', {}))
|
}, meths.parse_cmd('w!', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3421,10 +3427,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = true,
|
silent = true,
|
||||||
vertical = false,
|
|
||||||
split = "topleft",
|
split = "topleft",
|
||||||
tab = 2,
|
tab = 2,
|
||||||
verbose = 15
|
unsilent = false,
|
||||||
|
verbose = 15,
|
||||||
|
vertical = false,
|
||||||
},
|
},
|
||||||
}, meths.parse_cmd('15verbose silent! aboveleft topleft tab filter /foo/ split foo.txt', {}))
|
}, meths.parse_cmd('15verbose silent! aboveleft topleft tab filter /foo/ split foo.txt', {}))
|
||||||
eq({
|
eq({
|
||||||
@@ -3443,7 +3450,7 @@ describe('API', function()
|
|||||||
nextcmd = '',
|
nextcmd = '',
|
||||||
mods = {
|
mods = {
|
||||||
browse = false,
|
browse = false,
|
||||||
confirm = false,
|
confirm = true,
|
||||||
emsg_silent = false,
|
emsg_silent = false,
|
||||||
filter = {
|
filter = {
|
||||||
pattern = "foo",
|
pattern = "foo",
|
||||||
@@ -3459,12 +3466,13 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
split = "botright",
|
||||||
split = "",
|
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = true,
|
||||||
|
verbose = 0,
|
||||||
|
vertical = false,
|
||||||
},
|
},
|
||||||
}, meths.parse_cmd('filter! /foo/ split foo.txt', {}))
|
}, meths.parse_cmd('0verbose unsilent botright confirm filter! /foo/ split foo.txt', {}))
|
||||||
end)
|
end)
|
||||||
it('works with user commands', function()
|
it('works with user commands', function()
|
||||||
command('command -bang -nargs=+ -range -addr=lines MyCommand echo foo')
|
command('command -bang -nargs=+ -range -addr=lines MyCommand echo foo')
|
||||||
@@ -3500,10 +3508,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('4,6MyCommand! test it', {}))
|
}, meths.parse_cmd('4,6MyCommand! test it', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3540,10 +3549,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('argadd a.txt | argadd b.txt', {}))
|
}, meths.parse_cmd('argadd a.txt | argadd b.txt', {}))
|
||||||
end)
|
end)
|
||||||
@@ -3581,10 +3591,11 @@ describe('API', function()
|
|||||||
noswapfile = false,
|
noswapfile = false,
|
||||||
sandbox = false,
|
sandbox = false,
|
||||||
silent = false,
|
silent = false,
|
||||||
vertical = false,
|
|
||||||
split = "",
|
split = "",
|
||||||
tab = 0,
|
tab = 0,
|
||||||
verbose = -1
|
unsilent = false,
|
||||||
|
verbose = -1,
|
||||||
|
vertical = false,
|
||||||
}
|
}
|
||||||
}, meths.parse_cmd('MyCommand test it', {}))
|
}, meths.parse_cmd('MyCommand test it', {}))
|
||||||
end)
|
end)
|
||||||
|
Reference in New Issue
Block a user