summaryrefslogtreecommitdiff
path: root/.config/nvim-old/lua/config/plugins/lualine.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim-old/lua/config/plugins/lualine.lua')
-rw-r--r--.config/nvim-old/lua/config/plugins/lualine.lua218
1 files changed, 218 insertions, 0 deletions
diff --git a/.config/nvim-old/lua/config/plugins/lualine.lua b/.config/nvim-old/lua/config/plugins/lualine.lua
new file mode 100644
index 0000000..466d7b4
--- /dev/null
+++ b/.config/nvim-old/lua/config/plugins/lualine.lua
@@ -0,0 +1,218 @@
+return {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ -- Eviline config for lualine
+ -- Author: shadmansaleh
+ -- Credit: glepnir
+ config = function()
+ local lualine = require("lualine")
+
+ -- Color table for highlights
+ -- stylua: ignore
+ local colors = {
+ bg = '#434c5e',
+ fg = '#d8dee9',
+ yellow = '#ebcb8b',
+ cyan = '#88c0d0',
+ darkblue = '#5e81ac',
+ green = '#a3be8c',
+ orange = '#d08770',
+ violet = '#b48ead',
+ blue = '#81a1c1',
+ red = '#bf616a',
+ }
+
+ local conditions = {
+ buffer_not_empty = function()
+ return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
+ end,
+ hide_in_width = function()
+ return vim.fn.winwidth(0) > 80
+ end,
+ check_git_workspace = function()
+ local filepath = vim.fn.expand("%:p:h")
+ local gitdir = vim.fn.finddir(".git", filepath .. ";")
+ return gitdir and #gitdir > 0 and #gitdir < #filepath
+ end,
+ }
+
+ local config = {
+ options = {
+ component_separators = "",
+ section_separators = "",
+ theme = {
+ normal = { c = { fg = colors.fg, bg = colors.bg } },
+ inactive = { c = { fg = colors.fg, bg = colors.bg } },
+ },
+ },
+ sections = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ lualine_c = {},
+ lualine_x = {},
+ },
+ inactive_sections = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ lualine_c = {},
+ lualine_x = {},
+ },
+ }
+
+ -- Inserts a component in lualine_c at left section
+ local function ins_left(component)
+ table.insert(config.sections.lualine_c, component)
+ end
+
+ -- Inserts a component in lualine_x at right section
+ local function ins_right(component)
+ table.insert(config.sections.lualine_x, component)
+ end
+
+ -- ins_left({
+ -- function()
+ -- return "▊"
+ -- end,
+ -- color = { fg = colors.blue }, -- Sets highlighting of component
+ -- padding = { left = 0, right = 1 }, -- We don't need space before this
+ -- })
+
+ ins_left({
+ -- mode component
+ function()
+ return "  " .. string.upper(vim.fn.mode())
+ end,
+ color = function()
+ -- auto change color according to neovims mode
+ local mode_color = {
+ n = colors.red,
+ i = colors.green,
+ v = colors.blue,
+ [""] = colors.blue,
+ V = colors.blue,
+ c = colors.violet,
+ no = colors.red,
+ s = colors.orange,
+ S = colors.orange,
+ [""] = colors.orange,
+ ic = colors.yellow,
+ R = colors.violet,
+ Rv = colors.violet,
+ cv = colors.red,
+ ce = colors.red,
+ r = colors.cyan,
+ rm = colors.cyan,
+ ["r?"] = colors.cyan,
+ ["!"] = colors.red,
+ t = colors.red,
+ }
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { right = 1 },
+ })
+
+ ins_left({
+ "filename",
+ cond = conditions.buffer_not_empty,
+ color = { fg = colors.green, gui = "bold" },
+ })
+ ins_left({
+ "filesize",
+ cond = conditions.buffer_not_empty,
+ })
+
+ ins_right({ "location" })
+
+ ins_right({ "progress", color = { fg = colors.fg, gui = "bold" } })
+
+ ins_left({
+ "diagnostics",
+ sources = { "nvim_diagnostic" },
+ symbols = { error = " ", warn = " ", info = " " },
+ diagnostics_color = {
+ error = { fg = colors.red },
+ warn = { fg = colors.yellow },
+ info = { fg = colors.cyan },
+ },
+ })
+ --
+ -- -- Insert mid section. You can make any number of sections in neovim :)
+ -- -- for lualine it's any number greater then 2
+ -- ins_left({
+ -- function()
+ -- return "%="
+ -- end,
+ -- })
+ --
+ -- ins_left({
+ -- -- Lsp server name .
+ -- function()
+ -- local msg = "No Active Lsp"
+ -- local buf_ft = vim.api.nvim_get_option_value("filetype", { buf = 0 })
+ -- local clients = vim.lsp.get_clients()
+ -- if next(clients) == nil then
+ -- return msg
+ -- end
+ -- for _, client in ipairs(clients) do
+ -- local filetypes = client.config.filetypes
+ -- if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
+ -- return client.name
+ -- end
+ -- end
+ -- return msg
+ -- end,
+ -- icon = " LSP:",
+ -- color = { fg = "#ffffff", gui = "bold" },
+ -- })
+
+ -- ins_right({
+ -- "filetype",
+ -- color = { fg = colors.fg, gui = "bold" },
+ -- })
+ -- -- Add components to right sections
+ -- ins_right({
+ -- "o:encoding", -- option component same as &encoding in viml
+ -- fmt = string.upper, -- I'm not sure why it's upper case either ;)
+ -- cond = conditions.hide_in_width,
+ -- color = { fg = colors.green, gui = "bold" },
+ -- })
+ --
+ -- ins_right({
+ -- "fileformat",
+ -- fmt = string.upper,
+ -- color = { fg = colors.green, gui = "bold" },
+ -- })
+
+ -- ins_right({
+ -- "branch",
+ -- icon = "",
+ -- color = { fg = colors.violet, gui = "bold" },
+ -- })
+
+ -- ins_right({
+ -- "diff",
+ -- symbols = { added = " ", modified = " ", removed = " " },
+ -- diff_color = {
+ -- added = { fg = colors.green },
+ -- modified = { fg = colors.orange },
+ -- removed = { fg = colors.red },
+ -- },
+ -- cond = conditions.hide_in_width,
+ -- })
+
+ -- ins_right({
+ -- function()
+ -- return "▊"
+ -- end,
+ -- color = { fg = colors.blue },
+ -- padding = { left = 1 },
+ -- })
+
+ lualine.setup(config)
+ end,
+}