mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
lua/executor: Move stricmp to vim “module” and document it
This commit is contained in:
parent
96b1600bc8
commit
93ef823f5e
@ -246,6 +246,11 @@ Lua interfaces Vim through the "vim" module. Currently it only has `api`
|
|||||||
submodule which is a table with all API functions. Descriptions of these
|
submodule which is a table with all API functions. Descriptions of these
|
||||||
functions may be found in |api.txt|.
|
functions may be found in |api.txt|.
|
||||||
|
|
||||||
|
vim.stricmp(a, b) *lua-vim.stricmp*
|
||||||
|
Function used for case-insensitive string comparison. Takes two
|
||||||
|
string arguments and returns 0, 1 or -1 if strings are equal, a is
|
||||||
|
greater then b or a is lesser then b respectively.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. The luaeval function *lua-luaeval* *lua-eval*
|
3. The luaeval function *lua-luaeval* *lua-eval*
|
||||||
*luaeval()*
|
*luaeval()*
|
||||||
|
@ -281,10 +281,6 @@ static int nlua_exec_lua_file(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
|
|||||||
/// Called by lua interpreter itself to initialize state.
|
/// Called by lua interpreter itself to initialize state.
|
||||||
static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
|
static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
|
||||||
{
|
{
|
||||||
// stricmp
|
|
||||||
lua_pushcfunction(lstate, &nlua_stricmp);
|
|
||||||
lua_setglobal(lstate, "stricmp");
|
|
||||||
|
|
||||||
// print
|
// print
|
||||||
lua_pushcfunction(lstate, &nlua_print);
|
lua_pushcfunction(lstate, &nlua_print);
|
||||||
lua_setglobal(lstate, "print");
|
lua_setglobal(lstate, "print");
|
||||||
@ -304,6 +300,10 @@ static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
|
|||||||
nlua_add_api_functions(lstate);
|
nlua_add_api_functions(lstate);
|
||||||
// vim.types, vim.type_idx, vim.val_idx
|
// vim.types, vim.type_idx, vim.val_idx
|
||||||
nlua_init_types(lstate);
|
nlua_init_types(lstate);
|
||||||
|
// stricmp
|
||||||
|
lua_pushcfunction(lstate, &nlua_stricmp);
|
||||||
|
lua_setfield(lstate, -2, "stricmp");
|
||||||
|
|
||||||
lua_setglobal(lstate, "vim");
|
lua_setglobal(lstate, "vim");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ local eq = helpers.eq
|
|||||||
|
|
||||||
before_each(clear)
|
before_each(clear)
|
||||||
|
|
||||||
describe('stricmp', function()
|
describe('vim.stricmp', function()
|
||||||
-- İ: `tolower("İ")` is `i` which has length 1 while `İ` itself has
|
-- İ: `tolower("İ")` is `i` which has length 1 while `İ` itself has
|
||||||
-- length 2 (in bytes).
|
-- length 2 (in bytes).
|
||||||
-- Ⱥ: `tolower("Ⱥ")` is `ⱥ` which has length 2 while `Ⱥ` itself has
|
-- Ⱥ: `tolower("Ⱥ")` is `ⱥ` which has length 2 while `Ⱥ` itself has
|
||||||
@ -16,87 +16,87 @@ describe('stricmp', function()
|
|||||||
-- Neovim comparison (i.e. when there is no strcasecmp) works only on ASCII
|
-- Neovim comparison (i.e. when there is no strcasecmp) works only on ASCII
|
||||||
-- characters.
|
-- characters.
|
||||||
it('works', function()
|
it('works', function()
|
||||||
eq(0, funcs.luaeval('stricmp("a", "A")'))
|
eq(0, funcs.luaeval('vim.stricmp("a", "A")'))
|
||||||
eq(0, funcs.luaeval('stricmp("A", "a")'))
|
eq(0, funcs.luaeval('vim.stricmp("A", "a")'))
|
||||||
eq(0, funcs.luaeval('stricmp("a", "a")'))
|
eq(0, funcs.luaeval('vim.stricmp("a", "a")'))
|
||||||
eq(0, funcs.luaeval('stricmp("A", "A")'))
|
eq(0, funcs.luaeval('vim.stricmp("A", "A")'))
|
||||||
|
|
||||||
eq(0, funcs.luaeval('stricmp("", "")'))
|
eq(0, funcs.luaeval('vim.stricmp("", "")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0", "\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0", "\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0\\0", "\\0\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0\\0", "\\0\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0\\0\\0", "\\0\\0\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0\\0\\0", "\\0\\0\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0\\0\\0A", "\\0\\0\\0a")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0\\0\\0A", "\\0\\0\\0a")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0\\0\\0a", "\\0\\0\\0A")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0\\0\\0a", "\\0\\0\\0A")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0\\0\\0a", "\\0\\0\\0a")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0\\0\\0a", "\\0\\0\\0a")'))
|
||||||
|
|
||||||
eq(0, funcs.luaeval('stricmp("a\\0", "A\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("a\\0", "A\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("A\\0", "a\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("A\\0", "a\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("a\\0", "a\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("a\\0", "a\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("A\\0", "A\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("A\\0", "A\\0")'))
|
||||||
|
|
||||||
eq(0, funcs.luaeval('stricmp("\\0a", "\\0A")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0a", "\\0A")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0A", "\\0a")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0A", "\\0a")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0a", "\\0a")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0a", "\\0a")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0A", "\\0A")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0A", "\\0A")'))
|
||||||
|
|
||||||
eq(0, funcs.luaeval('stricmp("\\0a\\0", "\\0A\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0a\\0", "\\0A\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0A\\0", "\\0a\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0A\\0", "\\0a\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0a\\0", "\\0a\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0a\\0", "\\0a\\0")'))
|
||||||
eq(0, funcs.luaeval('stricmp("\\0A\\0", "\\0A\\0")'))
|
eq(0, funcs.luaeval('vim.stricmp("\\0A\\0", "\\0A\\0")'))
|
||||||
|
|
||||||
eq(-1, funcs.luaeval('stricmp("a", "B")'))
|
eq(-1, funcs.luaeval('vim.stricmp("a", "B")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("A", "b")'))
|
eq(-1, funcs.luaeval('vim.stricmp("A", "b")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("a", "b")'))
|
eq(-1, funcs.luaeval('vim.stricmp("a", "b")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("A", "B")'))
|
eq(-1, funcs.luaeval('vim.stricmp("A", "B")'))
|
||||||
|
|
||||||
eq(-1, funcs.luaeval('stricmp("", "\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("", "\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0", "\\0\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0", "\\0\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0\\0", "\\0\\0\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0\\0", "\\0\\0\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0\\0\\0A", "\\0\\0\\0b")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0\\0\\0A", "\\0\\0\\0b")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0\\0\\0a", "\\0\\0\\0B")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0\\0\\0a", "\\0\\0\\0B")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0\\0\\0a", "\\0\\0\\0b")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0\\0\\0a", "\\0\\0\\0b")'))
|
||||||
|
|
||||||
eq(-1, funcs.luaeval('stricmp("a\\0", "B\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("a\\0", "B\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("A\\0", "b\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("A\\0", "b\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("a\\0", "b\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("a\\0", "b\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("A\\0", "B\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("A\\0", "B\\0")'))
|
||||||
|
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0a", "\\0B")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0a", "\\0B")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0A", "\\0b")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0A", "\\0b")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0a", "\\0b")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0a", "\\0b")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0A", "\\0B")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0A", "\\0B")'))
|
||||||
|
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0a\\0", "\\0B\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0a\\0", "\\0B\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0A\\0", "\\0b\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0A\\0", "\\0b\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0a\\0", "\\0b\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0a\\0", "\\0b\\0")'))
|
||||||
eq(-1, funcs.luaeval('stricmp("\\0A\\0", "\\0B\\0")'))
|
eq(-1, funcs.luaeval('vim.stricmp("\\0A\\0", "\\0B\\0")'))
|
||||||
|
|
||||||
eq(1, funcs.luaeval('stricmp("c", "B")'))
|
eq(1, funcs.luaeval('vim.stricmp("c", "B")'))
|
||||||
eq(1, funcs.luaeval('stricmp("C", "b")'))
|
eq(1, funcs.luaeval('vim.stricmp("C", "b")'))
|
||||||
eq(1, funcs.luaeval('stricmp("c", "b")'))
|
eq(1, funcs.luaeval('vim.stricmp("c", "b")'))
|
||||||
eq(1, funcs.luaeval('stricmp("C", "B")'))
|
eq(1, funcs.luaeval('vim.stricmp("C", "B")'))
|
||||||
|
|
||||||
eq(1, funcs.luaeval('stricmp("\\0", "")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0", "")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0\\0", "\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0\\0", "\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0\\0\\0", "\\0\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0\\0\\0", "\\0\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0\\0\\0\\0", "\\0\\0\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0\\0\\0\\0", "\\0\\0\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0\\0\\0C", "\\0\\0\\0b")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0\\0\\0C", "\\0\\0\\0b")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0\\0\\0c", "\\0\\0\\0B")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0\\0\\0c", "\\0\\0\\0B")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0\\0\\0c", "\\0\\0\\0b")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0\\0\\0c", "\\0\\0\\0b")'))
|
||||||
|
|
||||||
eq(1, funcs.luaeval('stricmp("c\\0", "B\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("c\\0", "B\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("C\\0", "b\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("C\\0", "b\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("c\\0", "b\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("c\\0", "b\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("C\\0", "B\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("C\\0", "B\\0")'))
|
||||||
|
|
||||||
eq(1, funcs.luaeval('stricmp("\\0c", "\\0B")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0c", "\\0B")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0C", "\\0b")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0C", "\\0b")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0c", "\\0b")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0c", "\\0b")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0C", "\\0B")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0C", "\\0B")'))
|
||||||
|
|
||||||
eq(1, funcs.luaeval('stricmp("\\0c\\0", "\\0B\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0c\\0", "\\0B\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0C\\0", "\\0b\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0C\\0", "\\0b\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0c\\0", "\\0b\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0c\\0", "\\0b\\0")'))
|
||||||
eq(1, funcs.luaeval('stricmp("\\0C\\0", "\\0B\\0")'))
|
eq(1, funcs.luaeval('vim.stricmp("\\0C\\0", "\\0B\\0")'))
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
Loading…
Reference in New Issue
Block a user