package com.jetbrains.lang.dart.ide.editor; import com.intellij.codeInsight.editorActions.enter.EnterBetweenBracesHandler; import com.intellij.codeInsight.editorActions.enter.EnterHandlerDelegate; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.actionSystem.EditorActionHandler; import com.intellij.openapi.util.Ref; import com.intellij.psi.PsiFile; import com.jetbrains.lang.dart.DartLanguage; import org.jetbrains.annotations.NotNull; public class DartEnterBetweenBracesHandler extends EnterBetweenBracesHandler { @Override public EnterHandlerDelegate.Result preprocessEnter(@NotNull PsiFile file, @NotNull Editor editor, @NotNull Ref<Integer> caretOffsetRef, @NotNull Ref<Integer> caretAdvance, @NotNull DataContext dataContext, EditorActionHandler originalHandler) { if (!file.getLanguage().is(DartLanguage.INSTANCE)) { return EnterHandlerDelegate.Result.Continue; } return super.preprocessEnter(file, editor, caretOffsetRef, caretAdvance, dataContext, originalHandler); } @Override protected boolean isBracePair(char c1, char c2) { return super.isBracePair(c1, c2) || (c1 == '[' && c2 == ']'); } }