extensions-api-migration

Migrate IdeaVim extensions from VimExtensionFacade to the @VimPlugin annotation-based API.

10.2k|811|Updated Mar 9, 2011
One-click install
npx skills add https://github.com/JetBrains/ideavim --skill extensions-api-migration
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extensions-api-migration
Source: https://github.com/JetBrains/ideavim/tree/main/.claude/skills/extensions-api-migration
Command: npx skills add https://github.com/JetBrains/ideavim --skill extensions-api-migration

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Migrates IdeaVim extensions from the old VimExtensionFacade API to the new @VimPlugin annotation-based API, enabling modern plugin development patterns and improved compatibility.

Core Features & Use Cases

  • New API module: api/ folder - contains the new plugin API and migration guides to help convert existing extensions.
  • Migration patterns: extract execute logic, inject API access via api(), and register actions with api.mappings.
  • Use Case: when upgrading an existing extension to adopt the annotation-based API while preserving behavior and tests.

Quick Start

Inject the API in the extension, extract code into a VimApi-backed function, and migrate registrations to the new api() mapping approach.

Frequently Asked Questions about extensions-api-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate IdeaVim extensions to the new annotation-based API?

To migrate IdeaVim extensions to the new @VimPlugin annotation-based API, inject the API, extract execute logic into VimApi-backed functions, and update action registrations to use api() based mappings.

What is the VimExtensionFacade API migration process for vim plugins?

The VimExtensionFacade API migration process involves replacing old facade calls with injected API access, moving execute logic to VimApi-backed utilities, and registering actions through api.mappings for modern plugin compatibility.

Can I preserve existing tests when upgrading to the IdeaVim modern plugin API?

Yes, upgrading an existing extension to adopt the annotation-based API preserves behavior and tests by extracting execute logic and updating registrations while maintaining the original functional outcomes.

What's the best way to register actions with api() mappings in IdeaVim?

The best way to register actions with api() mappings is to inject the API into your extension and migrate old registrations to the new api() mapping approach using the provided migration guides.

Why does my IdeaVim extension need the @VimPlugin annotation?

Your IdeaVim extension needs the @VimPlugin annotation to adopt modern plugin development patterns, replacing the old VimExtensionFacade API with improved compatibility and annotation-based lifecycle management.

Are migration guides available for converting old IdeaVim extensions?

Yes, migration guides are available in the new API module to help convert existing IdeaVim extensions, providing patterns to extract logic, inject API access, and register actions with api.mappings.