Skip to content

Commit

Permalink
refactor: make joinpath more simple (#121)
Browse files Browse the repository at this point in the history
  • Loading branch information
delphinus authored Aug 11, 2023
1 parent 1acb245 commit 9b17c17
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 16 deletions.
4 changes: 2 additions & 2 deletions lua/frecency/async_finder.lua
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ AsyncFinder.new = function(fs, path, entry_maker, initial_results)
if self.closed then
break
end
local fullpath = fs:joinpath(path, name)
local fullpath = fs.joinpath(path, name)
if not seen[fullpath] then
seen[fullpath] = true
index = index + 1
count = count + 1
local entry = entry_maker { id = 0, count = 0, path = fs:joinpath(path, name), score = 0 }
local entry = entry_maker { id = 0, count = 0, path = fs.joinpath(path, name), score = 0 }
if entry then
entry.index = index
table.insert(self.entries, entry)
Expand Down
20 changes: 6 additions & 14 deletions lua/frecency/fs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ local uv = vim.uv or vim.loop

---@class FrecencyFS
---@field os_homedir string
---@field joinpath fun(...: string): string
---@field private config FrecencyFSConfig
---@field private ignore_regexes string[]
local FS = {}
Expand All @@ -26,20 +27,11 @@ FS.new = function(config)
local regex = escaped:gsub("%%%*", ".*"):gsub("%%%?", ".")
return "^" .. regex .. "$"
end, self.config.ignore_patterns)
return self
end

---This is needed for Neovim v0.9.0.
---@param ... string
---@return string
function FS:joinpath(...)
if vim.fs.joinpath then
return vim.fs.joinpath(...)
end
local function join_paths(...)
---This is needed for Neovim v0.9.0.
self.joinpath = vim.fs.joinpath or function(...)
return (table.concat({ ... }, "/"):gsub("//+", "/"))
end
return join_paths(...)
return self
end

---@param path string
Expand All @@ -58,13 +50,13 @@ function FS:scan_dir(path)
vim.fs.dir(path, {
depth = self.config.scan_depth,
skip = function(dirname)
if self:is_ignored(self:joinpath(path, dirname)) then
if self:is_ignored(self.joinpath(path, dirname)) then
return false
end
end,
})
do
local fullpath = self:joinpath(path, name)
local fullpath = self.joinpath(path, name)
if type == "file" and not self:is_ignored(fullpath) and gitignore({ path }, fullpath) then
coroutine.yield(name)
end
Expand Down

0 comments on commit 9b17c17

Please sign in to comment.