Lualine, blankline updates

This commit is contained in:
Price Hiller 2021-12-16 09:25:09 -06:00
parent cb205751e6
commit 7f16820fb9
4 changed files with 602 additions and 66 deletions

566
lua/plugins/galaxy-line.lua Normal file
View File

@ -0,0 +1,566 @@
local present, gl = pcall(require, "galaxyline")
if not present then
return
end
local gls = gl.section
local fileinfo = require('galaxyline.provider_fileinfo')
local iconz = require("nvim-nonicons")
gl.short_line_list = {'plug', 'fugitive', 'NvimTree', 'vista', 'dbui', 'packer', 'startify', 'coq'}
local icons = {
sep = {
right = "",
left = ""
},
diagnostic = {
-- error = " ",
error = iconz.get("x-circle-fill"),
-- warn = " ",
warn = iconz.get("alert"),
-- info = " "
info = iconz.get("info")
},
diff = {
added = iconz.get("diff-added"),
modified = iconz.get("diff-modified"),
removed = iconz.get("diff-removed"),
-- add = " ",
-- modified = " ",
-- remove = " "
},
git = iconz.get("git-branch"),
line_nr = iconz.get("list-ordered"),
file = {
read_only = '',
-- modified = '⨁ ',
-- modified = '✎',
modified = iconz.get("pencil"),
},
normal = iconz.get("vim-normal-mode"),
insert = iconz.get("vim-insert-mode"),
command = iconz.get("vim-command-mode"),
visual = iconz.get("vim-visual-mode"),
replace = iconz.get("vim-replace-mode"),
selection = iconz.get("vim-select-mode"),
terminal = iconz.get("terminal"),
visual_block = iconz.get("field")
-- terminal = iconz.get("vim-terminal-mode")
}
local colors = {
main = "#ff87ff",
bg_alt = "#0B0C15",
main_bg = "#262626",
lightbg = "#21252B",
commented = "#5c6370",
grey = "#3c4048",
line_bg = "#282c34",
creamydark = "#282c34",
purple = "#252930",
cyan = "#00FFFF",
nord = "#81A1C1",
lightblue = "#81a1c1",
darkblue = "#61afef",
blue = "#61afef",
limegreen = "#bbe67e",
green = "#7ed491",
fg_green = "#65a380",
creamygreen = "#a3be8c",
yellow = "#cccc00",
creamyorange = "#ff8800",
orange = "#FF8800",
bg = "#000B0C15",
fg = "#D8DEE9",
magenta = "#c678dd",
red = "#df8890",
crimsonRed = "#990000",
crimsonRed2 = "#ff4d4d",
greenYel = "#EBCB8B",
white = "#d8dee9",
brown = "#91684a",
teal = '#23D4AC',
blue2 = '#5c5c81',
icon_inactive= '#9896AA'
}
local mode_map = {
-- n = {" NORMAL ", colors.red},
-- i = {" INSERT ", colors.green},
-- c = {" COMMAND ", colors.orange},
-- v = {" VISUAL ", colors.lightblue},
n = {icons.normal .. " NORMAL ", colors.red},
no = {icons.normal .. " NORMAL ", colors.red},
i = {icons.insert .. " INSERT ", colors.green},
ic = {icons.insert .. " INSERT ", colors.green},
c = {icons.command .. " COMMAND ", colors.orange},
ce = {icons.command .. " COMMAND ", colors.orange},
cv = {icons.command .. " COMMAND ", colors.orange},
v = {icons.visual .. " VISUAL ", colors.lightblue},
V = {icons.visual .. " VISUAL ", colors.lightblue},
[""] = {icons.visual .. " VISUAL" .. icons.visual_block .. " ", colors.brown},
R = {icons.replace .. " REPLACE ", colors.crimsonRed2},
['r?'] = {icons.replace .. " REPLACE ", colors.lightblue},
Rv = {icons.replace .. " REPLACE ", colors.crimsonRed2},
r = {icons.replace .. " REPLACE ", colors.blue2},
rm = {icons.replace .. " REPLACE ", colors.blue2},
s = {icons.selection .. " SELECT ", colors.greenYelenYel},
S = {icons.selection .. " SELECT ", colors.greenYelenYel},
[''] = {icons.selection .. " SELECT ", colors.greenYelenYel},
t = {icons.terminal .. " TERMINAL ", colors.magenta},
['!'] = { " ! ", colors.crimsonRed}
}
----------------------------=== Funcs ===--------------------------
local function mode_label() return mode_map[vim.fn.mode()][1] or 'N/A' end
local function mode_hl() return mode_map[vim.fn.mode()][2] or colors.main end
local function highlight1(group, fg, gui)
local cmd = string.format('highlight %s guifg=%s', group, fg)
if gui ~= nil then cmd = cmd .. ' gui=' .. gui end
vim.cmd(cmd)
end
local function highlight2(group, bg, fg, gui)
local cmd = string.format('highlight %s guibg=%s guifg=%s', group, bg, fg)
if gui ~= nil then cmd = cmd .. ' gui=' .. gui end
vim.cmd(cmd)
end
local function get_coc_lsp()
local f, status = pcall(vim.api.nvim_get_var, 'coc_status')
if not f or status == '' then
return nil
else
return status
end
end
local function get_diagnostic_info()
if vim.fn.exists('*coc#rpc#start_server') == 1 then
return get_coc_lsp()
end
return nil
end
local function get_current_func()
local has_func, func_name = pcall(vim.api.nvim_buf_get_var, 0, 'coc_current_function')
if not has_func then return nil end
return func_name
end
local function get_function_info()
if vim.fn.exists('*coc#rpc#start_server') == 1 then
return get_current_func()
end
return ''
end
CocStatus = get_diagnostic_info
CocFunc = get_function_info
local checkwidth = function()
local squeeze_width = vim.fn.winwidth(0) / 2
if squeeze_width > 40 then
return true
end
return false
end
local function file_name(is_active, highlight_group)
local normal_fg = is_active and colors.creamydark or colors.blue2
local modified_fg = is_active and "#ff0000" or "#cc8800"
if vim.bo.modifiable then
if vim.bo.modified then
vim.api.nvim_command('hi ' .. highlight_group .. ' guifg='.. modified_fg .. ' gui=bold')
else
vim.api.nvim_command('hi ' .. highlight_group .. ' guifg='.. normal_fg .. ' gui=NONE')
end
end
local fname = fileinfo.get_current_file_name(icons.file.modified, icons.file.read_only)
if (require("galaxyline.condition").check_git_workspace()) and checkwidth() then
local git_dir = require("galaxyline.provider_vcs").get_git_dir(vim.fn.expand("%:p"))
local current_dir = vim.fn.expand("%:p:h")
if git_dir == current_dir .. "/.git" or git_dir == nil then
return fname
end
local get_path_from_git_root = current_dir:sub(#git_dir - 3)
return get_path_from_git_root .. "/" .. fname
end
return fname
end
local white_space = function() return ' ' end
local function trailing_whitespace()
local trail = vim.fn.search("\\s$", "nw")
if trail ~= 0 then
return ' '
else
return nil
end
end
local TrailingWhiteSpace = trailing_whitespace
local check_git_width = function()
return checkwidth() and require("galaxyline.condition").check_git_workspace()
end
local check_git_terminal_workspace = function()
return not (vim.fn.mode() == 't') and require("galaxyline.condition").check_git_workspace()
end
----------------------------=== Components ===--------------------------
----------------------------=== Left ===--------------------------
local i = 1
gls.left[i] = {
leftRounded = {
provider = function()
return ""
end,
highlight = 'GalaxyViModeInv'
}
}
i = i + 1
gls.left[i] = {
ViMode = {
provider = function()
highlight2('GalaxyViMode', mode_hl(), colors.main_bg, 'bold')
highlight1('GalaxyViModeInv', mode_hl(), 'bold')
return string.format(' %s', mode_label())
end,
}
}
i = i + 1
gls.left[i] = {
WhiteSpace = {
provider = function()
highlight2('SecondGalaxyViMode', mode_hl(), colors.white, 'bold')
end,
separator = "",
separator_highlight = 'SecondGalaxyViMode'
}
}
i = i + 1
gls.left[i] = {
FileIcon = {
provider = "FileIcon",
separator = " ",
separator_highlight = {colors.white, colors.white},
highlight = {colors.creamydark, colors.white}
}
}
i = i + 1
gls.left[i] = {
FileName = {
provider = function() return file_name(true, 'GalaxyFileName') end,
condition = require('galaxyline.condition').buffer_not_empty,
highlight = {colors.creamydark, colors.white},
}
}
i = i + 1
gls.left[i] = {
teech = {
provider = function()
return ""
end,
separator = "",
highlight = {colors.white, colors.main_bg}
}
}
i = i + 1
gls.left[i] = {
Space = {
provider = white_space,
highlight = {colors.bg, colors.main_bg}
}
}
i = i + 1
gls.left[i] = {
DiagnosticError = {
provider = "DiagnosticError",
-- icon = "  ",
icon = " " .. icons.diagnostic.error .. " ",
highlight = {colors.red, colors.main_bg}
}
}
i = i + 1
gls.left[i] = {
Space = {
provider = white_space,
highlight = {colors.bg, colors.main_bg},
condition = function()
return require('galaxyline.provider_diagnostic').get_diagnostic_error() ~= ''
end
}
}
i = i + 1
gls.left[i] = {
DiagnosticWarn = {
provider = "DiagnosticWarn",
-- icon = "  ",
icon = " " .. icons.diagnostic.warn .. " ",
highlight = {colors.yellow, colors.main_bg}
}
}
i = i + 1
gls.left[i] = {
Space = {
provider = white_space,
highlight = {colors.bg, colors.main_bg},
condition = function()
return require('galaxyline.provider_diagnostic').get_diagnostic_warn() ~= ''
end
}
}
i = i + 1
gls.left[i] = {
DiagnosticInfo = {
provider = "DiagnosticInfo",
-- icon = "  ",
icon = " " .. icons.diagnostic.info .. " ",
highlight = {colors.blue, colors.main_bg}
}
}
i = i + 1
gls.left[i] = {
Space = {
provider = white_space,
highlight = {colors.bg, colors.main_bg},
condition = function()
return require('galaxyline.provider_diagnostic').get_diagnostic_info() ~= ''
end
}
}
i = i + 1
gls.left[i] = {
Space = {
provider = white_space,
highlight = {colors.bg, colors.main_bg},
condition = function()
return require('galaxyline.provider_diagnostic').get_diagnostic_info() ~= ''
end
}
}
i = i + 1
gls.left[i] = {
DiagnosticHint = {
provider = "DiagnosticHint",
icon = "",
highlight = {colors.blue, colors.main_bg}
}
}
i = i + 1
gls.left[i] = {
CocStatus = {
provider = function()
if CocStatus() ~= nil then
return ' ' .. CocStatus()
else
return ''
end
end,
separator = ' ',
separator_highlight = {colors.main_bg, colors.main_bg},
highlight = {colors.blue, colors.main_bg},
}
}
i = i + 1
gls.left[i] = {
CocFunc = {
provider = function()
if CocFunc() ~= nil and CocFunc() ~= '' then
return '' .. CocFunc()
else
return ''
end
end,
highlight = {colors.blue, colors.main_bg},
}
}
----------------------------=== Middle ===--------------------------
-- gls.mid[1] = {
-- ShowLspClient = {
-- provider = 'GetLspClient',
-- condition = function ()
-- local tbl = {['dashboard'] = true,['']=true}
-- if tbl[vim.bo.filetype] then
-- return false
-- end
-- return true
-- end,
-- icon = ' LSP:',
-- highlight = {colors.white,colors.bg,'bold'}
-- }
-- }
----------------------------=== Right ===--------------------------
i = 1
gls.right[i] = {
DiffAdd = {
provider = "DiffAdd",
condition = check_git_width,
-- icon = "  ",
icon = " " .. icons.diff.added .. " ",
highlight = {colors.greenYel, colors.main_bg}
}
}
i = i + 1
gls.right[i] = {
DiffModified = {
provider = "DiffModified",
condition = check_git_width,
-- icon = " 柳",
icon = " " .. icons.diff.modified .. " ",
highlight = {colors.creamyorange, colors.main_bg}
}
}
i = i + 1
gls.right[i] = {
DiffRemove = {
provider = "DiffRemove",
condition = check_git_width,
-- icon = "  ",
icon = " " .. icons.diff.removed .. " ",
highlight = {colors.red, colors.main_bg}
}
}
i = i + 1
gls.right[i] = {
right_LeftRounded1 = {
separator = " ",
separator_highlight = {colors.main_bg, colors.main_bg},
provider = function()
return ""
end,
condition = require("galaxyline.condition").check_git_workspace,
highlight = {colors.blue2, colors.main_bg}
}
}
i = i + 1
gls.right[i] = {
GitIcon = {
provider = function()
return icons.git .. ' '
end,
condition = check_git_terminal_workspace,
highlight = {colors.white, colors.blue2}
}
}
i = i + 1
gls.right[i] = {
GitBranch = {
provider = "GitBranch",
condition = require("galaxyline.condition").check_git_workspace,
highlight = {colors.white, colors.blue2},
}
}
i = i + 1
gls.right[i] = {
Space2 = {
provider = white_space,
condition = require("galaxyline.condition").check_git_workspace,
highlight = {colors.blue2, colors.blue2},
}
}
i = i + 1
gls.right[i] = {
right_LeftRounded = {
provider = function()
return ""
end,
highlight = function()
if require("galaxyline.condition").check_git_workspace() then
return {colors.grey, colors.blue2}
else
return {colors.grey, colors.main_bg}
end
end
}
}
i = i + 1
gls.right[i] = {
LineInfo = {
provider = "LineColumn",
icon = icons.line_nr .. " ",
highlight = {colors.white, colors.grey}
}
}
i = i + 1
gls.right[i] = {
PerCent = {
provider = "LinePercent",
separator = "",
separator_highlight = {colors.white, colors.grey},
highlight = {colors.white, colors.grey}
}
}
i = i + 1
gls.right[i] = {
rightRounded = {
provider = function()
return ""
end,
highlight = {colors.grey, colors.bg}
}
}
-- -------------------------Short status line---------------------------------------
local k = 1
gls.short_line_left[k] = {
SFirstElement = {
provider = function() return icons.sep.right end,
highlight = { colors.grey, 'NONE' },
},
}
k = k + 1
gls.short_line_left[k] ={
SFileIcon = {
provider = 'FileIcon',
highlight = { colors.icon_inactive, colors.grey },
},
}
k = k + 1
gls.short_line_left[k] = {
SMyFileName = {
provider = function() return file_name(false, 'GalaxySMyFileName') end,
highlight = {colors.red, colors.grey},
separator = icons.sep.left,
separator_highlight = {colors.grey, colors.main_bg}
}
}

View File

@ -1,21 +1,5 @@
-- indent-blankline character.
require("../user_settings")
local indent_blankline_style = 1
if user_indent_blankline_style then
indent_blankline_style = user_indent_blankline_style
end
indent_blankline_styles = {
"",
"¦",
"",
"",
"",
"|",
}
vim.g.indent_blankline_char = indent_blankline_styles[indent_blankline_style]
vim.g.indent_blankline_char = ""
vim.g.space_char_blankline = " "
-- Disable indent-blankline on these pages.
vim.g.indent_blankline_filetype_exclude = {
@ -27,6 +11,7 @@ vim.g.indent_blankline_filetype_exclude = {
"lspinfo",
"vista_kind"
}
vim.g.indent_blankline_buftype_exclude = { "terminal" }
vim.g.indent_blankline_show_trailing_blankline_indent = false

View File

@ -1,53 +1,41 @@
local present, lualine = pcall(require, "lualine")
if not present then
return
return
end
require("../user_settings")
local lualine_style = 1
if user_lualine_style then
lualine_style = user_lualine_style
end
local lualine_styles = {
{
{ left = " ", right = " " },
{ left = "", right = "" },
},
{
{ left = '', right = ''},
{ left = ' ', right = ' '},
},
{
{ left = '', right = ''},
{ left = ' ', right = ' '},
},
{
{ left = "", right = "" },
{ left = '', right = '' }
},
{
{ left = "", right = ""},
{ left = ' ', right = ' '}
}
}
local left_pad = ""
local right_pad = ""
lualine.setup {
options = {
theme = "auto",
disabled_filetypes = {
"toggleterm",
"NvimTree",
"vista_kind",
"dapui_scopes",
"dapui_breakpoints",
"dapui_stacks",
"dapui_watches",
"dap-repl"
options = {
icons_enabled = true,
theme = "auto",
component_separators = "|",
section_separators = { left = left_pad, right = right_pad},
disabled_filetypes = {},
always_divide_middle = true,
},
section_separators = lualine_styles[lualine_style][1],
component_separators = lualine_styles[lualine_style][2]
},
extensions = { "fugitive" },
sections = {
lualine_a = {
{
"mode",
padding = { left = 3 },
}
},
lualine_b = {"branch", "diff", "diagnostics"},
lualine_c = {"filename"},
lualine_x = {"encoding", "fileformat", "filetype"},
lualine_y = {"progress"},
lualine_z = {"location"}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {"filename"},
lualine_x = {"location"},
lualine_y = {},
lualine_z = {}
},
tabline = {},
extensions = { "fugitive", "fzf" }
}

View File

@ -33,9 +33,6 @@ additional_plugins = {
-- map("n", "<C-t>", ":ToggleTerm<CR>")
-- map("t", "<C-t>", ":ToggleTerm<CR>")
user_lualine_style = 3 -- You can choose between 1, 2, 3, 4 and 5
user_indent_blankline_style = 4 -- You can choose between 1, 2, 3, 4,5 and 6
-- Set theme to be transparent
vim.g.tokyonight_transparent = true