diff options
author | Gregory Anders <greg@gpanders.com> | 2022-05-15 19:55:18 -0600 |
---|---|---|
committer | Gregory Anders <greg@gpanders.com> | 2022-05-31 13:04:41 -0600 |
commit | b740709431f5e68dac5238d455f9f86d5a564f36 (patch) | |
tree | 0df53aec490c87343dd7b15addf46f2c694d08c7 | |
parent | c5526a27c3b61acb33b7c3c3fe518d8f1e0b602f (diff) | |
download | rneovim-b740709431f5e68dac5238d455f9f86d5a564f36.tar.gz rneovim-b740709431f5e68dac5238d455f9f86d5a564f36.tar.bz2 rneovim-b740709431f5e68dac5238d455f9f86d5a564f36.zip |
feat(fs): add vim.fs.basename()
-rw-r--r-- | runtime/doc/lua.txt | 9 | ||||
-rw-r--r-- | runtime/lua/vim/fs.lua | 8 | ||||
-rw-r--r-- | test/functional/lua/fs_spec.lua | 13 |
3 files changed, 30 insertions, 0 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index cf6d2e7276..bf30700fc0 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -2151,6 +2151,15 @@ set({mode}, {lhs}, {rhs}, {opts}) *vim.keymap.set()* ============================================================================== Lua module: fs *lua-fs* +basename({file}) *vim.fs.basename()* + Return the basename of the given file or directory + + Parameters: ~ + {file} (string) File or directory + + Return: ~ + (string) Basename of {file} + dirname({file}) *vim.fs.dirname()* Return the parent directory of the given file or directory diff --git a/runtime/lua/vim/fs.lua b/runtime/lua/vim/fs.lua index a3b7321cc9..29ce394a38 100644 --- a/runtime/lua/vim/fs.lua +++ b/runtime/lua/vim/fs.lua @@ -40,4 +40,12 @@ function M.dirname(file) return vim.fn.fnamemodify(file, ':h') end +--- Return the basename of the given file or directory +--- +---@param file (string) File or directory +---@return (string) Basename of {file} +function M.basename(file) + return vim.fn.fnamemodify(file, ':t') +end + return M diff --git a/test/functional/lua/fs_spec.lua b/test/functional/lua/fs_spec.lua index 23ffb1e607..674a7f6957 100644 --- a/test/functional/lua/fs_spec.lua +++ b/test/functional/lua/fs_spec.lua @@ -7,6 +7,10 @@ local mkdir_p = helpers.mkdir_p local rmdir = helpers.rmdir local nvim_dir = helpers.nvim_dir local test_build_dir = helpers.test_build_dir +local iswin = helpers.iswin +local nvim_prog = helpers.nvim_prog + +local nvim_prog_basename = iswin() and 'nvim.exe' or 'nvim' before_each(clear) @@ -39,4 +43,13 @@ describe('vim.fs', function() ]], nvim_dir)) end) end) + + describe('basename()', function() + it('works', function() + eq(nvim_prog_basename, exec_lua([[ + local nvim_prog = ... + return vim.fs.basename(nvim_prog) + ]], nvim_prog)) + end) + end) end) |