diff --git a/language-support/jbang.tmLanguage.json b/language-support/build.jbang.tmLanguage.json similarity index 63% rename from language-support/jbang.tmLanguage.json rename to language-support/build.jbang.tmLanguage.json index 59bc086..68c915a 100644 --- a/language-support/jbang.tmLanguage.json +++ b/language-support/build.jbang.tmLanguage.json @@ -1,11 +1,13 @@ { - "name": "JBang", - "scopeName": "source.jbang", + "name": "Build JBang", + "scopeName": "source.build.jbang", "patterns": [ { "comment": "source.java is defined in https://github.com/microsoft/vscode/blob/main/extensions/java/syntaxes/java.tmLanguage.json", "include": "source.java" + }, + { + "include": "inline.jbang" } - ], - "uuid": "b67884ea-cc0a-4f99-b680-7ee7c3bb04d8" + ] } \ No newline at end of file diff --git a/language-support/inline-jbang.tmLanguage.json b/language-support/inline-jbang.tmLanguage.json new file mode 100644 index 0000000..1271cf0 --- /dev/null +++ b/language-support/inline-jbang.tmLanguage.json @@ -0,0 +1,25 @@ +{ + "name": "jbang", + "scopeName": "inline.jbang", + "injectionSelector": "L:source.java -comment -string", + "patterns": [ + { + "contentName": "meta.embedded.block.jbang", + "match": "^(//)(DEPS|JAVA|MAIN|FILES|SOURCES|PREVIEW|MODULE|DESCRIPTION|GAV|COMPILE_OPTIONS|JAVAC_OPTIONS|RUNTIME_OPTIONS|JAVA_OPTIONS|NATIVE_OPTIONS|REPOS|MANIFEST|CDS|KOTLIN|GROOVY|JAVAAGENT)\\s+(.*)$", + "captures": { + "0":{ + "name":"directive.jbang" + }, + "1":{ + "name":"comment.line.double-slash.java" + }, + "2": { + "name": "keyword.directive.jbang" + }, + "3": { + "name": "string.directive.jbang" + } + } + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index 48d90e2..f3f0af7 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,18 @@ "grammars": [ { "language": "jbang", - "scopeName": "source.jbang", - "path": "./language-support/jbang.tmLanguage.json" + "scopeName": "source.build.jbang", + "path": "./language-support/build.jbang.tmLanguage.json" + }, + { + "injectTo": [ + "source.java" + ], + "scopeName": "inline.jbang", + "path": "./language-support/inline-jbang.tmLanguage.json", + "embeddedLanguages": { + "meta.embedded.block.jbang": "jbang" + } } ], "javaExtensions": [