forked from Anthodev/Sublime-ManiaScript
-
Notifications
You must be signed in to change notification settings - Fork 3
/
ManiaScript.tmLanguage
222 lines (222 loc) · 17.7 KB
/
ManiaScript.tmLanguage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<?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>Script.txt</string>
</array>
<key>firstLineMatch</key>
<string>#RequireContext </string>
<!-- This is unused in ST -->
<!--<key>foldingStartMarker</key>
<string>(?x)
/\*\*(?!\*)
|^(?![^{]*?//|[^{]*?/\*(?!.*?\*/.*?\{)).*?\{\s*($|//|/\*(?!.*?\*/.*\S))
</string>
<key>foldingStopMarker</key>
<string>(?<!\*)\*\*/|^\s*\}</string>-->
<key>keyEquivalent</key>
<string>^~M</string>
<key>name</key>
<string>ManiaScript</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>match</key>
<string>\b(break|case|continue|default|else|for|foreach|if|return|switch|while|as|declare|in|netwrite|netread|metadata)\b</string>
<key>name</key>
<string>keyword.control.ms</string>
</dict>
<dict>
<key>match</key>
<string>#\b(Include|RequireContext|Setting|Const|Extends)\b</string>
<key>name</key>
<string>keyword.language.ms</string>
</dict>
<dict>
<key>match</key>
<string>\b(wait|sleep|assert|log)\b</string>
<key>name</key>
<string>entity.name.function.ms</string>
</dict>
<!-- From source.h -->
<!-- CLASSES -->
<dict>
<key>match</key>
<string>\b(Void|Integer|Real|Boolean|Text|Vec2|Vec3|Int3|Ident)\b</string>
<key>name</key>
<string>storage.type.ms</string>
</dict>
<!-- STRUCTS -->
<dict>
<key>match</key>
<string>\b(CMlScript|CMlEntry|CMlFileEntry|CMlLabel|CMlMediaPlayer|CMlQuad|CMlGauge|CMlGraph|CMlMinimap|CMlCamera|CMlBrowser|CManiaApp|CManiaAppEvent|CManiaAppTitle|CStation|CMlStation|CEditorPlugin|CSmMode|CSmMlScriptIngame|CSmAction|CSmMapType|CTmMlScriptIngame|CTmMode|CTmMapType|CNod|CMlPage|CUser|CTitle|CMlEvent|CXmlManager|CHttpManager|CAudioManager|CMlControl|CMlGraphCurve|CMap|CUILayer|CEditorPluginEvent|CBlockModel|CMacroblockModel|CItemAnchor|CBlock|CAnchorData|CMode|CSmPlayer|CSmModeEvent|CSmMapBase|CSmMapLandmark|CSmScore|CSmObject|CMlScriptIngame|CSmActionEvent|CMapType|CTmMlPlayer|CTmScore|CTmPlayer|CTmModeEvent|CMlFrame|CXmlDocument|CHttpRequest|CAudioSound|CMapInfo|CCollector|CBlockModelVariantGround|CBlockModelVariantAir|CBlockUnit|CTeam|CUIConfigMgr|CXmlRpc|CPlayer|CSmPlayerDriver|CSmBlockPole|CSmMapGate|CSmMapGauge|CSmMapSector|CSmMapPlayerSpawn|CSmMapBotPath|CSmMapObjectAnchor|CScore|CUIConfig|CTrackManiaScore|CTmResult|CXmlNode|CBlockModelVariant|CBlockUnitModel|CXmlRpcEvent|CSmBlock|CSmSector|CSmGauge|CBlockModelClip|CSmLandmark|CSmBase)\b</string>
<key>name</key>
<string>storage.type.ms</string>
</dict>
<!-- Variable -->
<dict>
<key>match</key>
<string>\b(Page|PageIsVisible|Now|Period|CurrentTime|CurrentTimeText|CurrentLocalDateText|LocalUser|LoadedTitle|MouseX|MouseY|MouseLeftButton|MouseRightButton|MouseMiddleButton|KeyUp|KeyDown|KeyLeft|KeyRight|KeyReturn|KeySpace|KeyDelete|EnableMenuNavigationInputs|IsMenuNavigationForeground|Xml|Http|Audio|Value|MaxLine|AutoNewLine|FullFileName|Style|Substyle|TextFont|Value|ValueLineCount|MaxLine|AppendEllipsis|AutoNewLine|Opacity|TextColor|TextSize|ImageUrl|ImageUrlFocus|Style|Substyle|StyleSelected|DownloadInProgress|Colorize|ModulateColor|BgColor|BgColorFocus|Opacity|KeepRatio|Style|Ratio|GradingRatio|Clan|Color|DrawBackground|DrawBlockBackground|CenteredBar|CoordsMin|CoordsMax|WorldPosition|MapPosition|MapYaw|ZoomFactor|CurMap|BuddyDoResult|BuddyDoErrorMessage|IsInBrowser|BrowserFocusedFrameId|Now|IsVisible|LocalUser|LoadedTitle|EnableMenuNavigationInputs|MouseX|MouseY|Xml|Http|Audio|Type|CustomEventLayer|CustomEventType|ExternalEventType|MenuNavAction|KeyCode|KeyName|LoadingScreenRequireKeyPressed|DontScaleMainMenuForHMD|Title|AudienceRegisteredUsers|CampaignMedalsMax|CampaignMedalsCurrent|CampaignMedalsRanking|LadderPoints|LadderRank|Station|Map|PlaceMode|EditMode|UndergroundMode|BlockStockMode|CursorCoord|CursorDir|CursorBlockModel|CursorTerrainBlockModel|CursorMacroblockModel|CameraVAngle|CameraHAngle|CameraToTargetDistance|TargetedPosition|EnableAirMapping|EnableMixMapping|MediatrackIngameEditedClipIndex|CustomSelectionRGB|EnableEditorInputsCustomProcessing|EditorInputIsDown_Menu|EditorInputIsDown_SwitchToRace|EditorInputIsDown_CursorUp|EditorInputIsDown_CursorRight|EditorInputIsDown_CursorDown|EditorInputIsDown_CursorLeft|EditorInputIsDown_CursorRaise|EditorInputIsDown_CursorLower|EditorInputIsDown_CursorTurn|EditorInputIsDown_CursorPick|EditorInputIsDown_CursorPlace|EditorInputIsDown_CursorDelete|EditorInputIsDown_CameraUp|EditorInputIsDown_CameraRight|EditorInputIsDown_CameraDown|EditorInputIsDown_CameraLeft|EditorInputIsDown_IconUp|EditorInputIsDown_IconRight|EditorInputIsDown_IconDown|EditorInputIsDown_IconLeft|CollectionSquareSize|CollectionSquareHeight|CollectionGroundY|ManialinkText|ManialinkPage|StartTime|EndTime|SpawnInvulnerabilityDuration|UseClans|UseForcedClans|UsePvPCollisions|UsePvPWeapons|UseInterractiveScreensIn3d|UseLaserVsBullets|UseLaserSkewering|UsePlayerTagging|UseBeaconsWithRecipients|UseAmmoBonusOnHit|UseSameWallJump|UseDefaultActionEvents|UseAllies|UseAutoSpawnBots|ForceNavMapsComputation|GameplayVersion|Gameplay|UseProtectClanmates|OffZoneRadius|OffZoneRadiusSpeed|OffZoneCenterLandmarkId|PlayersNbTotal|PlayersNbAlive|PlayersNbDead|ClansNbTotal|ClansNbAlive|ClansNbDead|ArenaNow|InputPlayer|GUIPlayer|HideResumePlayingButton|Now|Variant|Owner|IsActive|Energy|EnergyMax|EnergyCost|EnergyReload|InitialDirection,Vec3|Cooldown|Mode|InputPlayer|GUIPlayer|MapStartLinePos|MapIsLapRace|MapNbLaps|Clan1Score|Clan2Score|ClansNbTotal|CutOffTimeLimit|NbLaps|IndependantLaps|UseClans|UseForcedClans|RespawnBehaviour|UiRounds|UiLaps|UiStuntsMode|UiDisplayStuntsNames|UiDisableHelpMessage|UiScoresPointsLimit|UiRaceChrono|HideOpponents|ForceMaxOpponents|EnableLegacyXmlRpcCallbacks|MedalGhost_ShowGold|MedalGhost_ShowSilver|MedalGhost_ShowBronze|PersonalGhost|MapStartLinePos|MapIsLapRace|MapNbLaps|Mode|Id|MainFrame|LinksInhibited|Login|Name|AvatarUrl|ZonePath|ZoneFlagUrl|CountryFlagUrl|Language|Description|Color|ClubLink|BroadcastTVLogin|SteamUserId|FameStars|Echelon|IsBeginner|LadderRank|LadderTotal|LadderPoints|LadderZoneName|LadderZoneFlagUrl|RequestedClan|RequestsSpectate|IsFakeUser|StereoDisplayMode|TitleId|BaseTitleId|Name|Desc|InfoUrl|DownloadUrl|TitleVersion|Type|KeyCode|KeyName|CharPressed|ControlId|Control|MenuNavAction|CustomEventType|SlotsAvailable|ForceEnableMusic|LimitMusicVolumedB|ControlId|Size|HorizontalAlign|VerticalAlign|Visible|RelativePosition|RelativeScale|RelativeRotation|AbsolutePosition|AbsoluteScale|AbsoluteRotation|Color|Style|Width|MapInfo|MapName|Comments|AuthorZoneIconUrl|CollectionName|DecorationName|AuthorLogin|AuthorNickName|AuthorZonePath|MapType|MapStyle|TMObjective_AuthorTime|TMObjective_GoldTime|TMObjective_SilverTime|TMObjective_BronzeTime|TMObjective_NbLaps|TMObjective_IsLapRace|ObjectiveTextAuthor|ObjectiveTextGold|ObjectiveTextSilver|ObjectiveTextBronze|CopperPrice|Size|IsVisible|Type|AttachId|ManialinkPage|LocalPage|Type|Input|EditedAnchorDataId|Name|IsRoad|IsTerrain|WaypointType|NoRespawn|VariantGround|VariantAir|IsGround|HasStart|HasFinish|HasCheckpoint|GeneratedBlockModel|Name|Position|BlockScriptId|CanHaveAnchor|Coord|Direction|BlockModel|DefaultTag|DefaultOrder|Tag|Order|ModeStatusMessage|LoadedTitle|ServerLogin|ServerName|ServerModeName|MapName|Map|MapPlayerModelName|NeutralEmblemUrl|ForcedClubLinkUrl1|ForcedClubLinkUrl2|Now|Period|MatchEndRequested|ServerShutdownRequested|MapLoaded|NextMapIndex|UIManager|Ladder_RequestInProgress|Solo_NewRecordSequenceInProgress|XmlRpc|Xml|Http|UseMinimap|Replay_AutoStart|Score|SpawnStatus|StartTime|EndTime|AmmoGain|AmmoPower|AutoSwitchWeapon|CurWeapon|CurAmmo|CurAmmoMax|CurAmmoUnit|Armor|ArmorMax|ArmorGain|ArmorReplenishGain|ArmorPower|Stamina|StaminaMax|StaminaGain|StaminaPower|SpeedPower|JumpPower|AllowWallJump|AllowProgressiveJump|UseAlternateWeaponVisual|IsHighlighted|EnergyLevel|ForceColor|ForceModelId|HasShield|ThrowSpeed|CurrentClan|IdleDuration|Position|AimYaw|AimPitch|AimDirection|IsUnderground|IsTouchingGround|IsInAir|IsOnTechGround|IsOnTechLaser|IsOnTechArrow|IsOnTechArmor|IsOnTechSafeZone|IsOnTech|IsOnTechNoWeapon|IsInWater|Velocity|Speed|IsInOffZone|IsCapturing|CapturedLandmark|IsFakePlayer|IsBot|Driver|Type|Player|Damage|VictimObject|ShooterPoints|Shooter|Victim|Height|MissDist|WeaponNum|ShooterUsedAction|ShooterWeaponNum|ShooterActionSlot|ShooterActionId|VictimUsedAction|VictimWeaponNum|VictimActionSlot|VictimActionId|Action_Slot|ActionInput|ActionId|Param1|Object|BlockPole|Landmark|PlayerId|User|PlayerWasSpawned|PlayerWasInLadderMatch|PlayerLastPosition|PlayerLastAimDirection|GiveUp|CommandName|CommandValueBoolean|CommandValueInteger|CommandValueReal|CommandValueText|ActionChange|Clan|IsActive|NumberOfCollectors|Tag|Order|Position|Base|Gate|Gauge|Sector|PlayerSpawn|BotPath|ObjectAnchor|TeamNum|Points|RoundPoints|NbEliminationsInflicted|NbEliminationsTaken|NbRespawnsRequested|DamageInflicted|DamageTaken|Status|ModelId|Player|Position|Vel|MachineState|Throwable|GameTime|UI|ClientUI|IsSpectatorMode|UseClans|UseForcedClans|Map|CurrentServerLogin|CurrentServerName|CurrentServerJoinLink|CurrentServerModeName|Type|Player|Damage|ProjectileModelId|ContextId|Position|Direction|Normal|CustomEditAnchorData|ValidationStatus|ValidabilityRequirementsMessage|ValidationEndRequested|IsSwitchedToPlayground|CurrentClan|RaceState|IsSpawned|Score|RaceStartTime|LapStartTime|CurRace|CurLap|CurrentNbLaps|CurTriggerIndex|CurCheckpointRaceTime|CurCheckpointLapTime|AccelCoef|ControlCoef|Position|AimYaw|AimPitch|AimDirection|Distance|Speed|DisplaySpeed|TeamNum|Points|BestRace|BestLap|PrevRaceDeltaPoints|PrevRace|TempResult|CurrentClan|Score|RaceStartTime|IsSpawned|CurRace|CurLap|CurrentNbLaps|CurTriggerIndex|Position|AimYaw|AimPitch|AimDirection|AccelCoef|ControlCoef|Type|Player|RaceTime|CheckpointInRace|CheckpointInLap|IsEndLap|IsEndRace|LapTime|StuntsScore|NbRespawns|BlockId|Speed|Distance|Damages|StuntFigure|Angle|Points|Combo|IsStraight|IsReverse|IsMasterJump|Factor|User|PlayerWasSpawned|PlayerWasInLadderMatch|ClipWindowActive|ClipWindowRelativePosition|ClipWindowSize|TextContents|Root|Url|Result|StatusCode|IsCompleted|IsPlaying|DownloadInProgress|Volume|VolumedB|Pitch|RelativePosition|PlayCursor|PlayLength|Comments|CopperPrice|CollectionName|AuthorLogin|AuthorNickName|AuthorZonePath|MapType|MapStyle|Unlocked|Name|Path|Name|PageName|Offset|BlockUnitModel|Block|Name|ZonePath|City|EmblemUrl|PresentationManialinkUrl|ClubLinkUrl|ColorPrimary|ColorSecondary|ColorText|ColorizedName|UIAll|UISequenceMaxDuration|User|Login|Name|RequestedClan|RequestsSpectate|Behaviour|AggroRadius|DisengageDistance|PathSpeedCoef|Accuracy|ReactionTime|ShootPeriodMin|ShootPeriodMax|RocketAnticipation|Fov|AttackFilter|Target|IsStuck|IsFlying|PathOffset|Agressivity|UseOldShootingSystem|Patrol_Mode|Escape_AnchorPoint|Escape_DistanceSafe|Escape_DistanceMinEscape|Escape_DistanceMaxEscape|Saunter_AnchorPoint|Saunter_BaseChillingTime|Saunter_ChillingTimeDelta|Saunter_Radius|Scripted_ForceAimInMoveDir|ForcedTarget|Captured|Sector|Gauge|Clan|Automatic|ManualClosed|AutoClosed|AutoIsActive|AutoCloseDelay|AutoOpenSpeed|Clan|ValueReal|Value|Max|Speed|Captured|Clan|IsFlying|ItemName|ItemModelId|User|IsRegisteredForLadderMatch|LadderScore|LadderRankSortValue|LadderMatchScoreValue|LadderClan|UISequence|UISequenceIsCompleted|UISequence_CustomMTClip|UISequence_CustomMTRefTime|UISequence_CanSkipIntroMT|UISequence_PodiumPlayersWin|UISequence_PodiumPlayersLose|ManialinkPage|BigMessage|BigMessageAvatarLogin|BigMessageAvatarVariant|BigMessageSound|BigMessageSoundVariant|StatusMessage|GaugeMessage|GaugeRatio|GaugeClan|MarkersXML|OverlayHideNotices|OverlayHideMapInfo|OverlayHideOpponentsInfo|OverlayHideChat|OverlayHideCheckPointList|OverlayHideRoundScores|OverlayHideCountdown|OverlayHideCrosshair|OverlayHideGauges|OverlayHideConsumables|OverlayHide321Go|OverlayHideBackground|OverlayHideChrono|OverlayHideSpeedAndDist|OverlayHidePersonnalBestAndRank|OverlayHidePosition|OverlayHideCheckPointTime|OverlayHideEndMapLadderRecap|OverlayHideMultilapInfos|OverlayHideSpectatorControllers|OverlayHideSpectatorInfos|OverlayChatHideAvatar|OverlayChatLineCount|OverlayChatOffset|CountdownCoord|NoticesFilter_HidePlayerInfo|NoticesFilter_HidePlayerWarning|NoticesFilter_HidePlayerInfoIfNotMe|NoticesFilter_HidePlayerWarningIfNotMe|NoticesFilter_HideMapInfo|NoticesFilter_HideMapWarning|NoticesFilter_HideMatchInfo|NoticesFilter_HideMatchWarning|NoticesFilter_LevelToShowAsBigMessage|ScoreTable|ScoreTableVisibility|SmallScoreTable|SmallScoreTableVisibility|ScoreTableOnlyManialink|AltMenuNoDefaultScores|AltMenuNoCustomScores|OverlayScoreSummary|ScoreSummary_Player1|ScoreSummary_Points1|ScoreSummary_RoundPoints1|ScoreSummary_MatchPoints1|ScoreSummary_Gauge1|ScoreSummary_Player2|ScoreSummary_Points2|ScoreSummary_RoundPoints2|ScoreSummary_MatchPoints2|ScoreSummary_Gauge2|ScreenIn3dHideScoreSummary|ScreenIn3dHideVersus|CountdownEndTime|UIStatus|AlliesLabelsVisibility|AlliesLabelsShowGauges|AlliesLabelsShowNames|AlliesLabelsMaxCount|TeamLabelsVisibility|TeamLabelsShowGauges|TeamLabelsShowNames|OpposingTeamLabelsVisibility|OpposingTeamLabelsShowGauges|OpposingTeamLabelsShowNames|ForceSpectator|SpectatorForceCameraType|SpectatorAutoTarget|SpectatorForcedTarget|SpectatorForcedClan|SpectatorCamAutoLatitude|SpectatorCamAutoLongitude|SpectatorCamAutoRadius|SpectatorObserverMode|Time|StuntsScore|NbRespawns|Name|TextContents|TextRawContents|TextRecursiveContents|Name|IsAllUnderground|IsPartUnderground|Size|OffsetBoundingBoxMin|OffsetBoundingBoxMax|Offset|Type|Param1|Param2|ParamArray1|Base|Clan|ValueReal|Value|Max|Speed|Tag|Order|Position|DirFront|Clan|IsActive|NumberOfCollectors)\b</string>
<key>name</key>
<string>storage.type.ms</string>
</dict>
<!-- ENUMS -->
<dict>
<key>match</key>
<string>\b(LinkType|EKeepRatioMode|EBuddyAction|EBuddyResult|ELinkType|EType|EMenuNavAction|CardinalDirections|PlaceMode|EditMode|EWeapon|EActionSlot|EActionInput|EGameplay|ETmScoreSortOrder|ETMRespawnBehaviour|ETmRaceChronoBehaviour|EPersonalGhost|EEchelon|ETagType|EStereoDisplayMode|Type|EMenuNavAction|ELibSound|AlignHorizontal|AlignVertical|EUILayerType|Type|EInput|EBaseType|EWayPointType|EProdState|CardinalDirections|CardinalDirections|EMedal|ESpawnStatus|EType|EActionSlot|EActionInput|EActionSlots|EStatus|EUISound|EInGameMenuResult|EType|ValidationStatus|ERaceState|EType|EStuntFigure|EControlType|EnumAutoTerrainPlaceType|ESmDriverBehaviour|ESmDriverPatrolMode|ESmAttackFilter|EUISequence|EUIStatus|EVisibility|ELabelsVisibility|EAvatarVariant|EUISound|ENoticeLevel|EObserverMode|ETmRaceResultCriteria|CardinalDirEnum|MultiDirEnum|EType|EnumClipType|MultiDirEnum)\b</string>
<key>name</key>
<string>storage.type.ms</string>
</dict>
<!-- End source mess -->
<dict>
<key>match</key>
<string>\bg[A-Z]\w*\b</string>
<key>name</key>
<string>variable.other.readwrite.global.mac-classic.ms</string>
</dict>
<dict>
<key>match</key>
<string>\b(Null|NullId|True|False)\b</string>
<key>name</key>
<string>constant.language.ms</string>
</dict>
<dict>
<key>match</key>
<string>\b([0-9]+)?\b</string>
<key>name</key>
<string>constant.numeric.ms</string>
</dict>
<dict>
<key>match</key>
<string>\bUI[a-zA-Z]*?\b</string>
<key>name</key>
<string>storage.type.ms</string>
</dict>
<dict>
<key>begin</key>
<string>"""</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ms</string>
</dict>
</dict>
<key>end</key>
<string>"""</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ms</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.source.cs</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>{{{.*?}}}</string>
<key>name</key>
<string>constant.character.escape.source.cs</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.source.cs</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.source.cs</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.source.cs</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.source.cs</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>\b([\w\d]+::[\w\d]+)?\b</string>
<key>name</key>
<string>entity.name.function.c</string>
</dict>
<dict>
<key>match</key>
<string>\b(\.(count|exists|existskey|remove|removekey|add|sort|keyof))?\b</string>
<key>name</key>
<string>entity.name.function.c</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>comments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>/\*</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.block.ms</string>
</dict>
</dict>
<key>end</key>
<string>\*/\n?</string>
<key>name</key>
<string>comment.block.ms</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.block.ms</string>
</dict>
</dict>
<key>match</key>
<string>(//).*$\n?</string>
<key>name</key>
<string>comment.block.ms</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.ms</string>
</dict>
</plist>