Skip to content

Instantly share code, notes, and snippets.

@brianairb
Created August 29, 2016 10:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brianairb/e1bbdf9dcd1cfc16ba1224fc2abd1e9e to your computer and use it in GitHub Desktop.
Save brianairb/e1bbdf9dcd1cfc16ba1224fc2abd1e9e to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>ns</string>
</array>
<key>foldingStartMarker</key>
<string>(?x)
/\*\*(?!\*)
|^(?![^{]*?//|[^{]*?/\*(?!.*?\*/.*?\{)).*?\{\s*($|//|/\*(?!.*?\*/.*\S))
</string>
<key>foldingStopMarker</key>
<string>(?&lt;!\*)\*\*/|^\s*\}</string>
<key>name</key>
<string>Nox Script 3.0</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>match</key>
<string>\b(break|continue|else|for|goto|if|return|while)\b</string>
<key>name</key>
<string>keyword.control.ns</string>
</dict>
<dict>
<key>match</key>
<string>\b(true|false|self|other)\b</string>
<key>name</key>
<string>keyword.other.ns</string>
</dict>
<dict>
<key>match</key>
<string>\b(float|int|void|string|object)\b</string>
<key>name</key>
<string>storage.type.ns</string>
</dict>
<dict>
<key>match</key>
<string>\b(const)\b</string>
<key>name</key>
<string>storage.modifier.ns</string>
</dict>
<dict>
<key>comment</key>
<string>common C constant naming idiom -- kConstantVariable</string>
<key>match</key>
<string>\bk[A-Z]\w*\b</string>
<key>name</key>
<string>constant.other.variable.mac-classic.ns</string>
</dict>
<dict>
<key>match</key>
<string>\bg[A-Z]\w*\b</string>
<key>name</key>
<string>variable.other.readwrite.global.mac-classic.ns</string>
</dict>
<dict>
<key>match</key>
<string>\bs[A-Z]\w*\b</string>
<key>name</key>
<string>variable.other.readwrite.static.mac-classic.ns</string>
</dict>
<dict>
<key>match</key>
<string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b</string>
<key>name</key>
<string>constant.numeric.ns</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ns</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ns</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ns</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?: ^ # begin-of-line
|
(?: (?= \s ) (?&lt;!else|new|return) (?&lt;=\w) # or word + space before name
| (?= \s*[A-Za-z_] ) (?&lt;!&amp;&amp;) (?&lt;=[*&amp;&gt;]) # or type modifier before name
)
)
(\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\s*\()
(
(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name
(?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) ) # if it is a C++ operator
)
\s*(?=\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.function.leading.ns</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.function.ns</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.ns</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})|(?=#)|(;)</string>
<key>name</key>
<string>meta.function.ns</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>include</key>
<string>#parens</string>
</dict>
<dict>
<key>match</key>
<string>\bconst\b</string>
<key>name</key>
<string>storage.modifier.ns</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>block</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>meta.block.ns</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block_innards</string>
</dict>
</array>
</dict>
<key>block_innards</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#access</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.support.function.leading.ns</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>support.function.C99.ns</string>
</dict>
</dict>
<key>match</key>
<string>(\s*)\b(Wall|WallOpen|WallGroupOpen|WallClose|WallGroupClose|WallToggle|WallGroupToggle|WallBreak|WallGroupBreak|SecondTimer|FrameTimer|Move|GroupMove|LookAtDirection|GroupLookAtDirection|ObjectOn|ObjectGroupOn|WayPointOn|WayPointGroupOn|ObjectOff|ObjectGroupOff|WayPointOff|WayPointGroupOff|ObjectToggle|ObjectGroupToggle|WayPointToggle|WayPointGroupToggle|Delete|GroupDelete|Wander|GroupWander|Unused1f|Unused20|GoBackHome|AudioEvent|Print|PrintToAll|Chat|StopScript|UnlockDoor|LockDoor|IsObjectOn|IsWaypointOn|IsLocked|RandomFloat|Random|SecondTimerWithArg|FrameTimerWithArg|IntToString|FloatToString|CreateObject|Damage|GroupDamage|CreateMover|GroupCreateMover|AwardSpell|GroupAwardSpell|Enchant|GroupEnchant|GetHost|Object|GetObjectX|GetWaypointX|GetObjectY|GetWaypointY|GetObjectZ|GetDirection|MoveObject|MoveWaypoint|Raise|LookWithAngle|PushObjectTo|PushObject|GetLastItem|GetPreviousItem|HasItem|GetHolder|Pickup|Drop|HasClass|Unused50|HasEnchant|EnchantOff|CurrentHealth|MaxHealth|RestoreHealth|Distance|IsVisibleTo|Unused58|Unused59|Unused5a|Unused5b|Unused5c|Unused5d|Unused5e|GetCharacterData|LookAtObject|Walk|GroupWalk|CancelTimer|Effect|SetOwner|GroupSetOwner|SetOwners|GroupSetOwners|IsOwnedBy|GroupIsOwnedBy|IsOwnedByAny|GroupIsOwnedByAny|ClearOwner|Waypoint|WaypointGroup|ObjectGroup|WallGroup|ChatTimerSeconds|ChatTimer|Unused74|DestroyChat|DestroyEveryChat|SetQuestStatus|SetQuestStatusFloat|GetQuestStatus|GetQuestStatusFloat|ResetQuestStatus|IsTrigger|IsCaller|SetDialog|CancelDialog|StoryPic|TellStory|StartDialog|CastSpellObjectObject|CastSpellObjectLocation|CastSpellLocationObject|CastSpellLocationLocation|UnBlind|Blind|WideScreen|GetElevatorStatus|CreatureGuard|CreatureGroupGuard|CreatureHunt|CreatureGroupHunt|CreatureIdle|CreatureGroupIdle|CreatureFollow|CreatureGroupFollow|AggressionLevel|GroupAggressionLevel|HitLocation|GroupHitLocation|HitFarLocation|GroupHitFarLocation|SetRoamFlag|GroupSetRoamFlag|Attack|GroupAttack|JournalEntry|JournalDelete|JournalEdit|RetreatLevel|GroupRetreatLevel|ResumeLevel|GroupResumeLevel|RunAway|GroupRunAway|PauseObject|GroupPauseObject|IsAttackedBy|GetGold|ChangeGold|GetAnswer|GiveXp|HasSubclass|AutoSave|Music|StartupScreen|IsTalking|GetTrigger|GetCaller|MakeFriendly|MakeEnemy|BecomePet|BecomeEnemy|Unknownb8|Unknownb9|SetHalberd|DeathScreen|Frozen|NoWallSound|SetCallback|DeleteObjectTimer|TrapSpells|IsTrading|ClearMessages|SetShopkeeperText|Unknownc4|IsSummoned|ZombieStayDown|ZombieGroupStayDown|RaiseZombie|RaiseZombieGroup|MusicPushEvent|MusicPopEvent|MusicEvent|IsGameBall|IsCrown|EndGame|ImmediateBlind|ChangeScore|GetScore)\b</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.function-call.leading.ns</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>support.function.any-method.ns</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.ns</string>
</dict>
</dict>
<key>match</key>
<string>(?x) (?: (?= \s ) (?:(?&lt;=else|new|return) | (?&lt;!\w)) (\s+))?
(\b
(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\s*\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\b | :: )++ # actual name
)
\s*(\()</string>
<key>name</key>
<string>meta.function-call.ns</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.other.ns</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.ns</string>
</dict>
</dict>
<key>match</key>
<string>(?x)
(?x)
(?:
(?: (?= \s ) (?&lt;!else|new|return) (?&lt;=\w)\s+ # or word + space before name
)
)
(
(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name
(?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) )? # if it is a C++ operator
)
\s*(\()</string>
<key>name</key>
<string>meta.initialization.ns</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<key>comments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.block.ns</string>
</dict>
</dict>
<key>match</key>
<string>^/\* =(\s*.*?)\s*= \*/$\n?</string>
<key>name</key>
<string>comment.block.ns</string>
</dict>
<dict>
<key>begin</key>
<string>/\*</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ns</string>
</dict>
</dict>
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.ns</string>
</dict>
<dict>
<key>match</key>
<string>\*/.*\n</string>
<key>name</key>
<string>invalid.illegal.stray-comment-end.ns</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.line.ns</string>
</dict>
</dict>
<key>match</key>
<string>^// =(\s*.*?)\s*=\s*$\n?</string>
<key>name</key>
<string>comment.line.banner.c++</string>
</dict>
<dict>
<key>begin</key>
<string>//</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ns</string>
</dict>
</dict>
<key>end</key>
<string>$\n?</string>
<key>name</key>
<string>comment.line.double-slash.c++</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.c++</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>parens</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>meta.parens.ns</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<key>string_escaped_char</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\(\\|[abefnprtv'"?]|[0-3]\d{,2}|[4-7]\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})</string>
<key>name</key>
<string>constant.character.escape.ns</string>
</dict>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>invalid.illegal.unknown-escape.ns</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.ns</string>
<key>uuid</key>
<string>836d54f3-049f-4df4-8895-64cf9572d88f</string>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment