Make line indent provider correctly handle comments

This commit is contained in:
Rustam Vishnyakov
2016-06-10 15:15:40 +03:00
parent 2e2a717203
commit 4c82b50196
2 changed files with 6 additions and 8 deletions
@@ -53,6 +53,7 @@ public class JavaLineIndentProvider extends JavaLikeLangLineIndentProvider {
SYNTAX_MAP.put(JavaDocTokenType.DOC_COMMENT_START, DocBlockStart);
SYNTAX_MAP.put(JavaDocTokenType.DOC_COMMENT_END, DocBlockEnd);
SYNTAX_MAP.put(JavaTokenType.COMMA, Comma);
SYNTAX_MAP.put(JavaTokenType.END_OF_LINE_COMMENT, LineComment);
}
@Nullable
@@ -55,6 +55,7 @@ public abstract class JavaLikeLangLineIndentProvider extends FormatterBasedLineI
BlockComment,
DocBlockStart,
DocBlockEnd,
LineComment,
Comma
}
@@ -165,15 +166,11 @@ public abstract class JavaLikeLangLineIndentProvider extends FormatterBasedLineI
}
while (!position.isAtEnd()) {
if (currLanguage == Language.ANY || currLanguage == null) currLanguage = position.getLanguage();
if (position.isAt(Semicolon) ||
position.isAt(BlockOpeningBrace) ||
position.isAt(BlockClosingBrace) ||
! ((position.getLanguage() != Language.ANY) && position.isAtLanguage(currLanguage))) {
if (position.isAtAnyOf(Semicolon, BlockOpeningBrace, BlockClosingBrace, BlockComment, DocBlockEnd, LineComment) ||
(position.getLanguage() != Language.ANY) && !position.isAtLanguage(currLanguage)) {
SemanticEditorPosition statementStart = getPosition(position.getEditor(), position.getStartOffset());
if (statementStart.after().isAt(Whitespace) && statementStart.isAtMultiline()) {
if (!statementStart.after().isAtEnd()) {
return statementStart.getStartOffset();
}
if (!statementStart.after().afterOptional(Whitespace).isAtEnd()) {
return statementStart.getStartOffset();
}
}
position.before();