refactor: use BufWinEnter event instead of BufEnter

This commit is contained in:
kevinhwang91 2023-10-30 12:09:10 +08:00
parent ebbab711d9
commit 1d7ef9571c
3 changed files with 6 additions and 4 deletions

View file

@ -38,7 +38,8 @@ function BufferManager:initialize()
self.buffers = {}
self.bufDetachSet = {}
end))
event:on('BufEnter', function(bufnr)
---@diagnostic disable-next-line: unused-local
event:on('BufWinEnter', function(bufnr, winid)
attach(self, bufnr or api.nvim_get_current_buf())
end, self.disposables)
event:on('BufDetach', function(bufnr)
@ -70,7 +71,7 @@ function BufferManager:initialize()
if utils.isBufLoaded(bufnr) then
attach(self, bufnr)
else
-- the first buffer is unloaded while firing `BufEnter`
-- the first buffer is unloaded while firing `BufWinEnter`
promise.resolve():thenCall(function()
if utils.isBufLoaded(bufnr) then
attach(self, bufnr)

View file

@ -211,7 +211,7 @@ function Fold:initialize(ns)
table.insert(self.disposables, disposable:create(function()
self.initialized = false
end))
event:on('BufEnter', function(bufnr)
event:on('BufWinEnter', function(bufnr)
bufnr = bufnr or api.nvim_get_current_buf()
local fb = manager:get(bufnr)
if not fb then

View file

@ -21,6 +21,7 @@ local function createEvents()
cmd([[
au!
au BufEnter * lua require('ufo.lib.event'):emit('BufEnter', vim.api.nvim_get_current_buf())
au BufWinEnter * lua require('ufo.lib.event'):emit('BufWinEnter', vim.api.nvim_get_current_buf(), vim.api.nvim_get_current_win())
au InsertLeave * lua require('ufo.lib.event'):emit('InsertLeave', vim.api.nvim_get_current_buf())
au TextChanged * lua require('ufo.lib.event'):emit('TextChanged', vim.api.nvim_get_current_buf())
au BufWritePost * lua require('ufo.lib.event'):emit('BufWritePost', vim.api.nvim_get_current_buf())
@ -34,7 +35,7 @@ local function createEvents()
cmd(([[
au OptionSet buftype silent! lua require('ufo.lib.event'):emit('BufTypeChanged', %s)
au OptionSet filetype silent! lua require('ufo.lib.event'):emit('FileTypeChanged', %s)
]]):format(bufOptSetArgs, bufOptSetArgs))
]]):format(bufOptSetArgs, bufOptSetArgs, bufOptSetArgs))
cmd(([[
au OptionSet diff silent! lua require('ufo.lib.event'):emit('DiffModeChanged', %s)
]]):format(winOptSetArgs))