Correct SPEL matching for JPQL

This commit is contained in:
aboyko
2024-04-16 10:21:59 -04:00
parent 61da7dbe91
commit 5ab79dc701
3 changed files with 3 additions and 3 deletions

View File

@@ -863,4 +863,4 @@ JAVASTRINGLITERAL : '"' ( ('\\' [btnfr"']) | ~('"'))* '"';
FLOATLITERAL : ('0' .. '9')* '.' ('0' .. '9')+ (E ('0' .. '9')+)* (F|D)?;
INTLITERAL : ('0' .. '9')+ ;
LONGLITERAL : ('0' .. '9')+L ;
SPEL : ('$')('{')(.)*?('}') ;
SPEL : ('#')('{')(.)*?('}') ;

View File

@@ -732,7 +732,7 @@ public class JpqlLexer extends Lexer {
"\u000209\u0000\u03be\u03bd\u0001\u0000\u0000\u0000\u03bf\u03c0\u0001\u0000"+
"\u0000\u0000\u03c0\u03be\u0001\u0000\u0000\u0000\u03c0\u03c1\u0001\u0000"+
"\u0000\u0000\u03c1\u03c2\u0001\u0000\u0000\u0000\u03c2\u03c3\u00037\u001b"+
"\u0000\u03c3\u0116\u0001\u0000\u0000\u0000\u03c4\u03c5\u0005$\u0000\u0000"+
"\u0000\u03c3\u0116\u0001\u0000\u0000\u0000\u03c4\u03c5\u0005#\u0000\u0000"+
"\u03c5\u03c9\u0005{\u0000\u0000\u03c6\u03c8\t\u0000\u0000\u0000\u03c7"+
"\u03c6\u0001\u0000\u0000\u0000\u03c8\u03cb\u0001\u0000\u0000\u0000\u03c9"+
"\u03ca\u0001\u0000\u0000\u0000\u03c9\u03c7\u0001\u0000\u0000\u0000\u03ca"+

View File

@@ -90,7 +90,7 @@ public class JpqlSemanticTokensTest {
@Test
void query_with_SPEL() {
List<SemanticTokenData> tokens = provider.computeTokens("SELECT owner FROM Owner owner left join fetch owner.pets WHERE owner.id =:${id}", 0);
List<SemanticTokenData> tokens = provider.computeTokens("SELECT owner FROM Owner owner left join fetch owner.pets WHERE owner.id =:#{id}", 0);
assertThat(tokens.get(0)).isEqualTo(new SemanticTokenData(0, 6, "keyword", new String[0])); // SELECT
assertThat(tokens.get(1)).isEqualTo(new SemanticTokenData(7, 12, "variable", new String[0])); // owner
assertThat(tokens.get(2)).isEqualTo(new SemanticTokenData(13, 17, "keyword", new String[0])); // FROM