nvim/vim: add lsp to lualine

This commit is contained in:
Marco Thomas
2023-01-11 14:37:38 +01:00
parent 48d0852763
commit e59bb0ba04
3 changed files with 47 additions and 56 deletions

View File

@@ -4,7 +4,7 @@
-- --
-- Rollback possible with packer.nvim -- Rollback possible with packer.nvim
-- Always create a snapshot BEFORE upgrading, so we can rollback if we find sth -- Always create a snapshot BEFORE upgrading, so we can rollback if we find sth
-- `:PackerSnapshot <DATE>-<MONTH DIGIT>-<YEAR>` -- `:PackerSnapshot YEAR-MONTH-DAY
-- Location: ~/.cache/nvim/packer.nvim -- Location: ~/.cache/nvim/packer.nvim
-- This must be loaded first -- This must be loaded first

View File

@@ -1,6 +1,41 @@
-- startup breadcrumbs -- startup breadcrumbs
require 'nvim-navic'.setup({}) require 'nvim-navic'.setup({})
local function showTrailing()
local space = vim.fn.search([[\s\+$]], 'nwc')
return space ~= 0 and "TW:" .. space or ""
end
local function showWordcount()
if vim.bo.filetype == "markdown" or vim.bo.filetype == "tex" then
if vim.fn.wordcount().visual_words == 1 then
return tostring(vim.fn.wordcount().visual_words) .. " word"
elseif not (vim.fn.wordcount().visual_words == nil) then
return tostring(vim.fn.wordcount().visual_words) .. " words"
else
return tostring(vim.fn.wordcount().words) .. " words"
end
else
return ""
end
end
local function showLsp()
local msg = 'No 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
-- used as mode-module -- used as mode-module
-- https://github.com/nvim-lualine/lualine.nvim/issues/614 -- https://github.com/nvim-lualine/lualine.nvim/issues/614
local mode_map = { local mode_map = {
@@ -46,37 +81,9 @@ require('lualine').setup({
-- lualine comes with 'everforest' theme -- lualine comes with 'everforest' theme
theme = 'everforest', theme = 'everforest',
}, },
-- tabline = {
-- lualine_a = {
-- -- function()
-- -- return mode_map[vim.api.nvim_get_mode().mode] or "__"
-- -- end
-- function()
-- return '裡'
-- end,
-- },
-- lualine_b = {
-- {
-- 'tabs',
-- mode = 2,
-- max_length = vim.o.columns / 2
-- }
-- },
-- lualine_c = {
--
-- },
-- lualine_x = {
-- -- 'lsp_progress' -- noice already shows this.. better
-- },
-- lualine_y = {
-- require('nvim-navic').get_location
-- },
-- lualine_z = {
-- }
-- },
-- all sections from left to right
sections = { sections = {
lualine_a = { lualine_a = {
-- mode icon
function() function()
return mode_map[vim.api.nvim_get_mode().mode] or "__" return mode_map[vim.api.nvim_get_mode().mode] or "__"
end end
@@ -88,6 +95,7 @@ require('lualine').setup({
{ {
'filename', 'filename',
path = 1, path = 1,
shorting_target = 80,
}, },
}, },
lualine_x = { lualine_x = {
@@ -104,29 +112,12 @@ require('lualine').setup({
'encoding', 'encoding',
'fileformat', 'fileformat',
'filetype', 'filetype',
{ showLsp }
}, },
lualine_z = { lualine_z = {
-- show wordcount in md and tex file { showWordcount },
-- show precise count when selecting
function()
if vim.bo.filetype == "markdown" or vim.bo.filetype == "tex" then
if vim.fn.wordcount().visual_words == 1 then
return tostring(vim.fn.wordcount().visual_words) .. " word"
elseif not (vim.fn.wordcount().visual_words == nil) then
return tostring(vim.fn.wordcount().visual_words) .. " words"
else
return tostring(vim.fn.wordcount().words) .. " words"
end
else
return ""
end
end,
'location', 'location',
-- Show trailing whitespace { showTrailing },
function()
local space = vim.fn.search([[\s\+$]], 'nwc')
return space ~= 0 and "TW:" .. space or ""
end,
}, },
}, },
}) })

View File

@@ -80,17 +80,17 @@ set-option -g set-titles-string "#H: #W"
set -g status-position top set -g status-position top
set -g status-justify "left" set -g status-justify "left"
set -g status "on" set -g status "on"
set -g message-command-style "fg=#829181,bg=#FDF6E3" set -g message-command-style "fg=#829181,bg=#f4f0d9"
set -g pane-active-border-style "fg=#93b259" set -g pane-active-border-style "fg=#93b259"
set -g status-style "none,bg=#FDF6E3" set -g status-style "none,bg=#f4f0d9"
set -g message-style "fg=#829181,bg=#FDF6E3" set -g message-style "fg=#829181,bg=#f4f0d9"
set -g pane-border-style "fg=#e9e8d2" set -g pane-border-style "fg=#e9e8d2"
set -g status-right-length "100" set -g status-right-length "100"
set -g status-left-length "100" set -g status-left-length "100"
setw -g window-status-activity-style "none,fg=#93b259,bg=#FDF6E3" setw -g window-status-activity-style "none,fg=#93b259,bg=#f4f0d9"
setw -g window-status-style "none,fg=#939f91,bg=#FDF6E3" setw -g window-status-style "none,fg=#939f91,bg=#f4f0d9"
set -g status-left "" set -g status-left ""
# show battery only on laptop # show battery only on laptop
if-shell "[ `hostname` = 'itomori' ]" 'set -g status-right "#[fg=#939f91,bg=#FDF6E3] #H @ #S | #(cat /sys/class/power_supply/BAT1/capacity)% | %H:%M"' 'set -g status-right "#[fg=#939f91,bg=#FFF9E8] #H @ #S | %H:%M"' if-shell "[ `hostname` = 'itomori' ]" 'set -g status-right "#[fg=#939f91,bg=#f4f0d9] #H @ #S | #(cat /sys/class/power_supply/BAT1/capacity)% | %H:%M"' 'set -g status-right "#[fg=#939f91,bg=#f4f0d9] #H @ #S | %H:%M"'
setw -g window-status-format "#I:#W" setw -g window-status-format "#I:#W"
setw -g window-status-current-format "#[fg=#93b259,bold]#I:#W*" setw -g window-status-current-format "#[fg=#93b259,bold]#I:#W*"