package org.elixir_lang.code_insight.highlighting.brace_matcher; import com.intellij.codeInsight.highlighting.BraceMatchingUtil; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.editor.highlighter.HighlighterIterator; import com.intellij.openapi.fileTypes.FileType; import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; import org.elixir_lang.ElixirFileType; public class Issue443 extends LightPlatformCodeInsightFixtureTestCase { /* * Tests */ public void testDoBlock() { myFixture.configureByFile("do_block.ex"); assertTrue("`do` not matched to `end`", isLBraceTokenBrace()); } public void testDoKeyword() { myFixture.configureByFile("do_keyword.ex"); assertFalse("`do:` matched to `end`", isLBraceTokenBrace()); } public void testFnKeyword() { myFixture.configureByFile("fn_keyword.ex"); assertFalse("`fn:` matched to `end`", isLBraceTokenBrace()); } /* * Protected Instance Methods */ @Override protected String getTestDataPath() { return "testData/org/elixir_lang/code_insight/highlighting/brace_matcher/issue_443"; } /* * Private Instance Methods */ private boolean isLBraceTokenBrace() { int offset = myFixture.getCaretOffset(); Editor editor = myFixture.getEditor(); CharSequence text = editor.getDocument().getCharsSequence(); FileType fileType = ElixirFileType.INSTANCE; HighlighterIterator iterator = ((EditorEx) editor).getHighlighter().createIterator(offset); return BraceMatchingUtil.isLBraceToken(iterator, text, fileType); } }