class LSProtocol::CodeAction

Overview

A code action represents a change that can be performed in code, e.g. to fix a problem or to refactor code.

A CodeAction must set either #edit and/or a #command. If both are supplied, the #edit is applied first, then the #command is executed.

Included Modules

Defined in:

lsprotocol/types.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(pull : JSON::PullParser) #

[View source]
def self.new(title : String | Nil, command : Command | Nil = nil, data : LSPAny | Nil = nil, diagnostics : Array(Diagnostic) | Nil = nil, disabled : CodeActionDisabled | Nil = nil, edit : WorkspaceEdit | Nil = nil, is_preferred : Bool | Nil = nil, kind : CodeActionKind | String | Nil = nil, tags : Array(CodeActionTag) | Nil = nil) #

[View source]

Instance Method Detail

def command : Command | Nil #

A command this code action executes. If a code action provides an edit and a command, first the edit is executed and then the command.


[View source]
def data : LSPAny | Nil #

A data entry field that is preserved on a code action between a textDocument/codeAction and a codeAction/resolve request.

@since 3.16.0


[View source]
def diagnostics : Array(Diagnostic) | Nil #

The diagnostics that this code action resolves.


[View source]
def disabled : CodeActionDisabled | Nil #

Marks that the code action cannot currently be applied.

Clients should follow the following guidelines regarding disabled code actions:

  • Disabled code actions are not shown in automatic lightbulbs code action menus.

  • Disabled actions are shown as faded out in the code action menu when the user requests a more specific type of code action, such as refactorings.

  • If the user has a keybinding that auto applies a code action and only disabled code actions are returned, the client should show the user an error message with reason in the editor.

@since 3.16.0


[View source]
def edit : WorkspaceEdit | Nil #

The workspace edit this code action performs.


[View source]
def is_preferred : Bool | Nil #

Marks this as a preferred action. Preferred actions are used by the auto fix command and can be targeted by keybindings.

A quick fix should be marked preferred if it properly addresses the underlying error. A refactoring should be marked preferred if it is the most reasonable choice of actions to take.

@since 3.15.0


[View source]
def kind : CodeActionKind | String | Nil #

The kind of the code action.

Used to filter code actions.


[View source]
def tags : Array(CodeActionTag) | Nil #

Tags for this code action.

@since 3.18.0 - proposed


[View source]
def title : String #

A short, human-readable, title for this code action.


[View source]