package org.intellij.plugins.markdown.editor;
import com.intellij.codeInsight.AutoPopupController;
import com.intellij.codeInsight.editorActions.TypedHandlerDelegate;
import com.intellij.openapi.editor.Caret;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import org.intellij.plugins.markdown.injection.LanguageListCompletionContributor;
public class MarkdownTypedHandler extends TypedHandlerDelegate {
@Override
public Result checkAutoPopup(char charTyped, Project project, Editor editor, PsiFile file) {
if (charTyped == '`') {
PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument());
for (Caret caret : editor.getCaretModel().getAllCarets()) {
final int offset = caret.getOffset();
if (!LanguageListCompletionContributor.isInMiddleOfUncollapsedFence(file.findElementAt(offset), offset)) {
return Result.CONTINUE;
}
}
AutoPopupController.getInstance(project).autoPopupMemberLookup(editor, null);
return Result.STOP;
}
return super.checkAutoPopup(charTyped, project, editor, file);
}
}