Skip to content

Commit 1093ceb

Browse files
Added support for UnrealScript (#2305)
1 parent bd4d816 commit 1093ceb

18 files changed

+584
-3
lines changed

components.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components.json

+5
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,11 @@
10681068
"title": "T4 templating",
10691069
"owner": "RunDevelopment"
10701070
},
1071+
"unrealscript": {
1072+
"title": "UnrealScript",
1073+
"alias": ["uscript", "uc"],
1074+
"owner": "RunDevelopment"
1075+
},
10711076
"vala": {
10721077
"title": "Vala",
10731078
"require": "clike",

components/prism-unrealscript.js

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Prism.languages.unrealscript = {
2+
'comment': /\/\/.*|\/\*[\s\S]*?\*\//,
3+
'string': {
4+
pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
5+
greedy: true
6+
},
7+
'category': {
8+
pattern: /(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,
9+
lookbehind: true,
10+
greedy: true,
11+
alias: 'property'
12+
},
13+
'metadata': {
14+
pattern: /(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,
15+
lookbehind: true,
16+
greedy: true,
17+
inside: {
18+
'property': /\w+(?=\s*=)/,
19+
'operator': /=/,
20+
'punctuation': /[<>|]/
21+
}
22+
},
23+
'macro': {
24+
pattern: /`\w+/,
25+
alias: 'property'
26+
},
27+
'class-name': {
28+
pattern: /(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,
29+
lookbehind: true
30+
},
31+
32+
'keyword': /\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,
33+
'function': /[a-z_]\w*(?=\s*\()/i,
34+
35+
'boolean': /\b(?:false|true)\b/,
36+
'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,
37+
// https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html
38+
'operator': />>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:Cross|Dot|ClockwiseFrom)\b/,
39+
'punctuation': /[()[\]{};,.]/
40+
};
41+
42+
Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript;

components/prism-unrealscript.min.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/prism-unrealscript.html

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<h2>Full example</h2>
2+
<pre><code>// Source: https://github.com/Jusas/XCOM2_ReconSoldierClass/blob/master/ReconOperatorSoldierClass/Src/ReconSoldierClass/Classes/ReconOperator_AcademyUnlocks.uc
3+
4+
class ReconOperator_AcademyUnlocks extends X2StrategyElement;
5+
6+
static function array&lt;X2DataTemplate> CreateTemplates()
7+
{
8+
local array&lt;X2DataTemplate> Templates;
9+
10+
Templates.AddItem(AdrenalineUnlock());
11+
12+
return Templates;
13+
}
14+
15+
static function X2SoldierAbilityUnlockTemplate AdrenalineUnlock()
16+
{
17+
local X2SoldierAbilityUnlockTemplate Template;
18+
local ArtifactCost Resources;
19+
20+
`CREATE_X2TEMPLATE(class'X2SoldierAbilityUnlockTemplate', Template, 'ReconAdrenalineUnlock');
21+
22+
Template.AllowedClasses.AddItem('ReconSoldierClass');
23+
Template.AbilityName = 'ReconAdrenalineSpike';
24+
Template.strImage = "img:///UILibrary_ReconOperator.GTS.GTS_adrenaline";
25+
26+
// Requirements
27+
Template.Requirements.RequiredHighestSoldierRank = 5;
28+
Template.Requirements.RequiredSoldierClass = 'ReconSoldierClass';
29+
Template.Requirements.RequiredSoldierRankClassCombo = true;
30+
Template.Requirements.bVisibleIfSoldierRankGatesNotMet = true;
31+
32+
// Cost
33+
Resources.ItemTemplateName = 'Supplies';
34+
Resources.Quantity = 75;
35+
Template.Cost.ResourceCosts.AddItem(Resources);
36+
37+
return Template;
38+
}</code></pre>

plugins/autoloader/prism-autoloader.js

+2
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@
187187
"trig": "turtle",
188188
"ts": "typescript",
189189
"t4": "t4-cs",
190+
"uscript": "unrealscript",
191+
"uc": "unrealscript",
190192
"vb": "visual-basic",
191193
"xeoracube": "xeora",
192194
"yml": "yaml"

plugins/autoloader/prism-autoloader.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/show-language/prism-show-language.js

+2
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@
164164
"t4": "T4 Text Templates (C#)",
165165
"t4-vb": "T4 Text Templates (VB)",
166166
"t4-templating": "T4 templating",
167+
"uscript": "UnrealScript",
168+
"uc": "UnrealScript",
167169
"vbnet": "VB.Net",
168170
"vhdl": "VHDL",
169171
"vim": "vim",

0 commit comments

Comments
 (0)