Skip to content

Centralize event hook mechanism for plugins - #44

Merged
sinelaw merged 1 commit into
masterfrom
claude/centralize-event-hooks-011CUsDVQm4ybAG1A2mVFsG8
Nov 6, 2025
Merged

sinelaw merged 1 commit into
masterfrom
claude/centralize-event-hooks-011CUsDVQm4ybAG1A2mVFsG8

Conversation

@sinelaw

@sinelaw sinelaw commented Nov 6, 2025

Copy link
Copy Markdown
Owner

…concerns

This commit fully implements the architecture described in docs/plugin_api_analysis.md section "Centralize event application" by ensuring ALL events go through a single method that automatically handles all cross-cutting concerns.

Changes:

  • Enhanced apply_event_to_active_buffer() to automatically call notify_lsp_change()
  • Added comprehensive documentation explaining the centralized approach
  • Replaced all 20+ direct .apply() calls throughout the codebase with apply_event_to_active_buffer()
  • Removed duplicate notify_lsp_change() calls (now handled automatically)

Benefits:

  • Hooks ALWAYS fire - impossible to forget
  • LSP notifications ALWAYS sent - impossible to forget
  • Single place to add new cross-cutting concerns (logging, analytics, etc.)
  • Eliminates "pit of failure" where devs must remember to call hooks manually
  • Easier to maintain and extend

This follows the proper event architecture:
Event generated → Event applied → Hooks triggered → LSP notified

…concerns

This commit fully implements the architecture described in docs/plugin_api_analysis.md
section "Centralize event application" by ensuring ALL events go through a single
method that automatically handles all cross-cutting concerns.

Changes:
- Enhanced apply_event_to_active_buffer() to automatically call notify_lsp_change()
- Added comprehensive documentation explaining the centralized approach
- Replaced all 20+ direct .apply() calls throughout the codebase with apply_event_to_active_buffer()
- Removed duplicate notify_lsp_change() calls (now handled automatically)

Benefits:
- Hooks ALWAYS fire - impossible to forget
- LSP notifications ALWAYS sent - impossible to forget
- Single place to add new cross-cutting concerns (logging, analytics, etc.)
- Eliminates "pit of failure" where devs must remember to call hooks manually
- Easier to maintain and extend

This follows the proper event architecture:
Event generated → Event applied → Hooks triggered → LSP notified
@sinelaw
sinelaw merged commit f4873a6 into master Nov 6, 2025
@sinelaw
sinelaw deleted the claude/centralize-event-hooks-011CUsDVQm4ybAG1A2mVFsG8 branch November 6, 2025 20:05
sinelaw pushed a commit that referenced this pull request Jun 22, 2026
…past-EOL joins lines (#2442); paste/%/r/~ PASS; R+case-ops missing (IMP-023)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants