[java] JavaLineIndentProvider: remove static init

GitOrigin-RevId: fd4fb3dcdc3414e0ac61c2e2b2ed48d5d498e85b
This commit is contained in:
Yann Cébron
2024-03-06 15:03:16 +01:00
committed by intellij-monorepo-bot
parent eae9e46a69
commit 56cd5fddea

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2024 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,44 +31,43 @@ import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Map;
import static com.intellij.formatting.Indent.Type.CONTINUATION;
import static com.intellij.psi.impl.source.codeStyle.lineIndent.JavaLikeLangLineIndentProvider.JavaLikeElement.*;
public final class JavaLineIndentProvider extends JavaLikeLangLineIndentProvider {
private final static HashMap<IElementType, SemanticEditorPosition.SyntaxElement> SYNTAX_MAP = new HashMap<>();
static {
SYNTAX_MAP.put(TokenType.WHITE_SPACE, Whitespace);
SYNTAX_MAP.put(JavaTokenType.SEMICOLON, Semicolon);
SYNTAX_MAP.put(JavaTokenType.LBRACE, BlockOpeningBrace);
SYNTAX_MAP.put(JavaTokenType.RBRACE, BlockClosingBrace);
SYNTAX_MAP.put(JavaTokenType.LBRACKET, ArrayOpeningBracket);
SYNTAX_MAP.put(JavaTokenType.RBRACKET, ArrayClosingBracket);
SYNTAX_MAP.put(JavaTokenType.RPARENTH, RightParenthesis);
SYNTAX_MAP.put(JavaTokenType.LPARENTH, LeftParenthesis);
SYNTAX_MAP.put(JavaTokenType.COLON, Colon);
SYNTAX_MAP.put(JavaTokenType.CASE_KEYWORD, SwitchCase);
SYNTAX_MAP.put(JavaTokenType.DEFAULT_KEYWORD, SwitchDefault);
SYNTAX_MAP.put(JavaTokenType.IF_KEYWORD, IfKeyword);
SYNTAX_MAP.put(JavaTokenType.WHILE_KEYWORD, IfKeyword);
SYNTAX_MAP.put(JavaTokenType.ELSE_KEYWORD, ElseKeyword);
SYNTAX_MAP.put(JavaTokenType.FOR_KEYWORD, ForKeyword);
SYNTAX_MAP.put(JavaTokenType.DO_KEYWORD, DoKeyword);
SYNTAX_MAP.put(JavaTokenType.C_STYLE_COMMENT, BlockComment);
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);
SYNTAX_MAP.put(JavaTokenType.TRY_KEYWORD, TryKeyword);
}
private final static Map<IElementType, SemanticEditorPosition.SyntaxElement> SYNTAX_MAP = Map.ofEntries(
Map.entry(TokenType.WHITE_SPACE, Whitespace),
Map.entry(JavaTokenType.SEMICOLON, Semicolon),
Map.entry(JavaTokenType.LBRACE, BlockOpeningBrace),
Map.entry(JavaTokenType.RBRACE, BlockClosingBrace),
Map.entry(JavaTokenType.LBRACKET, ArrayOpeningBracket),
Map.entry(JavaTokenType.RBRACKET, ArrayClosingBracket),
Map.entry(JavaTokenType.RPARENTH, RightParenthesis),
Map.entry(JavaTokenType.LPARENTH, LeftParenthesis),
Map.entry(JavaTokenType.COLON, Colon),
Map.entry(JavaTokenType.CASE_KEYWORD, SwitchCase),
Map.entry(JavaTokenType.DEFAULT_KEYWORD, SwitchDefault),
Map.entry(JavaTokenType.IF_KEYWORD, IfKeyword),
Map.entry(JavaTokenType.WHILE_KEYWORD, IfKeyword),
Map.entry(JavaTokenType.ELSE_KEYWORD, ElseKeyword),
Map.entry(JavaTokenType.FOR_KEYWORD, ForKeyword),
Map.entry(JavaTokenType.DO_KEYWORD, DoKeyword),
Map.entry(JavaTokenType.C_STYLE_COMMENT, BlockComment),
Map.entry(JavaDocTokenType.DOC_COMMENT_START, DocBlockStart),
Map.entry(JavaDocTokenType.DOC_COMMENT_END, DocBlockEnd),
Map.entry(JavaTokenType.COMMA, Comma),
Map.entry(JavaTokenType.END_OF_LINE_COMMENT, LineComment),
Map.entry(JavaTokenType.TRY_KEYWORD, TryKeyword)
);
@Nullable
@Override
protected SemanticEditorPosition.SyntaxElement mapType(@NotNull IElementType tokenType) {
return SYNTAX_MAP.get(tokenType);
}
@Override
public boolean isSuitableForLanguage(@NotNull Language language) {
return language.isKindOf(JavaLanguage.INSTANCE);
@@ -83,13 +82,13 @@ public final class JavaLineIndentProvider extends JavaLikeLangLineIndentProvider
if (beforeStart.isAt(JavaTokenType.EQ) ||
beforeStart.isAt(JavaTokenType.RBRACKET) ||
beforeStart.isAt(JavaTokenType.LPARENTH)
) {
) {
// For arrays like int x = {<caret>0, 1, 2}
return getDefaultIndentFromType(CONTINUATION);
}
else if (beforeStart.isAt(JavaTokenType.IDENTIFIER)) {
moveBeforeExtendsImplementsAndIdentifier(beforeStart);
if (beforeStart.isAt(JavaTokenType.CLASS_KEYWORD) && doNotIndentClassMembers(beforeStart)) {
if (beforeStart.isAt(JavaTokenType.CLASS_KEYWORD) && doNotIndentClassMembers(beforeStart)) {
return Indent.getNoneIndent();
}
}