fix(init): guard read_file_lines against directory paths (#190)
This commit is contained in:
parent
925ba5cb8a
commit
a1af48833b
2 changed files with 36 additions and 0 deletions
|
|
@ -347,6 +347,9 @@ end
|
||||||
---@param path string
|
---@param path string
|
||||||
---@return string[]?
|
---@return string[]?
|
||||||
local function read_file_lines(path)
|
local function read_file_lines(path)
|
||||||
|
if vim.fn.isdirectory(path) == 1 then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
local f = io.open(path, 'r')
|
local f = io.open(path, 'r')
|
||||||
if not f then
|
if not f then
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -165,6 +165,39 @@ describe('context', function()
|
||||||
assert.is_nil(hunks[1].context_after)
|
assert.is_nil(hunks[1].context_after)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('skips when path is a directory', function()
|
||||||
|
vim.fn.mkdir(vim.fs.joinpath(tmpdir, 'subdir'), 'p')
|
||||||
|
|
||||||
|
local hunks = {
|
||||||
|
make_hunk('subdir', {
|
||||||
|
file_new_start = 1,
|
||||||
|
file_new_count = 1,
|
||||||
|
lines = { '+x' },
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
compute_hunk_context(hunks, 25)
|
||||||
|
|
||||||
|
assert.is_nil(hunks[1].context_before)
|
||||||
|
assert.is_nil(hunks[1].context_after)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('skips when path is a symlink to a directory', function()
|
||||||
|
vim.fn.mkdir(vim.fs.joinpath(tmpdir, 'real_dir'), 'p')
|
||||||
|
vim.uv.fs_symlink(vim.fs.joinpath(tmpdir, 'real_dir'), vim.fs.joinpath(tmpdir, 'link_dir'))
|
||||||
|
|
||||||
|
local hunks = {
|
||||||
|
make_hunk('link_dir', {
|
||||||
|
file_new_start = 1,
|
||||||
|
file_new_count = 1,
|
||||||
|
lines = { '+x' },
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
compute_hunk_context(hunks, 25)
|
||||||
|
|
||||||
|
assert.is_nil(hunks[1].context_before)
|
||||||
|
assert.is_nil(hunks[1].context_after)
|
||||||
|
end)
|
||||||
|
|
||||||
it('skips when file does not exist on disk', function()
|
it('skips when file does not exist on disk', function()
|
||||||
local hunks = {
|
local hunks = {
|
||||||
make_hunk('nonexistent.lua', {
|
make_hunk('nonexistent.lua', {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue