Skip to content

feat: add eager extension activation for vim/neovim#193

Merged
j4rviscmd merged 1 commit into
mainfrom
feat/eager-activation
Jun 5, 2026
Merged

feat: add eager extension activation for vim/neovim#193
j4rviscmd merged 1 commit into
mainfrom
feat/eager-activation

Conversation

@j4rviscmd
Copy link
Copy Markdown
Owner

Summary

Add coderm.extensions.eagerActivation setting to force immediate startup activation of specified extensions. This is critical for vim/neovim extensions where every millisecond of activation latency matters — without this, the first keystroke is handled by VS Code instead of the extension.

Changes

  • New setting: coderm.extensions.eagerActivation (default: ["asvetliakov.vscode-neovim", "vscodevim.vim"])
  • implicitActivationEvents.ts: Add setEagerExtensions() method; inject * activation event for listed extensions during _readActivationEvents()
  • abstractExtensionService.ts: Read coderm.extensions.eagerActivation in constructor and pass to ImplicitActivationEvents
  • eagerExtensions.ts: Register the new configuration setting
  • coderm.contribution.ts: Import the new module
  • README.md / README.ja.md: Add setting to the Coderm-specific settings table

How it works

AbstractExtensionService constructor
  → reads coderm.extensions.eagerActivation
  → ImplicitActivationEvents.setEagerExtensions(Set{...})

Extension host startup
  → _handleEagerExtensions() → _activateByEvent("*")
  → Listed extensions activate immediately (eager phase)

Test plan

  • Install asvetliakov.vscode-neovim from the marketplace
  • Launch Coderm and open a text file
  • Verify neovim mode is active immediately without pressing any key
  • Check coderm.extensions.eagerActivation appears in Settings UI
  • Set the value to [] and restart — verify normal (lazy) activation behavior

🤖 Generated with Claude Code

Add coderm.extensions.eagerActivation setting to force immediate
startup activation of specified extensions (default: vscode-neovim
and vscodevim). Injects '*' activation event into listed extensions
via ImplicitActivationEvents, bypassing normal lazy activation
triggers like onCommand:type or onStartupFinished.
@j4rviscmd j4rviscmd added the enhancement New feature or request label Jun 5, 2026
@j4rviscmd j4rviscmd merged commit ebc39b6 into main Jun 5, 2026
3 checks passed
@j4rviscmd j4rviscmd deleted the feat/eager-activation branch June 5, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant