From 6bb44bc05f8ed1cc789fa1782b2b8b289c366048b94d742ed96b3ad560db0b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20Bj=C3=B6rnstam?= Date: Thu, 1 Oct 2026 09:32:18 +0200 Subject: [PATCH] Bjolang's raw strings are strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bjolang reads """...""" as a raw string: three or more quotes open it, the same number close it, and nothing in it is an escape. The grammar has a string.quoted.triple.bjolang scope for it, so quotes inside one stay inside, and one over several lines is a string on every line. tests/demo.bjo checks both, and passes. 🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-opus-5-5) Co-Authored-By: eca-agent --- .../bjolang/syntaxes/bjolang.tmLanguage.json | 19 +++++++++++++++++++ tests/demo.bjo | 11 +++++++++++ 2 files changed, 30 insertions(+) diff --git a/grammars/bjolang/syntaxes/bjolang.tmLanguage.json b/grammars/bjolang/syntaxes/bjolang.tmLanguage.json index a481785..e413851 100644 --- a/grammars/bjolang/syntaxes/bjolang.tmLanguage.json +++ b/grammars/bjolang/syntaxes/bjolang.tmLanguage.json @@ -26,6 +26,9 @@ { "include": "#interpolated-string" }, + { + "include": "#raw-string" + }, { "include": "#string" }, @@ -107,6 +110,22 @@ } ] }, + "raw-string": { + "comment": "\"\"\"...\"\"\": three or more quotes open it, the same number close it, and nothing in it is an escape.", + "begin": "(\"{3,})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.bjolang" + } + }, + "end": "(?