mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
fix(fs): use generics for better typing
This commit is contained in:
parent
0101bdaa1a
commit
ae5095cac9
@ -2848,7 +2848,7 @@ vim.fs.basename({file}) *vim.fs.basename()*
|
||||
Return the basename of the given path
|
||||
|
||||
Parameters: ~
|
||||
• {file} (`string`) Path
|
||||
• {file} (`string?`) Path
|
||||
|
||||
Return: ~
|
||||
(`string?`) Basename of {file}
|
||||
@ -2876,7 +2876,7 @@ vim.fs.dirname({file}) *vim.fs.dirname()*
|
||||
Return the parent directory of the given path
|
||||
|
||||
Parameters: ~
|
||||
• {file} (`string`) Path
|
||||
• {file} (`string?`) Path
|
||||
|
||||
Return: ~
|
||||
(`string?`) Parent directory of {file}
|
||||
|
@ -39,8 +39,9 @@ end
|
||||
|
||||
--- Return the parent directory of the given path
|
||||
---
|
||||
---@param file (string) Path
|
||||
---@return string|nil Parent directory of {file}
|
||||
---@generic T : string|nil
|
||||
---@param file T Path
|
||||
---@return T Parent directory of {file}
|
||||
function M.dirname(file)
|
||||
if file == nil then
|
||||
return nil
|
||||
@ -53,6 +54,7 @@ function M.dirname(file)
|
||||
elseif file == '/' or file:match('^/[^/]+$') then
|
||||
return '/'
|
||||
end
|
||||
---@type string
|
||||
local dir = file:match('[/\\]$') and file:sub(1, #file - 1) or file:match('^([/\\]?.+)[/\\]')
|
||||
if iswin and dir:match('^%w:$') then
|
||||
return dir .. '/'
|
||||
@ -62,8 +64,9 @@ end
|
||||
|
||||
--- Return the basename of the given path
|
||||
---
|
||||
---@param file string Path
|
||||
---@return string|nil Basename of {file}
|
||||
---@generic T : string|nil
|
||||
---@param file T Path
|
||||
---@return T Basename of {file}
|
||||
function M.basename(file)
|
||||
if file == nil then
|
||||
return nil
|
||||
|
Loading…
Reference in New Issue
Block a user