🪴 a tiny, customizable statusline for neovim
3
fork

Configure Feed

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

fix(statusline): simplify win autocmd

robin cf84788b 1a5b2e68

+20 -6
+19 -2
lua/lylla/statusline.lua
··· 13 13 statusline.wins = {} 14 14 15 15 ---@class lylla.proto 16 - ---@field new fun(self, win): lylla.proto 17 - function statusline:new(win) 16 + ---@field new fun(win: integer): lylla.proto 17 + function statusline.new(win) 18 18 if statusline.wins[win] then 19 19 statusline.wins[win]:close() 20 20 end ··· 28 28 end 29 29 30 30 ---@class lylla.proto 31 + ---@field try_new fun(win: integer?): lylla.proto 32 + function statusline.try_new(win) 33 + win = win or vim.api.nvim_get_current_win() 34 + 35 + if statusline.wins[win] then 36 + return statusline.wins[win] 37 + end 38 + return statusline.new(win) 39 + end 40 + 41 + ---@class lylla.proto 31 42 ---@field init fun(self) 32 43 function statusline:init() 44 + if self.initialized then 45 + return 46 + end 47 + 33 48 local err, err_kind 34 49 ---@diagnostic disable-next-line: assign-type-mismatch 35 50 self.timer, err, err_kind = vim.uv.new_timer() ··· 58 73 end, 59 74 }) 60 75 end 76 + 77 + self.initialized = true 61 78 end 62 79 63 80 ---@class lylla.proto
+1 -4
plugin/lylla.lua
··· 49 49 vim.api.nvim_create_autocmd({ "UIEnter", "WinNew", "WinEnter" }, { 50 50 group = vim.api.nvim_create_augroup("@lylla.win", { clear = true }), 51 51 callback = function() 52 - local win = vim.api.nvim_get_current_win() 53 - if not require("lylla.statusline").wins[win] then 54 - require("lylla.statusline"):new(win):init() 55 - end 52 + require("lylla.statusline").try_new():init() 56 53 end, 57 54 }) 58 55