/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.commenting;
import com.intellij.codeInsight.editorActions.CommentCompleteHandler;
import com.intellij.lang.CodeDocumentationAwareCommenter;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.JavaDocTokenType;
import com.intellij.psi.PsiComment;
import com.intellij.psi.PsiElement;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.psi.javadoc.PsiDocToken;
import gw.plugin.ij.lang.GosuLanguage;
public class GosuCommentCompleteHandler implements CommentCompleteHandler {
@Override
public boolean isCommentComplete(PsiComment comment, CodeDocumentationAwareCommenter commenter, Editor editor) {
final PsiElement first = comment.getFirstChild();
final PsiElement last = comment.getLastChild();
return first instanceof PsiDocToken && last instanceof PsiDocToken &&
((PsiDocToken)first).getTokenType() == JavaDocTokenType.DOC_COMMENT_START &&
((PsiDocToken)last).getTokenType() == JavaDocTokenType.DOC_COMMENT_END;
}
@Override
public boolean isApplicable(PsiComment comment, CodeDocumentationAwareCommenter commenter) {
return comment instanceof PsiDocComment &&
comment.getParent().getLanguage() == GosuLanguage.instance();
}
}