summaryrefslogtreecommitdiffstats
path: root/.config/nvim/plugin/50-statusline.lua
blob: 092f08f77030de7f72dbe17b8e993f36628ddcd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
--
-- Status line configuration plugin
--
-- I use lualine, see https://github.com/nvim-lualine/lualine.nvim#configuring-lualine-in-initvim

vim.pack.add({
	"https://github.com/nvim-tree/nvim-web-devicons",
	"https://github.com/nvim-lualine/lualine.nvim",
})
local lualine = require("lualine")

local function spell_status()
	if vim.o.spelllang == "fr" then
		return "+S(fr)"
	elseif vim.o.spelllang == "en_us" then
		return "+S(en)"
	elseif vim.o.spelllang == "en_us,fr" then
		return "+S(en,fr)"
	end
end

local function statuses()
	return (vim.b.autoformat and "+F" or "") .. (vim.o.spell and spell_status() or "")
end

local lualine_sections = {
	lualine_c = { statuses, "filename" },
	lualine_x = { "encoding", "fileformat", "filetype", "lsp_status" },
}

-- Adjust colors when the theme (light/dark) changes
vim.api.nvim_create_autocmd("OptionSet", {
	desc = "Adjust color scheme",
	pattern = "background",
	group = vim.g.dotfiles.augroup,
	callback = function()
		lualine.setup({
			options = { theme = vim.o.background == "light" and "solarized_light" or "solarized_dark" },
			sections = lualine_sections,
		})
	end,
})

lualine.setup({ options = { theme = "solarized_light" }, sections = lualine_sections })

vim.api.nvim_create_user_command("LualineConfig", function()
	vim.notify(vim.inspect(lualine.get_config()))
end, { desc = "Show lualine configuration" })