fix: forward ev.data, validate buffer, chain dependencies, and dedupl…#10
Merged
fix: forward ev.data, validate buffer, chain dependencies, and dedupl…#10
Conversation
…icate augroups on event re-fire After lazy-loading a plugin, the re-fired autocmd was missing ev.data (crashing callbacks like LspAttach that read event.data.client_id), could error on wiped buffers, lacked dependency chaining (BufReadPre → BufReadPost → FileType), and double-fired pre-existing handlers. Extract shared refire module with snapshot-based augroup dedup: before loading, snapshot existing augroups per event; after loading, fire only newly-added groups. FileType is exempt from dedup (all handlers re-fire). All nvim_exec_autocmds calls are pcall-wrapped so one plugin's error does not break the chain. Also wrap process_spec in pcall so a failed plugin load doesn't prevent the re-fire chain from executing, and remove vim.schedule deferral in ft.lua to fire synchronously (matching lazy.nvim's behavior). Closes #9
1cc0a2f to
2351956
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…icate augroups on event re-fire
After lazy-loading a plugin, the re-fired autocmd was missing ev.data (crashing callbacks like LspAttach that read event.data.client_id), could error on wiped buffers, lacked dependency chaining (BufReadPre → BufReadPost → FileType), and double-fired pre-existing handlers.
Extract shared refire module with snapshot-based augroup dedup: before loading, snapshot existing augroups per event; after loading, fire only newly-added groups. FileType is exempt from dedup (all handlers re-fire). All nvim_exec_autocmds calls are pcall-wrapped so one plugin's error does not break the chain.
Also wrap process_spec in pcall so a failed plugin load doesn't prevent the re-fire chain from executing, and remove vim.schedule deferral in ft.lua to fire synchronously (matching lazy.nvim's behavior).
Closes #9