summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlistout <listout@protonmail.com>2023-04-02 11:21:33 +0530
committerlistout <listout@protonmail.com>2023-04-02 11:21:33 +0530
commit5668fccf48c9a3faef6498af50ab921a731412d7 (patch)
tree7335f13f26ce3f7b7191755d78c1f6bf55cd3a70
parentce6af2ae41e7a59d590eed4d352c1966e134f395 (diff)
nvim: using lualine
Signed-off-by: listout <listout@protonmail.com>
-rw-r--r--lua/core/appearance.lua1
-rw-r--r--lua/core/colorscheme.lua83
-rw-r--r--lua/plugins/lsp-config.lua1
-rw-r--r--lua/plugins/lualine.lua223
-rw-r--r--lua/plugins/plugins.lua3
5 files changed, 293 insertions, 18 deletions
diff --git a/lua/core/appearance.lua b/lua/core/appearance.lua
index f6c9d3b..ba73502 100644
--- a/lua/core/appearance.lua
+++ b/lua/core/appearance.lua
@@ -49,3 +49,4 @@ vim.cmd [[
highlight Indentifier cterm=none gui=italic
highlight Comment cterm=italic gui=italic
]]
+vim.cmd[[ "syntax sync fromstart" ]]
diff --git a/lua/core/colorscheme.lua b/lua/core/colorscheme.lua
index 80d6f1a..38745c3 100644
--- a/lua/core/colorscheme.lua
+++ b/lua/core/colorscheme.lua
@@ -1,20 +1,67 @@
-- Default options:
-require('kanagawa').setup({
- undercurl = true, -- enable undercurls
- commentStyle = { italic = true },
- functionStyle = {},
- keywordStyle = { italic = true},
- statementStyle = { bold = true },
- typeStyle = {},
- variablebuiltinStyle = { italic = true},
- specialReturn = true, -- special highlight for the return keyword
- specialException = true, -- special highlight for exception handling keywords
- transparent = false, -- do not set background color
- dimInactive = false, -- dim inactive window `:h hl-NormalNC`
- globalStatus = false, -- adjust window separators highlight for laststatus=3
- terminalColors = true, -- define vim.g.terminal_color_{0,17}
- colors = {},
- overrides = {},
- theme = "default" -- Load "default" theme or the experimental "light" theme
+require("catppuccin").setup({
+ flavour = "macchiato", -- latte, frappe, macchiato, mocha
+ background = { -- :h background
+ light = "latte",
+ dark = "macchiato",
+ },
+ transparent_background = false,
+ show_end_of_buffer = false, -- show the '~' characters after the end of buffers
+ term_colors = true,
+ dim_inactive = {
+ enabled = false,
+ shade = "dark",
+ percentage = 0.15,
+ },
+ no_italic = false, -- Force no italic
+ no_bold = false, -- Force no bold
+ styles = {
+ comments = { "italic" },
+ conditionals = { "italic" },
+ loops = {},
+ functions = {},
+ keywords = {},
+ strings = {},
+ variables = {},
+ numbers = {},
+ booleans = {},
+ properties = {},
+ types = {},
+ operators = {},
+ },
+ color_overrides = {},
+ custom_highlights = {},
+ integrations = {
+ cmp = true,
+ gitsigns = true,
+ nvimtree = true,
+ telescope = true,
+ treesitter = true,
+ markdown = true,
+ gitsigns = true,
+ notify = false,
+ mini = false,
+ -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
+ native_lsp = {
+ enabled = true,
+ virtual_text = {
+ errors = { "italic" },
+ hints = { "italic" },
+ warnings = { "italic" },
+ information = { "italic" },
+ },
+ underlines = {
+ errors = { "underline" },
+ hints = { "underline" },
+ warnings = { "underline" },
+ information = { "underline" },
+ },
+ },
+ },
})
-vim.cmd[[colorscheme kanagawa]]
+vim.api.nvim_create_autocmd('ColorScheme', {
+ callback = function ()
+ vim.api.nvim_set_hl(0, '@lsp.type.comment.c', {fg='Grey'})
+ end
+})
+vim.cmd[[colorscheme catppuccin]]
diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua
index 32f7c53..5ba3cac 100644
--- a/lua/plugins/lsp-config.lua
+++ b/lua/plugins/lsp-config.lua
@@ -12,6 +12,7 @@ vim.diagnostic.config({
},
})
+
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua
new file mode 100644
index 0000000..e41bc8c
--- /dev/null
+++ b/lua/plugins/lualine.lua
@@ -0,0 +1,223 @@
+-- Eviline config for lualine
+-- Author: shadmansaleh
+-- Credit: glepnir
+local lualine = require('lualine')
+local C = require("catppuccin.palettes").get_palette()
+local O = require("catppuccin").options
+
+-- Color table for highlights
+-- stylua: ignore
+local colors = {
+ bg = C.surface3,
+ fg = C.blue,
+ 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 ot 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 ''
+ 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.magenta,
+ 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 {
+ -- filesize component
+ --'filesize',
+ --cond = conditions.buffer_not_empty,
+--}
+
+ins_left {
+ 'filename',
+ cond = conditions.buffer_not_empty,
+ color = { fg = colors.magenta, gui = 'bold' },
+}
+
+ins_right { 'location' }
+
+--ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
+
+ins_left {
+ 'diagnostics',
+ sources = { 'nvim_diagnostic' },
+ symbols = { error = ' ', warn = ' ', info = ' ' },
+ diagnostics_color = {
+ color_error = { fg = colors.red },
+ color_warn = { fg = colors.yellow },
+ color_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_buf_get_option(0, 'filetype')
+ local clients = vim.lsp.get_active_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' },
+}
+
+-- 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,
+ 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,
+}
+
+ins_right {
+ function()
+ return '▊'
+ end,
+ color = { fg = colors.blue },
+ padding = { left = 1 },
+}
+
+-- Now don't forget to initialize lualine
+lualine.setup(config)
diff --git a/lua/plugins/plugins.lua b/lua/plugins/plugins.lua
index ec30d0e..e3728e9 100644
--- a/lua/plugins/plugins.lua
+++ b/lua/plugins/plugins.lua
@@ -52,6 +52,7 @@ return packer.startup(function(use)
use {'saadparwaiz1/cmp_luasnip'} -- Snippets source for nvim-cmp
use {'L3MON4D3/LuaSnip'} -- Snippets plugin
use {"rafamadriz/friendly-snippets"}
+ use({"petertriho/cmp-git", requires = "nvim-lua/plenary.nvim"})
-- Show color under hex codes
use {'norcalli/nvim-colorizer.lua'}
@@ -87,6 +88,8 @@ return packer.startup(function(use)
-- Show git signs and stage hunks
use { 'lewis6991/gitsigns.nvim' }
+ use { 'nvim-lualine/lualine.nvim' }
+
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if packer_bootstrap then