From af1e15de1cf8051b34cce5d45081ad45e364b626 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Tue, 30 Jun 2020 10:23:59 +0200 Subject: [PATCH] Fix #105: Detect all combinations of dot in numeric literals --- src/typescript/Scala.tmLanguage.ts | 2 +- tests/snap/lexical.test.scala.snap | 4 ++- tests/unit/#105.test.scala | 45 ++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 tests/unit/#105.test.scala diff --git a/src/typescript/Scala.tmLanguage.ts b/src/typescript/Scala.tmLanguage.ts index c8c1d88..1a22c77 100644 --- a/src/typescript/Scala.tmLanguage.ts +++ b/src/typescript/Scala.tmLanguage.ts @@ -174,7 +174,7 @@ export const scalaTmLanguage: TmLanguage = { name: 'constant.language.scala' }, { - match: '\\b((0(x|X)[0-9a-fA-F_]*)|(([0-9][0-9_]*\\.[0-9][0-9_]*)|(\\.[0-9][0-9_]*))((e|E)(\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)([LlFfDd]|UL|ul)?\\b', + match: '\\b((0(x|X)[0-9a-fA-F_]*)|(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)|(\\.[0-9][0-9_]*))((e|E)(\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)([LlFfDd]|UL|ul)?\\b', name: 'constant.numeric.scala' }, { diff --git a/tests/snap/lexical.test.scala.snap b/tests/snap/lexical.test.scala.snap index d3d25c5..c93e38a 100644 --- a/tests/snap/lexical.test.scala.snap +++ b/tests/snap/lexical.test.scala.snap @@ -157,7 +157,9 @@ # ^ source.scala meta.bracket.scala # ^ source.scala # ^^^ source.scala constant.numeric.scala -# ^^^^^^^^^ source.scala +# ^^ source.scala +# ^^^^^ source.scala constant.numeric.scala +# ^^ source.scala # ^^^^^^^^ source.scala constant.numeric.scala # ^^ source.scala # ^^^^^^^^ source.scala constant.numeric.scala diff --git a/tests/unit/#105.test.scala b/tests/unit/#105.test.scala new file mode 100644 index 0000000..d52edfd --- /dev/null +++ b/tests/unit/#105.test.scala @@ -0,0 +1,45 @@ +// SYNTAX TEST "source.scala" + + 1e12 1e+34 1e-56 1e12f 1e+34f 1e-56f 1e12d 1e+34d 1e-56d +// ^^^^ constant.numeric.scala +// ^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala + + 1E12 1E+34 1E-56 1E12f 1E+34f 1E-56f 1E12d 1E+34d 1E-56d +// ^^^^ constant.numeric.scala +// ^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala + + .1e12 .1e+34 .1e-56 .1e12f .1e+34f .1e-56f .1e12d .1e+34d .1e-56d +// ^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala + + .1E12 .1E+34 .1E-56 .1E12f .1E+34f .1E-56f .1E12d .1E+34d .1E-56d +// ^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala +// ^^^^^^ constant.numeric.scala