diff --git a/CHANGES.md b/CHANGES.md index 3686fe9b8e..dd12d29ebd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ Themes: Grammars: +- fix(java) prevent false positive variable init on `else` [Josh Goebel][] - enh(php) named arguments [Wojciech Kania][] - fix(php) PHP constants [Wojciech Kania][] - fix(angelscript) incomplete int8, int16, int32, int64 highlighting [Melissa Geels][] diff --git a/src/languages/java.js b/src/languages/java.js index 8c55aae215..b46857485e 100644 --- a/src/languages/java.js +++ b/src/languages/java.js @@ -187,7 +187,7 @@ export default function(hljs) { }, { begin: [ - JAVA_IDENT_RE, + regex.concat(/(?!else)/, JAVA_IDENT_RE), /\s+/, JAVA_IDENT_RE, /\s+/, diff --git a/test/markup/java/bugs.expect.txt b/test/markup/java/bugs.expect.txt new file mode 100644 index 0000000000..2f3fd93f88 --- /dev/null +++ b/test/markup/java/bugs.expect.txt @@ -0,0 +1,6 @@ + +// `else x =` should not be detected as a variable creation +if ( O == l ) + l = O1; +else + a = 01; diff --git a/test/markup/java/bugs.txt b/test/markup/java/bugs.txt new file mode 100644 index 0000000000..409f7ccafe --- /dev/null +++ b/test/markup/java/bugs.txt @@ -0,0 +1,6 @@ + +// `else x =` should not be detected as a variable creation +if ( O == l ) + l = O1; +else + a = 01;