diff options
Diffstat (limited to 'private_dot_config/nvim/lua')
| -rw-r--r-- | private_dot_config/nvim/lua/evil_lualine.lua | 152 | ||||
| -rw-r--r-- | private_dot_config/nvim/lua/lsp_conf.lua | 12 | 
2 files changed, 158 insertions, 6 deletions
diff --git a/private_dot_config/nvim/lua/evil_lualine.lua b/private_dot_config/nvim/lua/evil_lualine.lua new file mode 100644 index 0000000..b38e283 --- /dev/null +++ b/private_dot_config/nvim/lua/evil_lualine.lua @@ -0,0 +1,152 @@ +-- Eviline config for lualine +-- Author: shadmansaleh +-- Credit: glepnir +local lualine = require('lualine') + +-- Color table for highlights +-- stylua: ignore +local colors = { +  bg       = '#202328', +  fg       = '#bbc2cf', +  yellow   = '#ECBE7B', +  cyan     = '#008080', +  darkblue = '#081633', +  green    = '#98be65', +  orange   = '#FF8800', +  violet   = '#a9a1e1', +  magenta  = '#c678dd', +  blue     = '#51afef', +  red      = '#ec5f67', +} + +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, +} + +-- Config +local config = { +  options = { +    -- Disable sections and component separators +    component_separators = '', +    section_separators = '', +    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 = { +    -- these are to remove the defaults +    lualine_a = {}, +    lualine_b = {}, +    lualine_y = {}, +    lualine_z = {}, +    -- These will be filled later +    lualine_c = {}, +    lualine_x = {}, +  }, +  inactive_sections = { +    -- these are to remove the defaults +    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 { +  'filename', +  cond = conditions.buffer_not_empty, +  path = 3, +  color = { fg = colors.magenta, gui = 'bold' }, +} + +ins_left { +  -- filesize component +  'filesize', +  cond = conditions.buffer_not_empty, +} + +ins_left { 'location' } + +ins_left { '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, +} + +-- Add components to right sections +ins_right { 'lsp_status' } + +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, +  icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh +  color = { fg = colors.green, gui = 'bold' }, +} + +ins_right { +  'branch', +  icon = '', +  color = { fg = colors.violet, gui = 'bold' }, +} + +ins_right { +  'diff', +  -- Is it me or the symbol for modified us really weird +  symbols = { added = ' ', modified = ' ', removed = ' ' }, +  diff_color = { +    added = { fg = colors.green }, +    modified = { fg = colors.orange }, +    removed = { fg = colors.red }, +  }, +  cond = conditions.hide_in_width, +} + +-- Now don't forget to initialize lualine +lualine.setup(config) diff --git a/private_dot_config/nvim/lua/lsp_conf.lua b/private_dot_config/nvim/lua/lsp_conf.lua index 1aeefbf..60ee126 100644 --- a/private_dot_config/nvim/lua/lsp_conf.lua +++ b/private_dot_config/nvim/lua/lsp_conf.lua @@ -4,12 +4,12 @@ local trouble = require("trouble")  local capabilities = require("cmp_nvim_lsp").default_capabilities()  -- Redefine LSP diagnostic signs -local signs = { Error = 'E', Warning = 'W', Hint = 'H', Information = 'I' } - -for type, icon in pairs(signs) do -  local hl = 'DiagnosticSign' .. type -  vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) -end +-- local signs = { Error = 'E', Warning = 'W', Hint = 'H', Information = 'I' } +-- +-- for type, icon in pairs(signs) do +--   local hl = 'DiagnosticSign' .. type +--   vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) +-- end  local opts = { noremap=true, silent=true }  |