update
This commit is contained in:
parent
962807aa70
commit
76d9c95927
1 changed files with 75 additions and 3 deletions
78
init.lua
78
init.lua
|
|
@ -186,7 +186,78 @@ local TablineFileName = {
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local TablineFileFlags = {
|
||||||
|
{
|
||||||
|
condition = function(self)
|
||||||
|
return vim.api.nvim_buf_get_option(self.bufnr, "modified")
|
||||||
|
end,
|
||||||
|
provider = "[+]",
|
||||||
|
hl = { fg = "green" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
condition = function(self)
|
||||||
|
return not vim.api.nvim_buf_get_option(self.bufnr, "modifiable")
|
||||||
|
or vim.api.nvim_buf_get_option(self.bufnr, "readonly")
|
||||||
|
end,
|
||||||
|
provider = function(self)
|
||||||
|
if vim.api.nvim_buf_get_option(self.bufnr, "buftype") == "terminal" then
|
||||||
|
return " "
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
hl = { fg = "orange" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local FileIcon = {
|
||||||
|
init = function(self)
|
||||||
|
local filename = self.filename
|
||||||
|
local extension = vim.fn.fnamemodify(filename, ":e")
|
||||||
|
self.icon, self.icon_color =
|
||||||
|
require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
|
||||||
|
end,
|
||||||
|
provider = function(self)
|
||||||
|
return self.icon and (self.icon .. " ")
|
||||||
|
end,
|
||||||
|
hl = function(self)
|
||||||
|
return { fg = self.icon_color }
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
local TablineFileNameBlock = {
|
local TablineFileNameBlock = {
|
||||||
|
init = function(self)
|
||||||
|
self.filename = vim.api.nvim_buf_get_name(self.bufnr)
|
||||||
|
end,
|
||||||
|
hl = function(self)
|
||||||
|
if self.is_active then
|
||||||
|
return "TabLineSel"
|
||||||
|
else
|
||||||
|
return "TabLine"
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
on_click = {
|
||||||
|
callback = function(_, minwid, _, _)
|
||||||
|
vim.api.nvim_win_set_buf(0, minwid)
|
||||||
|
end,
|
||||||
|
minwid = function(self)
|
||||||
|
return self.bufnr
|
||||||
|
end,
|
||||||
|
name = "termline_buffer_callback",
|
||||||
|
},
|
||||||
|
FileIcon, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
|
||||||
|
TablineFileName,
|
||||||
|
TablineFileFlags, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
|
||||||
|
}
|
||||||
|
local TablineBufferBlock = utils.surround({ "", "" }, function(self)
|
||||||
|
if self.is_active then
|
||||||
|
return utils.get_highlight("TabLineSel").bg
|
||||||
|
else
|
||||||
|
return utils.get_highlight("TabLine").bg
|
||||||
|
end
|
||||||
|
end, { TablineFileNameBlock })
|
||||||
|
|
||||||
|
local TerminalLineFileNameBlock = {
|
||||||
init = function(self)
|
init = function(self)
|
||||||
self.filename = vim.api.nvim_buf_get_name(self.bufnr)
|
self.filename = vim.api.nvim_buf_get_name(self.bufnr)
|
||||||
end,
|
end,
|
||||||
|
|
@ -208,13 +279,14 @@ local TablineFileNameBlock = {
|
||||||
},
|
},
|
||||||
TablineFileName,
|
TablineFileName,
|
||||||
}
|
}
|
||||||
local TablineBufferBlock = utils.surround({ "", "" }, function(self)
|
local TerminalLineBufferBlock = utils.surround({ "", "" }, function(self)
|
||||||
if self.is_active then
|
if self.is_active then
|
||||||
return utils.get_highlight("TabLineSel").bg
|
return utils.get_highlight("TabLineSel").bg
|
||||||
else
|
else
|
||||||
return utils.get_highlight("TabLine").bg
|
return utils.get_highlight("TabLine").bg
|
||||||
end
|
end
|
||||||
end, { TablineFileNameBlock })
|
end, { TerminalLineFileNameBlock })
|
||||||
|
|
||||||
local function get_terminal_bufs()
|
local function get_terminal_bufs()
|
||||||
return vim.tbl_filter(function(bufnr)
|
return vim.tbl_filter(function(bufnr)
|
||||||
return vim.api.nvim_buf_get_option(bufnr, "buftype") == "terminal"
|
return vim.api.nvim_buf_get_option(bufnr, "buftype") == "terminal"
|
||||||
|
|
@ -235,7 +307,7 @@ local TerminalLine = {
|
||||||
buftype = { "terminal" },
|
buftype = { "terminal" },
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
utils.make_buflist(TablineBufferBlock, nil, nil, get_terminal_bufs),
|
utils.make_buflist(TerminalLineBufferBlock, nil, nil, get_terminal_bufs),
|
||||||
}
|
}
|
||||||
local BufferLine = {
|
local BufferLine = {
|
||||||
utils.make_buflist(TablineBufferBlock, nil, nil, get_non_terminal_bufs),
|
utils.make_buflist(TablineBufferBlock, nil, nil, get_non_terminal_bufs),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue