# [PackageDev] target_format: plist, ext: tmLanguage --- name: Sprak Language Extension scopeName: source.sprak fileTypes: [sprak,Sprak,SPRAK] uuid: 92b7c74c-cde8-4611-979e-a162a03c37fb patterns: - comment: Comment name: comment.line.sprak match: (#).* captures: '1': { name: punctuation.definition.comment.sprak } - comment: Keywords name: keyword.control.sprak match: \b(else if|(end )?if|(end )?void|end|else|loop|in|from|to|break|return)\b - comment: Operators name: keyword.operator.sprak match: '^(?:(?i)and|(?i)or|[!<->]=|&&|\|\||[!<->]|[*+\-/])$' - comment: Types name: storage.type.sprak match: \b(void|bool|number|string|array|var)\b - comment: Functions name: support.function.sprak match: \b(Allow|Append|Blip|BootFromFloppy|Broadcast|ChangeBalance|CharToInt|Charisma|ClearData|ClearMemories|ClearText|Color|Connect|CopyToClipBoard|Corruption|Cos|Count|DisconnectAll|DisplayGraphics|Drink|Drunkenness|EnableAPI|EraseMemory|FastForward|FindPath|GetAction|GetAllRooms|GetBalanceForPerson|GetChannel|GetConnections|GetHour|GetIndexes|GetMemories|GetMinute|GetNumericData|GetPosition|GetPeople|GetRain|GetRoom|GetThingsInRoom|GetThingsOfType|GetTypeOfThing|GetUser|HD|HSVtoRGB|HasFloppy|HasFunction|HasIndex|HasMemory|Height|Info|Input|Int|InteractWith|IntToChar|IsKeyPressed|IsUser|Line|Lines|LoadData|LoadMemory|Lock|Log|Mod|Move|MovePerson|Name|OnHack|OnIntruder|Pitch|PlaySound|Position|Print|PrintS|QuickBoost|Quit|RGBToHSV|Random|Range|Rect|RegisterSeller|RemoteFunctionCall|Remove|RemoveAll|Repeat|RestoreCode|Round|SaveData|SaveMemory|Say|SetChannel|SetMaxTime|SetMhz|SetNumericData|SetPosition|SetRain|Sin|Sleep|Sleepiness|Slurp|Smelliness|Speed|StringContains|Switch|TeleportSetWorldPosition|Text|Time|Toggle|Trippy|TurnLeft|TurnOff|TurnOffSound|TurnOn|TurnOnSound|TurnRight|Type|Unlock|Width|ZapPerson|ZapPersonGently)\b - comment: Numeric name: constant.numeric.sprak match: \b(\d(\.\d)?)+ - comment: Global name: constant.global.sprak match: \b\w+\$ - comment: SUB name: meta.function.sprak match: '^(\w+):' captures: '1': { name: entity.name.function.sprak } - comment: Brace, round name: meta.brace.round.sprak match: '[\(\)]' - comment: Brace, curly name: meta.brace.curly.sprak match: '[\{\}]' - comment: Array name: other.array.sprak begin: (\w+\() beginCaptures: '1': { name: constant.array.sprak } end: (\)) endCaptures: '1': { name: constant.array.sprak } patterns: - include: $self - comment: String, double-quoted name: string.quoted.double.sprak match: \"[^"]*\" - comment: String, single-quoted name: string.quoted.single.sprak match: \'[^']*\' ...