in src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt [39:139]
override fun afterActionPerformed(action: AnAction, event: AnActionEvent, result: AnActionResult) {
if (!action.isSupportedAction()) return
val editor = event.getData(CommonDataKeys.EDITOR) ?: return
val project = event.getData(CommonDataKeys.PROJECT) ?: return
val psiFile = event.getData(CommonDataKeys.PSI_FILE) ?: return
when (action) {
is CopyAction -> {
val copiedText = CopyPasteManager.getInstance().contents?.asString() ?: return
handleAction(
project,
EditorCopyAction(
text = copiedText,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is CutAction -> {
val text = CopyPasteManager.getInstance().contents?.asString() ?: return
handleAction(
project,
EditorCutAction(
text = text,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is PasteAction -> {
val pastedText = CopyPasteManager.getInstance().contents?.asString() ?: return
val caretOffset = editor.getCaretOffset()
handleAction(
project,
EditorPasteAction(
text = pastedText,
caretOffset = caretOffset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is BackspaceAction -> {
handleAction(
project,
EditorBackspaceAction(
textFragment = editor.getSelection(),
caretOffset = editor.getCaretOffset(),
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is IncrementalFindAction -> {
handleAction(
project,
EditorFindAction(
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is CodeCompletionAction -> {
handleAction(
project,
EditorCodeCompletionAction(
caretOffset = editor.caretModel.offset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is ChooseItemAction.FocusedOnly -> {
handleAction(
project,
CompletionChooseItemAction(
caretOffset = editor.caretModel.offset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is EscapeAction -> {
handleAction(
project,
EditorEscapeAction(
caretOffset = editor.caretModel.offset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
}
}