This commit is contained in:
Zelong Kuang
2025-10-11 17:34:21 +11:00
parent 9b8a7b07a1
commit a69e7f58ce
2 changed files with 224 additions and 214 deletions

View File

@@ -54,6 +54,7 @@
"nvim-treesitter-context": { "branch": "master", "commit": "41847d3dafb5004464708a3db06b14f12bde548a" }, "nvim-treesitter-context": { "branch": "master", "commit": "41847d3dafb5004464708a3db06b14f12bde548a" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" }, "nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
"persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" }, "persistence.nvim": { "branch": "main", "commit": "51eef57272742b773468949f6bd0503ec3f83874" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"render-markdown.nvim": { "branch": "main", "commit": "d53856423be5ef3c267d26ee261b0981b372f718" }, "render-markdown.nvim": { "branch": "main", "commit": "d53856423be5ef3c267d26ee261b0981b372f718" },

View File

@@ -1,34 +1,34 @@
-- Eviline config for lualine -- Now don't forget to initialize lualine
-- Author: shadmansaleh return {
-- Credit: glepnir {
local lualine = require('lualine') "nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
-- Color table for highlights config = function()
-- stylua: ignore local lualine = require("lualine")
local colors = { local colors = {
bg = '#202328', bg = "#202328",
fg = '#bbc2cf', fg = "#bbc2cf",
yellow = '#ECBE7B', yellow = "#ECBE7B",
cyan = '#008080', cyan = "#008080",
darkblue = '#081633', darkblue = "#081633",
green = '#98be65', green = "#98be65",
orange = '#FF8800', orange = "#FF8800",
violet = '#a9a1e1', violet = "#a9a1e1",
magenta = '#c678dd', magenta = "#c678dd",
blue = '#51afef', blue = "#51afef",
red = '#ec5f67', red = "#ec5f67",
} }
local conditions = { local conditions = {
buffer_not_empty = function() buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1 return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
end, end,
hide_in_width = function() hide_in_width = function()
return vim.fn.winwidth(0) > 80 return vim.fn.winwidth(0) > 80
end, end,
check_git_workspace = function() check_git_workspace = function()
local filepath = vim.fn.expand('%:p:h') local filepath = vim.fn.expand("%:p:h")
local gitdir = vim.fn.finddir('.git', filepath .. ';') local gitdir = vim.fn.finddir(".git", filepath .. ";")
return gitdir and #gitdir > 0 and #gitdir < #filepath return gitdir and #gitdir > 0 and #gitdir < #filepath
end, end,
} }
@@ -37,9 +37,16 @@ local conditions = {
local config = { local config = {
options = { options = {
-- Disable sections and component separators -- Disable sections and component separators
component_separators = '', component_separators = "",
section_separators = '', section_separators = "",
theme = 'auto' theme = 'auto'
-- theme = {
-- -- We are going to use lualine_c an lualine_x as left and
-- -- right section. Both are highlighted by c theme . So we
-- -- are just setting default looks o statusline
-- normal = { c = { fg = colors.fg, bg = colors.bg } },
-- inactive = { c = { fg = colors.fg, bg = colors.bg } },
-- },
}, },
sections = { sections = {
-- these are to remove the defaults -- these are to remove the defaults
@@ -72,18 +79,18 @@ local function ins_right(component)
table.insert(config.sections.lualine_x, component) table.insert(config.sections.lualine_x, component)
end end
ins_left { ins_left({
function() function()
return '' return ""
end, end,
color = { fg = colors.blue }, -- Sets highlighting of component color = { fg = colors.blue }, -- Sets highlighting of component
padding = { left = 0, right = 1 }, -- We don't need space before this padding = { left = 0, right = 1 }, -- We don't need space before this
} })
ins_left { ins_left({
-- mode component -- mode component
function() function()
return '' return ""
end, end,
color = function() color = function()
-- auto change color according to neovims mode -- auto change color according to neovims mode
@@ -91,13 +98,13 @@ ins_left {
n = colors.red, n = colors.red,
i = colors.green, i = colors.green,
v = colors.blue, v = colors.blue,
[''] = colors.blue, [""] = colors.blue,
V = colors.blue, V = colors.blue,
c = colors.magenta, c = colors.magenta,
no = colors.red, no = colors.red,
s = colors.orange, s = colors.orange,
S = colors.orange, S = colors.orange,
[''] = colors.orange, [""] = colors.orange,
ic = colors.yellow, ic = colors.yellow,
R = colors.violet, R = colors.violet,
Rv = colors.violet, Rv = colors.violet,
@@ -105,55 +112,55 @@ ins_left {
ce = colors.red, ce = colors.red,
r = colors.cyan, r = colors.cyan,
rm = colors.cyan, rm = colors.cyan,
['r?'] = colors.cyan, ["r?"] = colors.cyan,
['!'] = colors.red, ["!"] = colors.red,
t = colors.red, t = colors.red,
} }
return { fg = mode_color[vim.fn.mode()] } return { fg = mode_color[vim.fn.mode()] }
end, end,
padding = { right = 1 }, padding = { right = 1 },
} })
ins_left { ins_left({
-- filesize component -- filesize component
'filesize', "filesize",
cond = conditions.buffer_not_empty, cond = conditions.buffer_not_empty,
} })
ins_left { ins_left({
'filename', "filename",
cond = conditions.buffer_not_empty, cond = conditions.buffer_not_empty,
color = { fg = colors.magenta, gui = 'bold' }, color = { fg = colors.magenta, gui = "bold" },
} })
ins_left { 'location' } ins_left({ "location" })
ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } } ins_left({ "progress", color = { fg = colors.fg, gui = "bold" } })
ins_left { ins_left({
'diagnostics', "diagnostics",
sources = { 'nvim_diagnostic' }, sources = { "nvim_diagnostic" },
symbols = { error = '', warn = '', info = '' }, symbols = { error = "", warn = "", info = "" },
diagnostics_color = { diagnostics_color = {
error = { fg = colors.red }, error = { fg = colors.red },
warn = { fg = colors.yellow }, warn = { fg = colors.yellow },
info = { fg = colors.cyan }, info = { fg = colors.cyan },
}, },
} })
-- Insert mid section. You can make any number of sections in neovim :) -- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2 -- for lualine it's any number greater then 2
ins_left { ins_left({
function() function()
return '%=' return "%="
end, end,
} })
ins_left { ins_left({
-- Lsp server name . -- Lsp server name .
function() function()
local msg = 'No Active Lsp' local msg = "No Active Lsp"
local buf_ft = vim.api.nvim_get_option_value('filetype', { buf = 0 }) local buf_ft = vim.api.nvim_get_option_value("filetype", { buf = 0 })
local clients = vim.lsp.get_clients() local clients = vim.lsp.get_clients()
if next(clients) == nil then if next(clients) == nil then
return msg return msg
@@ -166,50 +173,52 @@ ins_left {
end end
return msg return msg
end, end,
icon = ' LSP:', icon = " LSP:",
color = { fg = '#ffffff', gui = 'bold' }, color = { fg = "#ffffff", gui = "bold" },
} })
-- Add components to right sections -- Add components to right sections
ins_right { ins_right({
'o:encoding', -- option component same as &encoding in viml "o:encoding", -- option component same as &encoding in viml
fmt = string.upper, -- I'm not sure why it's upper case either ;) fmt = string.upper, -- I'm not sure why it's upper case either ;)
cond = conditions.hide_in_width, cond = conditions.hide_in_width,
color = { fg = colors.green, gui = 'bold' }, color = { fg = colors.green, gui = "bold" },
} })
ins_right { -- ins_right({
'fileformat', -- "fileformat",
fmt = string.upper, -- fmt = string.upper,
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh -- icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
color = { fg = colors.green, gui = 'bold' }, -- color = { fg = colors.green, gui = "bold" },
} -- })
ins_right { ins_right({
'branch', "branch",
icon = '', icon = "",
color = { fg = colors.violet, gui = 'bold' }, color = { fg = colors.violet, gui = "bold" },
} })
ins_right { ins_right({
'diff', "diff",
-- Is it me or the symbol for modified us really weird -- Is it me or the symbol for modified us really weird
symbols = { added = '', modified = '󰝤 ', removed = '' }, symbols = { added = "", modified = "󰝤 ", removed = "" },
diff_color = { diff_color = {
added = { fg = colors.green }, added = { fg = colors.green },
modified = { fg = colors.orange }, modified = { fg = colors.orange },
removed = { fg = colors.red }, removed = { fg = colors.red },
}, },
cond = conditions.hide_in_width, cond = conditions.hide_in_width,
} })
ins_right { ins_right({
function() function()
return '' return ""
end, end,
color = { fg = colors.blue }, color = { fg = colors.blue },
padding = { left = 1 }, padding = { left = 1 },
} })
-- Now don't forget to initialize lualine
lualine.setup(config) lualine.setup(config)
end,
},
}