• Public
  • Public/Protected
  • All

Interface CodeActionProvider<T>

The code action interface defines the contract between extensions and the light bulb feature.

A code action can be any command that is known to the system.

Type Parameters


  • CodeActionProvider



  • Provide commands for the given document and range.


    • document: TextDocument

      The document in which the command was invoked.

    • range: Range | Selection

      The selector or range for which the command was invoked. This will always be a selection if there is a currently active editor.

    • context: CodeActionContext

      Context carrying additional information.

    • token: CancellationToken

      A cancellation token.

    Returns ProviderResult<(Command | T)[]>

    An array of commands, quick fixes, or refactorings or a thenable of such. The lack of a result can be signaled by returning undefined, null, or an empty array.

  • Given a code action fill in its edit-property. Changes to all other properties, like title, are ignored. A code action that has an edit will not be resolved.

    Note that a code action provider that returns commands, not code actions, cannot successfully implement this function. Returning commands is deprecated and instead code actions should be returned.


    Returns ProviderResult<T>

    The resolved code action or a thenable that resolves to such. It is OK to return the given item. When no result is returned, the given item will be used.