aboutsummaryrefslogtreecommitdiffstats
path: root/lua/plugins/lualine.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/plugins/lualine.lua')
-rw-r--r--lua/plugins/lualine.lua317
1 files changed, 211 insertions, 106 deletions
diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua
index b5a4b47..88a0fec 100644
--- a/lua/plugins/lualine.lua
+++ b/lua/plugins/lualine.lua
@@ -1,127 +1,232 @@
return {
- {
- 'nvim-lualine/lualine.nvim',
- dependencies = {
- 'kyazdani42/nvim-web-devicons',
- 'arkav/lualine-lsp-progress',
- },
- opts = function()
- local function winnr() return ' ' .. vim.fn.winnr() end
- local function bufnr() return '󱔗 ' .. vim.fn.bufnr() end
-
- local function lualine_c(filename_opts)
- filename_opts = filename_opts or {}
-
- return {
- {
- 'filetype',
- icon_only = true,
- separator = '',
- padding = { left = 1, right = 0 },
- },
- {
- 'filename',
- file_status = filename_opts.file_status,
- padding = 0,
- path = filename_opts.fullpath and 1,
- separator = '',
- },
- }
+ 'nvim-lualine/lualine.nvim',
+ dependencies = { 'nvim-tree/nvim-web-devicons' },
+ config = function()
+
+ local colors = require("solarized-osaka.colors").setup({ transform = true })
+ local config = require("solarized-osaka.config").options
+
+ local solarized_osaka = {
+ normal = {
+ a = { bg = colors.base03, fg = colors.blue100 },
+ b = { bg = colors.fg, fg = colors.black },
+ c = { bg = colors.bg_statusline, fg = colors.fg },
+ },
+ insert = {
+ a = { bg = colors.base03, fg = colors.green100 },
+ },
+
+ command = {
+ a = { bg = colors.base03, fg = colors.yellow100 },
+ },
+
+ visual = {
+ a = { bg = colors.base03, fg = colors.magenta100 },
+ },
+
+ replace = {
+ a = { bg = colors.base03, fg = colors.red100 },
+ },
+
+ terminal = {
+ a = { bg = colors.base03, fg = colors.orange100 },
+ },
+
+ inactive = {
+ a = { bg = colors.bg_statusline, fg = colors.blue },
+ b = { bg = colors.bg_statusline, fg = colors.fg, gui = "bold" },
+ c = { bg = colors.bg_statusline, fg = colors.fg },
+ }
+ }
+
+ for _, mode in pairs(solarized_osaka) do
+ if config.lualine_bold then
+ mode.a.gui = "bold"
end
+ end
- local sections = {
- lualine_a = { winnr },
- lualine_b = { bufnr },
- lualine_d = lualine_c { fullpath = true },
- lualine_x = { 'searchcount' },
- lualine_y = {
- "diagnostics",
- "diff",
+ -- local empty = require('lualine.component'):extend()
+
+ -- local function jarak()
+ -- return ' '
+ -- end
+
+ local empty = require('lualine.component'):extend()
+ function empty:draw(default_highlight)
+ self.status = ''
+ self.applied_separator = ''
+ self:apply_highlights(default_highlight)
+ self:apply_section_separators()
+ return self.status
+ end
+
+ local function process_sections(sections)
+ for name, section in pairs(sections) do
+ local left = name:sub(9, 10) < 'x'
+ for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
+ table.insert(section, pos * 2, { empty, color = { fg = colors.base03, bg = colors.base03 } })
+ end
+ for id, comp in ipairs(section) do
+ if type(comp) ~= 'table' then
+ comp = { comp }
+ section[id] = comp
+ end
+ -- comp.separator = left and { right = '' } or { left = '' }
+ comp.separator = left and { right = ' ' } or { left = ' '}
+ -- comp.separator = {left = '' } and { right = '' }
+ end
+ end
+ return sections
+ end
+
+ local lazy_status = require("lazy.status")
+
+ require('lualine').setup{
+ options =
+ {
+ theme = solarized_osaka,
+ -- icons_enabled = true,
+ -- component_separators = { left = '>', right = '┇' },
+ -- section_separators = {left = '', right = '' },
+ },
+ sections = process_sections {
+ lualine_a = {
+ { 'mode',
+ -- icons_enabled = true,
+ icon = {
+ " ",
+ color = { fg = colors.base4, bg = colors.base03, gui = 'bold'}
+ },
+ -- color = { fg = colors.base0, bg = colors.green300, gui = 'bold' },
+ -- separator = { left = '', right = '' },
+ -- left_padding = 2, right_padding = 0,
+ },
+ },
+ -- lualine_b = { 'filename', 'branch' },
+ lualine_b = {
{
- require("noice").api.status.mode.get,
- cond = require("noice").api.status.mode.has,
- color = { fg = "#ff9e64" },
+ 'branch',
+ -- separator = { left = '', right = '' },
+ -- left_padding = 0, right_padding = 2,
+ icon = {
+ "",
+ -- align = 'left',
+ color = { fg = colors.orange100, bg = colors.base03, gui = 'bold'},
+ -- -- separator = {left = '', right = ''}
+ },
+ -- left_padding = 0,
+ color = { fg = colors.orange100, bg = colors.base03, gui = 'bold' },
},
{
- require("lazy.status").updates,
- cond = require("lazy.status").has_updates,
- color = { fg = "ff9e64" },
+ 'diff',
+ -- separator = { right = '',left = ''},
+ colored = true,
+ symbols = { added = " " , modified = " " , removed = " " },
+ diff_color = {
+ added = { fg = colors.green300, bg = colors.base03, gui = 'bold' },
+ modified = { fg = colors.yellow300, bg = colors.base03, gui = 'bold' },
+ removed = { fg = colors.red300, bg = colors.base03, gui = 'bold' },
+ }
},
},
- lualine_z = { 'progress' },
- }
-
- return {
- options = {
- disabled_filetypes = { 'pi', 'dbui', 'fugitiveblame' },
- theme = 'catppuccin',
- },
- tabline = {
- lualine_a = {
- 'mode',
- 'selectioncount',
- function() return vim.fn.fnamemodify(vim.fn.getcwd(), ':p:~:h') end,
+ lualine_c = {
+ {
+ 'filename',
+ on_click = function()
+ require('telescope.builtin').find_files()
+ -- print('file name clicked')
+ end,
+ icon = ' ',
+ color = { fg = colors.yellow100, bg = colors.base03, gui = 'bold'},
+ path = 4,
+ file_status = false,
+ -- separator = { right = '┇', left = '┇'},
},
- lualine_b = {
- function()
- local dap_status = require('dap').status()
-
- return dap_status ~= '' and '󰃤 ' .. dap_status or ''
+ },
+ lualine_x = {
+ {
+ 'diagnostics',
+ on_click = function()
+ require('telescope.builtin').diagnostics()
end,
- },
- lualine_x = { 'lsp_progress' },
- lualine_y = { { "branch", icon = "" }, "db_ui#statusline" },
- lualine_z = {
- {
- 'tabs',
- show_modified_status = false,
- use_mode_colors = true,
+ -- separator = { left = '' },
+ sources = { 'nvim_diagnostic'},
+ sections = { 'error', 'warn', 'info', 'hint' },
+
+ diagnostics_color = {
+ error = { fg = colors.red300, bg = colors.base03 , gui = 'bold'}, -- Changes diagnostics' error color.
+ added = { fg = colors.green300, bg = colors.base03, gui = 'bold'},
+ warn = { fg = colors.yellow300, bg = colors.base03, gui = 'bold' }, -- Changes diagnostics' warn color.
+ info = { fg = colors.blue300, bg = colors.base03, gui = 'bold' }, -- Changes diagnostics' info color.
+ hint = { fg = colors.cyan300, bg = colors.base03, gui = 'bold' }, -- Changes diagnostics' hint color.
},
+ symbols = { error = " ", warn = " ", hint = "󰠠 ", info = " " },
+ colored = true, -- Displays diagnostics status in color if set to true.
+ update_in_insert = true, -- Update diagnostics in insert mode. default = false
+ always_visible = false, -- Show diagnostics even if there are none.
},
- },
- sections = sections,
- inactive_sections = sections,
- extensions = {
{
- filetypes = { 'fugitive', 'git' },
- sections = vim.tbl_extend('force', sections, {
- lualine_c = { { 'FugitiveHead', icon = '' } },
- }),
+ lazy_status.updates,
+ cond = lazy_status.has_updates,
+ color = {fg=colors.orange300},
},
{
- filetypes = { 'help', 'man' },
- sections = vim.tbl_extend('force', sections, {
- lualine_c = lualine_c { file_status = false },
- }),
+ -- code from https://github.com/nvim-lualine/lualine.nvim/blob/566b7036f717f3d676362742630518a47f132fff/examples/evil_lualine.lua
+ -- Lsp server name .
+ function()
+ local msg = 'No LSP'
+ local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
+ 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:',
+ -- icon = {' ', color = {bg = colors.base03, fg = colors.red100}},
+ -- separator = { left = '', right = ''},
+ -- separator = { left = ' ', right = ' '},
+ color = { fg = colors.base4, gui = 'bold', bg = colors.base03 },
},
+
{
- filetypes = { 'oil' },
- sections = vim.tbl_extend('force', sections, {
- lualine_c = {
- {
- function()
- local dir = require('oil').get_current_dir()
-
- return dir and vim.fn.fnamemodify(dir, ':p:~:.')
- end,
- icon = {
- '',
- color = {
- fg = require('catppuccin.palettes').get_palette('frappe').maroon,
- },
- },
- },
- },
- }),
- },
+ 'filetype',
+ color = {bg = colors.base03, fg = colors.magenta100, gui = 'bold'}
+ -- separator = { left = '', right = ' ' },
+ }
+ },
+ lualine_y = {
{
- filetypes = { 'qf' },
- sections = vim.tbl_extend('force', sections, {
- lualine_c = { 'w:quickfix_title' },
- }),
+ 'progress', left_padding = 0,
+ color = {bg = colors.base03, fg = colors.cyan100, gui = 'bold'}
+ }
+ },
+ lualine_z = {
+ {
+ -- 'location',
+ -- function()
+ -- return "Ln:%l Col:%c"
+ -- end
+ -- separator = { right = '' }, left_padding = 2 },
+ }
},
},
+ inactive_sections = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_c = {'filename'},
+ lualine_x = {'location'},
+ lualine_y = {},
+ lualine_z = {},
+ },
+ tabline = {},
+ extensions = {},
}
- end,
- },
-}
+ end
+ }