From 806a87a39b90f2c43d459d59f92475e864a31299 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Wed, 18 Oct 2023 15:28:30 +0200 Subject: [PATCH] Highlight `'''` as single quote character literal Fixes #260 --- src/typescript/Scala.tmLanguage.ts | 68 ++++++++++++++++++------------ tests/unit/#260.test.scala | 13 ++++++ 2 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 tests/unit/#260.test.scala diff --git a/src/typescript/Scala.tmLanguage.ts b/src/typescript/Scala.tmLanguage.ts index d84900a..1a3e464 100644 --- a/src/typescript/Scala.tmLanguage.ts +++ b/src/typescript/Scala.tmLanguage.ts @@ -883,37 +883,53 @@ export const scalaTmLanguage: TmLanguage = { ] }, 'char-literal': { - end: "'|$", - begin: "'", - beginCaptures: { - '0': { - name: 'punctuation.definition.character.begin.scala' - } - }, patterns: [ { - match: `\\\\(?:[btnfr\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})`, - name: 'constant.character.escape.scala' - }, - { - match: '\\\\.', - name: 'invalid.illegal.unrecognized-character-escape.scala' - }, - { - match: "[^']{2,}", - name: 'invalid.illegal.character-literal-too-long' + match: "(')'(')", + name: 'string.quoted.other constant.character.literal.scala', + captures: { + '1': { + name: 'punctuation.definition.character.begin.scala' + }, + '2': { + name: 'punctuation.definition.character.end.scala' + } + } }, { - match: "(?