class LSProtocol::CodeAction
- LSProtocol::CodeAction
- Reference
- Object
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
- JSON::Serializable
Defined in:
lsprotocol/types.crConstructors
- .new(pull : JSON::PullParser)
- .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)
Instance Method Summary
-
#command : Command | Nil
A command this code action executes.
-
#data : LSPAny | Nil
A data entry field that is preserved on a code action between a
textDocument/codeAction
and acodeAction/resolve
request. -
#diagnostics : Array(Diagnostic) | Nil
The diagnostics that this code action resolves.
-
#disabled : CodeActionDisabled | Nil
Marks that the code action cannot currently be applied.
-
#edit : WorkspaceEdit | Nil
The workspace edit this code action performs.
-
#is_preferred : Bool | Nil
Marks this as a preferred action.
-
#kind : CodeActionKind | String | Nil
The kind of the code action.
-
#tags : Array(CodeActionTag) | Nil
Tags for this code action.
-
#title : String
A short, human-readable, title for this code action.
Constructor Detail
Instance Method Detail
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.
A data entry field that is preserved on a code action between
a textDocument/codeAction
and a codeAction/resolve
request.
@since 3.16.0
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
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
The kind of the code action.
Used to filter code actions.