98 lines
3.3 KiB
Lua
98 lines
3.3 KiB
Lua
local lualine = require("lualine")
|
|
|
|
local IS_WIDE = function() return vim.o.columns > 150 end
|
|
|
|
lualine.setup({
|
|
sections = {
|
|
--+-------------------------------------------------+--
|
|
--| A | B | C X | Y | Z |--
|
|
--+-------------------------------------------------+--
|
|
lualine_a = {
|
|
{
|
|
"mode",
|
|
fmt = function(m) return IS_WIDE() and m or m:sub(1, 1) end,
|
|
},
|
|
},
|
|
lualine_b = { "branch" },
|
|
lualine_c = {
|
|
{
|
|
"diff",
|
|
symbols = {
|
|
modified = "~",
|
|
removed = "-",
|
|
added = "+",
|
|
},
|
|
},
|
|
-- A hack to change the path type if the window gets too short. Lualine doesn't accept a function for the
|
|
-- `path` option, so just swap out the entire component
|
|
{
|
|
"filename",
|
|
path = 1, -- full file path
|
|
color = { fg = "#ffffff", gui = "bold" },
|
|
shorting_target = 30,
|
|
cond = IS_WIDE,
|
|
},
|
|
{
|
|
"filename",
|
|
path = 0, -- just the filename
|
|
color = { fg = "#ffffff", gui = "bold" },
|
|
shorting_target = 30,
|
|
cond = function() return not IS_WIDE() end,
|
|
},
|
|
},
|
|
lualine_x = {
|
|
{
|
|
function()
|
|
local msg = "No Active Lsp"
|
|
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
|
|
local clients = vim.lsp.get_active_clients()
|
|
if next(clients) == nil then return msg end
|
|
|
|
local client_names = {}
|
|
local active_client = false
|
|
for _, client in ipairs(clients) do
|
|
local filetypes = client.config.filetypes
|
|
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
|
active_client = true
|
|
if not client_names[client.name] then client_names[client.name] = 1 end
|
|
end
|
|
end
|
|
|
|
if active_client then
|
|
local names = {}
|
|
for name, _ in pairs(client_names) do
|
|
table.insert(names, name)
|
|
end
|
|
return table.concat(names, ", ")
|
|
end
|
|
|
|
return "No Active Lsp"
|
|
end,
|
|
icon = " LSP:",
|
|
color = { gui = "bold" },
|
|
cond = IS_WIDE,
|
|
},
|
|
{
|
|
"diagnostics",
|
|
sources = { "nvim_diagnostic" },
|
|
},
|
|
},
|
|
lualine_y = { "filetype" },
|
|
lualine_z = { "location" },
|
|
},
|
|
tabline = {},
|
|
options = {
|
|
section_separators = { left = "", right = "" },
|
|
component_separators = { left = "", right = "" },
|
|
theme = "tokyonight",
|
|
disabled_filetypes = { "aerial" },
|
|
globalstatus = true,
|
|
},
|
|
extensions = {
|
|
"aerial",
|
|
"fugitive",
|
|
"nvim-dap-ui",
|
|
"nvim-tree",
|
|
"quickfix",
|
|
},
|
|
})
|