Result (char charTyped, @NotNull final Project project, @NotNull final Editor editor, @NotNull final PsiFile file) { LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor); CompletionPhase phase = CompletionServiceImpl.getCompletionPhase(); if (LOG.isDebugEnabled()) { LOG.debug("checkAutoPopup: character=" + charTyped + ";"); LOG.debug("phase=" + phase); LOG.debug("lookup=" + lookup); LOG.debug("currentCompletion=" + CompletionServiceImpl.getCompletionService().getCurrentCompletion()); } if (lookup != null) { if (editor.getSelectionModel().hasSelection()) { lookup.performGuardedChange(() -> EditorModificationUtil.deleteSelectedText(editor)); } return Result.STOP; } if (Character.isLetterOrDigit(charTyped) || charTyped == '_') { if (phase instanceof EmptyAutoPopup && ((EmptyAutoPopup)phase).allowsSkippingNewAutoPopup(editor, charTyped)) { return Result.CONTINUE; } AutoPopupController.getInstance(project).scheduleAutoPopup(editor); return Result.STOP; } return Result.CONTINUE; }