Fix Status bar
This commit is contained in:
parent
acb1c692bf
commit
adb2953f8c
2 changed files with 72 additions and 1 deletions
|
@ -5,9 +5,11 @@ return {
|
||||||
"nvim-tree/nvim-web-devicons",
|
"nvim-tree/nvim-web-devicons",
|
||||||
"nvimdev/lspsaga.nvim",
|
"nvimdev/lspsaga.nvim",
|
||||||
},
|
},
|
||||||
|
after = "rcarriga/nvim-dap-ui",
|
||||||
config = function()
|
config = function()
|
||||||
-- Setup --
|
-- Setup --
|
||||||
local lspsaga_breadcrumbs = require("lspsaga.symbol.winbar").get_bar
|
local lspsaga_breadcrumbs = require("lspsaga.symbol.winbar").get_bar
|
||||||
|
|
||||||
require("lualine").setup({
|
require("lualine").setup({
|
||||||
options = {
|
options = {
|
||||||
component_separators = { left = "", right = "" },
|
component_separators = { left = "", right = "" },
|
||||||
|
@ -16,6 +18,15 @@ return {
|
||||||
"neo-tree",
|
"neo-tree",
|
||||||
"fugitive",
|
"fugitive",
|
||||||
"help",
|
"help",
|
||||||
|
statusline = {
|
||||||
|
"dap-repl",
|
||||||
|
"dapui_console",
|
||||||
|
"dapui_console",
|
||||||
|
"dapui_watches",
|
||||||
|
"dapui_stacks",
|
||||||
|
"dapui_breakpoints",
|
||||||
|
"dapui_scopes",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
ignore_focus = {},
|
ignore_focus = {},
|
||||||
always_divide_middle = true,
|
always_divide_middle = true,
|
||||||
|
@ -49,7 +60,9 @@ return {
|
||||||
inactive_winbar = {
|
inactive_winbar = {
|
||||||
lualine_a = { "filename" },
|
lualine_a = { "filename" },
|
||||||
},
|
},
|
||||||
extensions = {},
|
extensions = {
|
||||||
|
require("plugins.temp.status_bar_plugin"),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
58
.config/nvim/lua/plugins/temp/status_bar_plugin.lua
Normal file
58
.config/nvim/lua/plugins/temp/status_bar_plugin.lua
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.filetypes = {
|
||||||
|
"dap-repl",
|
||||||
|
"dapui_console",
|
||||||
|
"dapui_console",
|
||||||
|
"dapui_watches",
|
||||||
|
"dapui_stacks",
|
||||||
|
"dapui_breakpoints",
|
||||||
|
"dapui_scopes",
|
||||||
|
}
|
||||||
|
|
||||||
|
local function merge_colors(foreground, background)
|
||||||
|
local new_name = foreground .. background
|
||||||
|
|
||||||
|
local hl_fg = vim.api.nvim_get_hl(0, { name = foreground })
|
||||||
|
local hl_bg = vim.api.nvim_get_hl(0, { name = background })
|
||||||
|
|
||||||
|
local fg = string.format("#%06x", hl_fg.fg and hl_fg.fg or 0)
|
||||||
|
local bg = string.format("#%06x", hl_bg.bg and hl_bg.bg or 0)
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, new_name, { fg = fg, bg = bg })
|
||||||
|
return new_name
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_dap_repl_winbar(active)
|
||||||
|
local get_mode = require("lualine.highlight").get_mode_suffix
|
||||||
|
|
||||||
|
return function()
|
||||||
|
local filetype = vim.bo.filetype
|
||||||
|
local disabled_filetypes = { "dap-repl" }
|
||||||
|
|
||||||
|
if not vim.tbl_contains(disabled_filetypes, filetype) then
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
|
||||||
|
local background_color = string.format("lualine_b" .. "%s", active and get_mode() or "_inactive")
|
||||||
|
|
||||||
|
local controls_string = "%#" .. background_color .. "#"
|
||||||
|
for element in require("dapui.controls").controls():gmatch("%S+") do
|
||||||
|
local color, action = string.match(element, "%%#(.*)#(%%.*)%%#0#")
|
||||||
|
controls_string = controls_string .. " %#" .. merge_colors(color, background_color) .. "#" .. action
|
||||||
|
end
|
||||||
|
return controls_string
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
M.winbar = {
|
||||||
|
lualine_a = { { "filename", file_status = false } },
|
||||||
|
lualine_b = { get_dap_repl_winbar(true) },
|
||||||
|
}
|
||||||
|
|
||||||
|
M.inactive_winbar = {
|
||||||
|
lualine_a = { { "filename", file_status = false } },
|
||||||
|
lualine_b = { get_dap_repl_winbar(false) },
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
Loading…
Reference in a new issue