馃 a tiny, customizable statusline for neovim
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 0e0a110a2ce1add94a1055319aa301712e2d206a 79 lines 2.1 kB view raw
1local M = {} 2 3---@type table<'normal'|'visual'|'command'|'insert', vim.api.keyset.highlight> 4local default_hls = { 5 normal = { link = "MiniIconsAzure" }, 6 visual = { link = "MiniIconsPurple" }, 7 command = { link = "MiniIconsOrange" }, 8 insert = { link = "MiniIconsGrey" }, 9} 10 11---@param cfg? lylla.config 12function M.setup(cfg) 13 cfg = cfg or {} 14 local config = require("lylla.config") 15 config.set(config.override(cfg)) 16end 17 18function M.inithls() 19 local utils = require("lylla.utils") 20 vim.iter(pairs(default_hls)):each(function(mode, defaulthl) 21 local name = utils.get_modehl_name(mode) 22 23 local hl = require("lylla.config").get().hls[mode] 24 if hl then 25 vim.api.nvim_set_hl(0, name, hl) 26 return 27 end 28 29 if vim.tbl_isempty(vim.api.nvim_get_hl(0, { name = name })) then 30 vim.api.nvim_set_hl(0, name, defaulthl) 31 end 32 end) 33end 34 35function M.resethl() 36 local utils = require("lylla.utils") 37 vim.iter(pairs(default_hls)):each(function(mode, _) 38 local name = utils.get_modehl_name(mode) 39 vim.api.nvim_set_hl(0, name, {}) 40 end) 41end 42 43function M.init() 44 vim.api.nvim_create_autocmd("WinNew", { 45 group = vim.api.nvim_create_augroup("lylla:win:new", { clear = true }), 46 callback = function() 47 local win = vim.api.nvim_get_current_win() 48 require("lylla.statusline"):new(win):init() 49 end, 50 }) 51 local win = vim.api.nvim_get_current_win() 52 require("lylla.statusline"):new(win):init() 53 54 vim.api.nvim_create_autocmd("WinClosed", { 55 group = vim.api.nvim_create_augroup("lylla:close", { clear = true }), 56 callback = function(ev) 57 local stl = require("lylla.statusline").wins[ev.match] 58 if stl then 59 stl:close() 60 end 61 end, 62 }) 63 64 vim.api.nvim_create_autocmd("ColorSchemePre", { 65 group = vim.api.nvim_create_augroup("lylla:resethl", { clear = true }), 66 callback = function() 67 M.resethl() 68 end, 69 }) 70 vim.api.nvim_create_autocmd("ColorScheme", { 71 group = vim.api.nvim_create_augroup("lylla:inithls", { clear = true }), 72 callback = function() 73 M.inithls() 74 end, 75 }) 76 M.inithls() 77end 78 79return M