refactor: clean code

This commit is contained in:
Olivier Roques
2022-01-27 18:53:47 +01:00
parent 642d6f3314
commit d21bdb488a
10 changed files with 70 additions and 89 deletions

View File

@@ -1,22 +1,21 @@
local fn, vim = vim.fn, vim
local fmt = string.format
local function is_excluded(bufnr, settings)
local excluded = true
excluded = excluded and fn.buflisted(bufnr) == 0
excluded = excluded or fn.getbufvar(bufnr, '&filetype') == 'qf'
excluded = excluded and vim.fn.buflisted(bufnr) == 0
excluded = excluded or vim.fn.getbufvar(bufnr, '&filetype') == 'qf'
if settings.exclude_terminal then
excluded = excluded or fn.getbufvar(bufnr, '&buftype') == 'terminal'
excluded = excluded or vim.fn.getbufvar(bufnr, '&buftype') == 'terminal'
end
return excluded
end
local function get_head(path, tail)
local result = fn.fnamemodify(path, ':p')
local result = vim.fn.fnamemodify(path, ':p')
for i = 1, #vim.split(tail, '/') do
result = fn.fnamemodify(result, ':h')
result = vim.fn.fnamemodify(result, ':h')
end
return fn.fnamemodify(result, ':t')
return vim.fn.fnamemodify(result, ':t')
end
local function unique_tail(buffers)
@@ -35,7 +34,7 @@ local function unique_tail(buffers)
end
for _, buffer in ipairs(buffers) do
if hist[buffer.name] > 1 then
local parent = get_head(fn.bufname(buffer.bufnr), buffer.name)
local parent = get_head(vim.fn.bufname(buffer.bufnr), buffer.name)
buffer.name = fmt('%s/%s', parent, buffer.name)
end
end
@@ -71,16 +70,16 @@ end
local function get_buffers(settings)
local buffers = {}
for nr = 1, fn.bufnr('$') do
for nr = 1, vim.fn.bufnr('$') do
if not is_excluded(nr, settings) then
table.insert(buffers, {
bufnr = nr,
name = fn.fnamemodify(fn.bufname(nr), ':t'),
current = nr == fn.bufnr('%'),
name = vim.fn.fnamemodify(vim.fn.bufname(nr), ':t'),
current = nr == vim.fn.bufnr('%'),
flags = {
modified = fn.getbufvar(nr, '&modified') == 1,
modifiable = fn.getbufvar(nr, '&modifiable') == 1,
readonly = fn.getbufvar(nr, '&readonly') == 1,
modified = vim.fn.getbufvar(nr, '&modified') == 1,
modifiable = vim.fn.getbufvar(nr, '&modifiable') == 1,
readonly = vim.fn.getbufvar(nr, '&readonly') == 1,
},
})
end