Add syntax highlighting for Haxe

This commit is contained in:
Jens Fischer 2024-09-20 16:30:40 +02:00
parent 30765cf7b3
commit 0dbca4fe47
3 changed files with 2559 additions and 1 deletions

View file

@ -24,7 +24,7 @@ namespace SourceGit.Models
_backend = new RegistryOptions(defaultTheme); _backend = new RegistryOptions(defaultTheme);
_extraGrammars = new List<IRawGrammar>(); _extraGrammars = new List<IRawGrammar>();
string[] extraGrammarFiles = ["toml.json", "kotlin.json"]; string[] extraGrammarFiles = ["toml.json", "kotlin.json", "haxe.json", "hxml.json"];
foreach (var file in extraGrammarFiles) foreach (var file in extraGrammarFiles)
{ {
var asset = AssetLoader.Open(new Uri($"avares://SourceGit/Resources/Grammars/{file}", var asset = AssetLoader.Open(new Uri($"avares://SourceGit/Resources/Grammars/{file}",

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,70 @@
{
"information_for_contributors": [
"This file has been copied from https://github.com/vshaxe/haxe-TmLanguage/blob/ddad8b4c6d0781ac20be0481174ec1be772c5da5/hxml.tmLanguage",
"and converted to JSON using https://marketplace.visualstudio.com/items?itemName=pedro-w.tmlanguage"
],
"fileTypes": [
"hxml"
],
"foldingStartMarker": "--next",
"foldingStopMarker": "\\n\\n",
"keyEquivalent": "^@H",
"name": "Hxml",
"patterns": [
{
"captures": {
"1": {
"name": "punctuation.definition.comment.hxml"
}
},
"match": "(#).*$\\n?",
"name": "comment.line.number-sign.hxml"
},
{
"begin": "(?<!\\w)(--macro)\\b",
"beginCaptures": {
"1": {
"name": "keyword.other.hxml"
}
},
"end": "\\n",
"patterns": [
{
"include": "source.hx#block-contents"
}
]
},
{
"match": "(?<!\\w)(-m|-main|--main|--run)\\b\\s*\\b(?:(([a-z][a-zA-Z0-9]*\\.)*)(_*[A-Z]\\w*))?\\b",
"captures": {
"1": {
"name": "keyword.other.hxml"
},
"2": {
"name": "support.package.hx"
},
"4": {
"name": "entity.name.type.hx"
}
}
},
{
"match": "(?<!\\w)(-cppia|-cpp?|-js|-as3|-swf-(header|version|lib(-extern)?)|-swf9?|-neko|-python|-php|-cs|-java-lib|-java|-xml|-lua|-hl|-x|-lib|-D|-resource|-exclude|-version|-v|-debug|-prompt|-cmd|-dce\\s+(std|full|no)?|--flash-strict|--no-traces|--flash-use-stage|--neko-source|--gen-hx-classes|-net-lib|-net-std|-c-arg|--each|--next|--display|--no-output|--times|--no-inline|--no-opt|--php-front|--php-lib|--php-prefix|--remap|--help-defines|--help-metas|-help|--help|-java|-cs|--js-modern|--interp|--eval|--dce|--wait|--connect|--cwd|--run).*$",
"captures": {
"1": {
"name": "keyword.other.hxml"
}
}
},
{
"match": "(?<!\\w)(--js(on)?|--lua|--swf-(header|version|lib(-extern)?)|--swf|--as3|--neko|--php|--cppia|--cpp|--cppia|--cs|--java-lib(-extern)?|--java|--jvm|--python|--hl|-p|--class-path|-L|--library|--define|-r|--resource|--cmd|-C|--verbose|--debug|--prompt|--xml|--json|--net-lib|--net-std|--c-arg|--version|--haxelib-global|-h|--main|--server-connect|--server-listen).*$",
"captures": {
"1": {
"name": "keyword.other.hxml"
}
}
}
],
"scopeName": "source.hxml",
"uuid": "CB1B853A-C4C8-42C3-BA70-1B1605BE51C1"
}