Skip to content

Commit

Permalink
refactor: deprecate util.path.is_file #3474
Browse files Browse the repository at this point in the history
  • Loading branch information
dundargoc authored Nov 28, 2024
1 parent e8f9c46 commit 86dcd4d
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 45 deletions.
2 changes: 1 addition & 1 deletion .github/ci/run_sanitizer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if git diff --pickaxe-all -U0 -G "${SEARCH_PATTERN}" "${REF_BRANCH}" "${PR_BRANC
exit 1
fi

SEARCH_PATTERN='(util\.path\.dirname|util\.path\.sanitize|util\.path\.exists)'
SEARCH_PATTERN='(util\.path\.dirname|util\.path\.sanitize|util\.path\.exists|util\.path\.is_file)'

if git diff --pickaxe-all -U0 -G "${SEARCH_PATTERN}" "${REF_BRANCH}" "${PR_BRANCH}" -- '*.lua' | grep -Ev '\.lua$' | grep -E "^\+.*${SEARCH_PATTERN}" ; then
echo
Expand Down
3 changes: 2 additions & 1 deletion lua/lspconfig/configs/fennel_ls.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ return {
filetypes = { 'fennel' },
root_dir = function(dir)
local has_fls_project_cfg = function(path)
return util.path.is_file(vim.fs.joinpath(path, 'flsproject.fnl'))
local fnlpath = vim.fs.joinpath(path, 'flsproject.fnl')
return (vim.loop.fs_stat(fnlpath) or {}).type == 'file'
end
return util.search_ancestors(dir, has_fls_project_cfg) or vim.fs.root(0, '.git')
end,
Expand Down
2 changes: 1 addition & 1 deletion lua/lspconfig/configs/turtle_ls.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ if bin_path == nil then
end
for _, p in ipairs(paths) do
local candidate = util.path.join(p, bin_name)
if util.path.is_file(candidate) then
if (vim.loop.fs_stat(candidate) or {}).type == 'file' then
full_path = candidate
break
end
Expand Down
21 changes: 11 additions & 10 deletions lua/lspconfig/util.lua
Original file line number Diff line number Diff line change
Expand Up @@ -109,13 +109,6 @@ M.path = (function()
return stat and stat.type == 'directory' or false
end

--- @param filename string
--- @return boolean
local function is_file(filename)
local stat = uv.fs_stat(filename)
return stat and stat.type == 'file' or false
end

--- @param path string
--- @return boolean
local function is_fs_root(path)
Expand Down Expand Up @@ -196,7 +189,6 @@ M.path = (function()
return {
escape_wildcards = escape_wildcards,
is_dir = is_dir,
is_file = is_file,
is_absolute = is_absolute,
join = path_join,
traverse_parents = traverse_parents,
Expand Down Expand Up @@ -256,7 +248,8 @@ end
function M.find_git_ancestor(startpath)
return M.search_ancestors(startpath, function(path)
-- Support git directories and git files (worktrees)
if M.path.is_dir(M.path.join(path, '.git')) or M.path.is_file(M.path.join(path, '.git')) then
local gitpath = M.path.join(path, '.git')
if M.path.is_dir(gitpath) or (uv.fs_stat(gitpath) or {}).type == 'file' then
return path
end
end)
Expand All @@ -281,7 +274,8 @@ end

function M.find_package_json_ancestor(startpath)
return M.search_ancestors(startpath, function(path)
if M.path.is_file(M.path.join(path, 'package.json')) then
local jsonpath = M.path.join(path, 'package.json')
if (uv.fs_stat(jsonpath) or {}).type == 'file' then
return path
end
end)
Expand Down Expand Up @@ -391,6 +385,13 @@ end

--- Deprecated functions

--- @deprecated use `(vim.loop.fs_stat(path) or {}).type == 'file'` instead
--- @param path string
--- @return boolean
function M.path.is_file(path)
return (vim.loop.fs_stat(path) or {}).type == 'file'
end

--- @deprecated use `vim.fs.dirname` instead
M.path.dirname = vim.fs.dirname

Expand Down
6 changes: 3 additions & 3 deletions scripts/docgen.lua
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ local function make_section(indentlvl, sep, parts)
end

local function readfile(path)
assert(util.path.is_file(path))
assert((uv.fs_stat(path) or {}).type == 'file')
return io.open(path):read '*a'
end

Expand Down Expand Up @@ -181,10 +181,10 @@ local function make_lsp_sections()
function()
local package_json_name = util.path.join(tempdir, config_name .. '.package.json')
if docs.package_json then
if not util.path.is_file(package_json_name) then
if not ((uv.fs_stat(package_json_name) or {}).type == 'file') then
os.execute(string.format('curl -v -L -o %q %q', package_json_name, docs.package_json))
end
if not util.path.is_file(package_json_name) then
if not ((uv.fs_stat(package_json_name) or {}).type == 'file') then
print(string.format('Failed to download package.json for %q at %q', config_name, docs.package_json))
os.exit(1)
return
Expand Down
29 changes: 0 additions & 29 deletions test/lspconfig_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,35 +49,6 @@ describe('lspconfig', function()
end)
end)

describe('is_file', function()
it('is file', function()
local lspconfig = require 'lspconfig'

-- change the working directory to test directory
vim.api.nvim_command 'cd ./test/test_dir/'
local file = vim.fn.getcwd() .. '/root_marker.txt'

eq(true, lspconfig.util.path.is_file(file))
end)

it('is not present file', function()
local lspconfig = require 'lspconfig'

-- change the working directory to test directory
vim.api.nvim_command 'cd ./test/test_dir/'
local file = vim.fn.getcwd() .. '/not_exists.txt'

eq(true, not lspconfig.util.path.is_file(file))
end)

it('is directory', function()
local lspconfig = require 'lspconfig'

local cwd = vim.fn.getcwd()
eq(true, not lspconfig.util.path.is_file(cwd))
end)
end)

describe('is_absolute', function()
it('is absolute', function()
local lspconfig = require 'lspconfig'
Expand Down

0 comments on commit 86dcd4d

Please sign in to comment.