Merge branch 'dev' into thesis

nvim: fix lua LSP name change
        shorten statusline filenames
This commit is contained in:
David JULIEN 2023-02-13 14:58:31 +01:00
commit 378f6b528b
No known key found for this signature in database
GPG Key ID: 1DD6B2BA6DD78810
4 changed files with 168 additions and 121 deletions

View File

@ -24,5 +24,21 @@ return {
"echasnovski/mini.pairs", "echasnovski/mini.pairs",
version = "*", version = "*",
config = function() require("mini.pairs").setup() end, config = function() require("mini.pairs").setup() end,
},
{
"echasnovski/mini.indentscope",
version = "*",
opts = function()
local plugin = require("mini.indentscope")
return {
draw = {
animation = plugin.gen_animation.none()
}
}
end,
config = function(_, opts)
require("mini.indentscope").setup(opts)
end,
} }
} }

View File

@ -9,7 +9,7 @@ _G.lsp_root_dir = vim.fn.stdpath("data") .. "/mason/bin"
local servers = { local servers = {
"clangd", "clangd",
"rust_analyzer", "rust_analyzer",
"sumneko_lua", "lua_ls",
"texlab", "texlab",
} }

View File

@ -12,7 +12,7 @@ local function gen_section(hl_string, items)
out = out .. " " .. item out = out .. " " .. item
end end
end end
if out ~="" then if out ~= "" then
return hl_string .. out .. " " return hl_string .. out .. " "
else else
return out return out
@ -98,6 +98,29 @@ local function get_mode_color(m)
return color[m] return color[m]
end end
-- from https://github.com/nvim-lualine/lualine.nvim/blob/master/lua/lualine/components/filename.lua
local function shorten_path(path, max_len)
local sep = '/'
local len = #path
if len <= max_len then
return path
end
local segments = vim.split(path, sep)
for idx = 1, #segments - 1 do
if len <= max_len then
break
end
local segment = segments[idx]
local shortened = segment:sub(1, vim.startswith(segment, '.') and 2 or 1)
segments[idx] = shortened
len = len - (#segment - #shortened)
end
return table.concat(segments, sep)
end
-- from https://github.com/nvim-lua/lsp-status.nvim/blob/master/lua/lsp-status/diagnostics.lua -- from https://github.com/nvim-lua/lsp-status.nvim/blob/master/lua/lsp-status/diagnostics.lua
local function get_lsp_diagnostics() local function get_lsp_diagnostics()
local result = {} local result = {}
@ -121,32 +144,34 @@ local function get_lsp_diagnostics()
end end
local function process_diagnostics(prefix, n, hl) local function process_diagnostics(prefix, n, hl)
if n > 0 then if n > 0 then
return hl .. prefix .. n return hl .. prefix .. n
else else
return "" return ""
end end
end end
local function spell_check() local function spell_check()
if vim.wo.spell then if vim.wo.spell then
local lang = vim.o.spelllang local lang = vim.o.spelllang
return "[SPELL=" .. lang .. "]" return "[SPELL=" .. lang .. "]"
else else
return "" return ""
end end
end end
local function statusline_focused() local function statusline_focused()
local diagnostics = get_lsp_diagnostics() local file = vim.fn.expand("%:p:~")
local mode = vim.fn.mode() local diagnostics = get_lsp_diagnostics()
local mg = get_mode(mode) local mode = vim.fn.mode()
local accent_color = get_mode_color(mg) local mg = get_mode(mode)
local accent_color = get_mode_color(mg)
local winwidth = vim.fn.winwidth(0)
local left = table.concat { local left = table.concat {
gen_section(accent_color, {get_mode_display_name(mg)}), gen_section(accent_color, { get_mode_display_name(mg) }),
gen_section("%#Middle#", {"%f"}), gen_section("%#Middle#", { shorten_path(file, winwidth / 3) }),
gen_section("%#Bottom#", {"%m", "%r"}), gen_section("%#Bottom#", { "%m", "%r" }),
gen_section( gen_section(
"%#Alert#", "%#Alert#",
{ {
@ -167,8 +192,8 @@ local left = table.concat {
) )
} }
) )
} }
local right = table.concat { local right = table.concat {
gen_section( gen_section(
"%#Bottom#", "%#Bottom#",
{ {
@ -176,25 +201,31 @@ local right = table.concat {
vim.bo.filetype vim.bo.filetype
} }
), ),
gen_section("%#Middle#", {"%03.p%%"}), gen_section("%#Middle#", { "%03.p%%" }),
gen_section("%#Top#", {"-%03.c-"}) gen_section("%#Top#", { "-%03.c-" })
} }
return table.concat { return table.concat {
left, left,
"%#Statusline#", "%#Statusline#",
"%=", "%=",
right right
} }
end end
local function statusline_not_focused() local function statusline_not_focused()
local bufnr = vim.fn.winbufnr(vim.g.statusline_winid)
local file = vim.fn.expand("#" .. bufnr .. ":p:~")
local winwidth = vim.fn.winwidth(0)
return table.concat { return table.concat {
gen_section("%#StatuslineNF#", {"%f", "%m"}), gen_section("%#StatuslineNF#", {
shorten_path(file, winwidth / 3),
"%m"
}),
"%=", "%=",
gen_section("%#StatuslineNF#", {"%03.p%%"}), gen_section("%#StatuslineNF#", { "%03.p%%" }),
gen_section("%#StatuslineNF#", {"-%03.c-"}) gen_section("%#StatuslineNF#", { "-%03.c-" })
} }
end end