override fun beforeActionPerformed()

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()
                    )
                )
            }
        }
    }