From 707ef5cba9c2aa66c29114dd4be07b42d3821ba7 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 31 Aug 2017 16:09:48 +0200 Subject: [PATCH] increase keyword priority in custom file type lexer (IDEA-178179) --- .../ide/highlighter/custom/CustomFileTypeLexer.java | 2 +- .../highlighter/custom/CustomFileTypeLexerTest.groovy | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/CustomFileTypeLexer.java b/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/CustomFileTypeLexer.java index cb41cb89f868..587d433ca988 100644 --- a/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/CustomFileTypeLexer.java +++ b/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/CustomFileTypeLexer.java @@ -68,6 +68,7 @@ public final class CustomFileTypeLexer extends AbstractCustomLexer { if (multilineCommentParser != null) { tokenParsers.add(multilineCommentParser); } + tokenParsers.add(keywordParser); tokenParsers.add(quotedStringParser); tokenParsers.add(quotedStringParser2); tokenParsers.add(new PunctuationParser()); @@ -75,7 +76,6 @@ public final class CustomFileTypeLexer extends AbstractCustomLexer { tokenParsers.add(hexNumberParser); } tokenParsers.add(numberParser); - tokenParsers.add(keywordParser); tokenParsers.add(identifierParser); if (table.isHasBraces()) { diff --git a/platform/platform-tests/testSrc/com/intellij/ide/highlighter/custom/CustomFileTypeLexerTest.groovy b/platform/platform-tests/testSrc/com/intellij/ide/highlighter/custom/CustomFileTypeLexerTest.groovy index 8a929f75b4cc..b43431427dbd 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/highlighter/custom/CustomFileTypeLexerTest.groovy +++ b/platform/platform-tests/testSrc/com/intellij/ide/highlighter/custom/CustomFileTypeLexerTest.groovy @@ -394,10 +394,12 @@ CHARACTER (')') SyntaxTable table = new SyntaxTable() table.addKeyword1("a*") table.addKeyword1("b-c") + table.addKeyword1(":") table.addKeyword2("d#") table.addKeyword2("e") table.addKeyword2("foo{}") - doTest table, 'a* b-c d# e- e foo{}', '''\ + table.addKeyword3("foldl'") + doTest table, "a* b-c d# e- e foo{} : foldl' foo", '''\ KEYWORD_1 ('a*') WHITESPACE (' ') KEYWORD_1 ('b-c') @@ -410,6 +412,12 @@ WHITESPACE (' ') KEYWORD_2 ('e') WHITESPACE (' ') KEYWORD_2 ('foo{}') +WHITESPACE (' ') +KEYWORD_1 (':') +WHITESPACE (' ') +KEYWORD_3 ('foldl'') +WHITESPACE (' ') +IDENTIFIER ('foo') ''' }