From fa2a63cd2bb0cd696a5c8d25ac8ee8666c13c21f Mon Sep 17 00:00:00 2001 From: Fred Bricon Date: Tue, 16 Jan 2024 16:15:55 +0100 Subject: [PATCH] Inject html syntax highlighting via language=html comment Signed-off-by: Fred Bricon --- language-support/html/inline-html.json | 44 ++++++++++++++++++++++++++ package.json | 10 ++++++ 2 files changed, 54 insertions(+) create mode 100644 language-support/html/inline-html.json diff --git a/language-support/html/inline-html.json b/language-support/html/inline-html.json new file mode 100644 index 000000000..b40dbf2a1 --- /dev/null +++ b/language-support/html/inline-html.json @@ -0,0 +1,44 @@ +{ + "injectionSelector": "L:source.java -comment -string", + "patterns": [ + { + "contentName": "meta.embedded.block.html", + "begin": "(?i)((/\\*\\s*(language=html)\\s*\\*/)|((//\\s*(language=html)\\s*)))", + "beginCaptures": { + "1": { + "name": "comment.block" + } + }, + "end": "(?<=\")", + "patterns": [ + { + "begin": "\\s*(\"\"\")$", + "beginCaptures": { + "0": { "name": "string.quoted.triple.java" } + }, + "end": "\\s*(\"\"\")", + "endCaptures": { + "0": { "name": "string.quoted.triple.java" } + }, + "patterns": [ + { "include": "text.html.derivative" } + ] + }, + { + "begin": "\\s*(\")", + "beginCaptures": { + "0": { "name": "string.quoted.double.java" } + }, + "end": "\\s*(\")", + "endCaptures": { + "0": { "name": "string.quoted.double.java" } + }, + "patterns": [ + { "include": "text.html.derivative" } + ] + } + ] + } + ], + "scopeName": "inline.html" +} diff --git a/package.json b/package.json index 6081ae70e..980465e18 100644 --- a/package.json +++ b/package.json @@ -252,6 +252,16 @@ "embeddedLanguages": { "meta.embedded.block.yaml": "yaml" } + }, + { + "injectTo": [ + "source.java" + ], + "scopeName": "inline.html", + "path": "./language-support/html/inline-html.json", + "embeddedLanguages": { + "meta.embedded.block.html": "html" + } } ], "jsonValidation": [