package org.jetbrains.plugins.clojure.psi.resolve.completion;
import com.intellij.codeInsight.CodeInsightSettings;
import com.intellij.codeInsight.completion.CompletionConfidence;
import com.intellij.codeInsight.completion.CompletionParameters;
import com.intellij.openapi.editor.Document;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.util.ThreeState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.clojure.repl.ClojureConsole;
/**
* @author peter
*/
public class ClojureCompletionConfidence extends CompletionConfidence {
@NotNull
@Override
public ThreeState shouldFocusLookup(@NotNull CompletionParameters completionParameters) {
return ThreeState.UNSURE;
}
@NotNull
@Override
public ThreeState shouldSkipAutopopup(@NotNull PsiElement contextElement, @NotNull PsiFile psiFile, int offset) {
Document document = psiFile.getViewProvider().getDocument();
if (document != null &&
CodeInsightSettings.getInstance().SELECT_AUTOPOPUP_SUGGESTIONS_BY_CHARS &&
document.getUserData(ClojureConsole.CLOJURE_CONSOLE_EDITOR) == Boolean.TRUE) {
return ThreeState.YES;
}
return ThreeState.UNSURE;
}
}