in src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt [141:240]
override fun beforeActionPerformed(action: AnAction, event: AnActionEvent) {
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 selectedText = editor.getSelectedText() ?: return
handleAction(
project,
BeforeEditorCopyAction(
text = selectedText,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is CutAction -> {
handleAction(
project,
BeforeEditorCutAction(
textFragment = editor.getSelection(),
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is PasteAction -> {
val pastedText = CopyPasteManager.getInstance().contents?.asString() ?: return
val caretOffset = editor.getCaretOffset()
handleAction(
project,
BeforeEditorPasteAction(
text = pastedText,
caretOffset = caretOffset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is BackspaceAction -> {
handleAction(
project,
BeforeEditorBackspaceAction(
textFragment = editor.getSelection(),
caretOffset = editor.getCaretOffset(),
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is IncrementalFindAction -> {
handleAction(
project,
BeforeEditorFindAction(
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is CodeCompletionAction -> {
handleAction(
project,
BeforeEditorCodeCompletionAction(
caretOffset = editor.caretModel.offset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is ChooseItemAction.FocusedOnly -> {
handleAction(
project,
BeforeCompletionChooseItemAction(
caretOffset = editor.caretModel.offset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
is EscapeAction -> {
handleAction(
project,
BeforeEditorEscapeAction(
caretOffset = editor.caretModel.offset,
editor = editor,
psiFile = psiFile,
timeMillis = System.currentTimeMillis()
)
)
}
}
}