@Nullable private Commenter findCommenter(final int line) { final FileType fileType = myFile.getFileType(); if (fileType instanceof AbstractFileType) { return ((AbstractFileType) fileType).getCommenter(); } int lineStartOffset = myDocument.getLineStartOffset(line); int lineEndOffset = myDocument.getLineEndOffset(line) - 1; final CharSequence charSequence = myDocument.getCharsSequence(); lineStartOffset = CharArrayUtil.shiftForward(charSequence, lineStartOffset, " \t"); lineEndOffset = CharArrayUtil.shiftBackward(charSequence, lineEndOffset < 0 ? 0 : lineEndOffset, " \t"); final Language lineStartLanguage = PsiUtilBase.getLanguageAtOffset(myFile, lineStartOffset); final Language lineEndLanguage = PsiUtilBase.getLanguageAtOffset(myFile, lineEndOffset); return CommentByBlockCommentHandler.getCommenter( myFile, myEditor, lineStartLanguage, lineEndLanguage); }
private static boolean shouldFocusLookup(CompletionParameters parameters) { switch (CodeInsightSettings.getInstance().AUTOPOPUP_FOCUS_POLICY) { case CodeInsightSettings.ALWAYS: return true; case CodeInsightSettings.NEVER: return false; } final Language language = PsiUtilBase.getLanguageAtOffset( parameters.getPosition().getContainingFile(), parameters.getOffset()); for (CompletionConfidence confidence : CompletionConfidenceEP.forLanguage(language)) { final ThreeState result = confidence.shouldFocusLookup(parameters); if (result != ThreeState.UNSURE) { return result == ThreeState.YES; } } return false; }