├── .gitattributes ├── kos.sublime-settings ├── README.md ├── .gitignore ├── kOS.JSON-tmLanguage ├── kos.tmLanguage └── kos.sublime-completions /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto -------------------------------------------------------------------------------- /kos.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "tab_size": 2, 3 | "translate_tabs_to_spaces": true 4 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | kOS-Sublime 2 | =========== 3 | 4 | Simple [Sublime 3](http://www.sublimetext.com/3) plugin to ease in creation of 5 | [KerboScript](https://github.com/erendrake/KOS) files used by kOS in the most awesome thing known as [Kerbal Space Program](http://kerbalspaceprogram.com). It highlights most of the keywords / control structures and offers some completions as well. 6 | 7 | Usage 8 | ===== 9 | 10 | Clone repo & copy kos.* files under Packages/User in your Sublime directory. 11 | 12 | Want to contribute? 13 | =================== 14 | 15 | Please do. Happy to accept pull requests! 16 | 17 | Issues 18 | ====== 19 | 20 | Installation through Package Control doesn't work for some reason. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Windows ### 2 | # Windows image file caches 3 | Thumbs.db 4 | ehthumbs.db 5 | 6 | # Folder config file 7 | Desktop.ini 8 | 9 | # Recycle Bin used on file shares 10 | $RECYCLE.BIN/ 11 | 12 | # Windows Installer files 13 | *.cab 14 | *.msi 15 | *.msm 16 | *.msp 17 | 18 | # Windows shortcuts 19 | *.lnk 20 | 21 | 22 | ### OSX ### 23 | .DS_Store 24 | .AppleDouble 25 | .LSOverride 26 | 27 | # Icon must end with two \r 28 | Icon 29 | 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | 49 | 50 | ### Linux ### 51 | *~ 52 | 53 | # KDE directory preferences 54 | .directory 55 | 56 | # Linux trash folder which might appear on any partition or disk 57 | .Trash-* -------------------------------------------------------------------------------- /kOS.JSON-tmLanguage: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Kerbal Operating System (kOS)", 3 | "scopeName": "source.kerboscript", 4 | "fileTypes": [ 5 | "ks" 6 | ], 7 | "uuid": "886bf29f-5844-4c49-8542-812a9e0ebc5c", 8 | "patterns": [ 9 | { 10 | "match": "//.*", 11 | "name": "comment.line.source.kerboscript" 12 | }, 13 | { 14 | "match": "(?i:add|print|remove|break|clearscreen|copy|delete|declare|edit|list|lock|\\bon|log|rename|remove|run|set|stage|switch|toggle|unlock|reboot|shutdown)\\s+[^\\.]+$", 15 | "name": "invalid.illegal.source.kerboscript" 16 | }, 17 | { 18 | "match": "\\b(?i:heading|bearing|direction)\\b", 19 | "name": "storage.type.source.kerboscript" 20 | }, 21 | { 22 | "captures": { 23 | "1": { 24 | "name": "keyword.source.kerboscript" 25 | }, 26 | "2": { 27 | "name": "keyword.source.kerboscript" 28 | } 29 | }, 30 | "match": "\\s*(?i:(set|log|rename))\\s.*(?i:(to))\\s*", 31 | "name": "text.source.kerboscript" 32 | }, 33 | { 34 | "captures": { 35 | "1": { 36 | "name": "keyword.source.kerboscript" 37 | }, 38 | "2": { 39 | "name": "keyword.source.kerboscript" 40 | } 41 | }, 42 | "match": "\\s*(?i:(copy))\\s.*(?i:(to|from))\\s*", 43 | "name": "text.source.kerboscript" 44 | }, 45 | { 46 | "captures": { 47 | "1": { 48 | "name": "keyword.source.kerboscript" 49 | }, 50 | "2": { 51 | "name": "keyword.source.kerboscript" 52 | } 53 | }, 54 | "match": "\\s*(?i:(delete))\\s.*(?i:(from))\\s*", 55 | "name": "text.source.kerboscript" 56 | }, 57 | { 58 | "captures": { 59 | "1": { 60 | "name": "keyword.source.kerboscript" 61 | }, 62 | "2": { 63 | "name": "keyword.source.kerboscript" 64 | } 65 | }, 66 | "match": "\\b(?i:(lock))\\s.*(?i:(to))\\b", 67 | "name": "text.source.kerboscript" 68 | }, 69 | { 70 | "captures": { 71 | "1": { 72 | "name": "keyword.source.kerboscript" 73 | }, 74 | "2": { 75 | "name": "keyword.source.kerboscript" 76 | } 77 | }, 78 | "match": "\\b(?i:(print))\\s[^\"]+(?i:(at))\\b", 79 | "name": "text.source.kerboscript" 80 | }, 81 | { 82 | "captures": { 83 | "1": { 84 | "name": "keyword.source.kerboscript" 85 | }, 86 | "2": { 87 | "name": "keyword.source.kerboscript" 88 | } 89 | }, 90 | "match": "\\b(?i:(when))\\s.+(?i:(then))\\b", 91 | "name": "text.source.kerboscript" 92 | }, 93 | { 94 | "captures": { 95 | "1": { 96 | "name": "keyword.source.kerboscript" 97 | }, 98 | "2": { 99 | "name": "keyword.source.kerboscript" 100 | } 101 | }, 102 | "match": "\\b(?i:(for))\\s.+(?i:(in))\\b", 103 | "name": "text.source.kerboscript" 104 | }, 105 | { 106 | "match": "\\b(?i:add|remove|break|clearscreen|delete|declare( parameter)?|parameter|edit|print|remove|run|stage|switch to|toggle|unlock|warp|reboot|shutdown|list|reboot|function)\\b", 107 | "name": "keyword.source.kerboscript" 108 | }, 109 | { 110 | "match": "\\b(?i:until|if|wait|else)\\b", 111 | "name": "keyword.control.kerboscript" 112 | }, 113 | { 114 | "match": "\\b(?i:not|and|or|true|false|<>|>=|=|>|<)\\b", 115 | "name": "keyword.operator.kerboscript" 116 | }, 117 | { 118 | "match": "\\b(?i:\\+|-|\\*|/|\\^)\\b", 119 | "name": "keyword.operator.kerboscript" 120 | }, 121 | { 122 | "match": "\\b(?i:sas|gear|rcs|lights|brakes|legs|chutes|panels|ag1|ag2|ag3|ag4|ag5|ag6|ag7|ag8|ag9|ag0) (on|off)\\b", 123 | "name": "support.function.source.kerboscript" 124 | }, 125 | { 126 | "match": "\\b(?i:abs|mod|floor|ceiling|round|round|sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2)\\b", 127 | "name": "support.function.source.kerboscript" 128 | }, 129 | { 130 | "begin": "\"", 131 | "end": "\"", 132 | "name": "string.quoted.double.source.kerboscript" 133 | }, 134 | { 135 | "match": "[-\\+]?[0-9]*\\.?[0-9]", 136 | "name": "constant.numeric.kerboscript" 137 | } 138 | ] 139 | } -------------------------------------------------------------------------------- /kos.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | ks 8 | 9 | name 10 | Kerbal Operating System (kOS) 11 | patterns 12 | 13 | 14 | match 15 | //.* 16 | name 17 | comment.line.source.kerboscript 18 | 19 | 20 | match 21 | (?i:add|print|remove|break|clearscreen|copy|delete|declare|edit|list|lock|\bon|log|rename|remove|run|set|stage|switch|toggle|unlock|reboot|shutdown)\s+[^\.]+$ 22 | name 23 | invalid.illegal.source.kerboscript 24 | 25 | 26 | match 27 | \b(?i:heading|bearing|direction)\b 28 | name 29 | storage.type.source.kerboscript 30 | 31 | 32 | captures 33 | 34 | 1 35 | 36 | name 37 | keyword.source.kerboscript 38 | 39 | 2 40 | 41 | name 42 | keyword.source.kerboscript 43 | 44 | 45 | match 46 | \s*(?i:(set|log|rename))\s.*(?i:(to))\s* 47 | name 48 | text.source.kerboscript 49 | 50 | 51 | captures 52 | 53 | 1 54 | 55 | name 56 | keyword.source.kerboscript 57 | 58 | 2 59 | 60 | name 61 | keyword.source.kerboscript 62 | 63 | 64 | match 65 | \s*(?i:(copy))\s.*(?i:(to|from))\s* 66 | name 67 | text.source.kerboscript 68 | 69 | 70 | captures 71 | 72 | 1 73 | 74 | name 75 | keyword.source.kerboscript 76 | 77 | 2 78 | 79 | name 80 | keyword.source.kerboscript 81 | 82 | 83 | match 84 | \s*(?i:(delete))\s.*(?i:(from))\s* 85 | name 86 | text.source.kerboscript 87 | 88 | 89 | captures 90 | 91 | 1 92 | 93 | name 94 | keyword.source.kerboscript 95 | 96 | 2 97 | 98 | name 99 | keyword.source.kerboscript 100 | 101 | 102 | match 103 | \b(?i:(lock))\s.*(?i:(to))\b 104 | name 105 | text.source.kerboscript 106 | 107 | 108 | captures 109 | 110 | 1 111 | 112 | name 113 | keyword.source.kerboscript 114 | 115 | 2 116 | 117 | name 118 | keyword.source.kerboscript 119 | 120 | 121 | match 122 | \b(?i:(print))\s[^"]+(?i:(at))\b 123 | name 124 | text.source.kerboscript 125 | 126 | 127 | captures 128 | 129 | 1 130 | 131 | name 132 | keyword.source.kerboscript 133 | 134 | 2 135 | 136 | name 137 | keyword.source.kerboscript 138 | 139 | 140 | match 141 | \b(?i:(when))\s.+(?i:(then))\b 142 | name 143 | text.source.kerboscript 144 | 145 | 146 | captures 147 | 148 | 1 149 | 150 | name 151 | keyword.source.kerboscript 152 | 153 | 2 154 | 155 | name 156 | keyword.source.kerboscript 157 | 158 | 159 | match 160 | \b(?i:(for))\s.+(?i:(in))\b 161 | name 162 | text.source.kerboscript 163 | 164 | 165 | match 166 | \b(?i:add|remove|break|clearscreen|delete|declare( parameter)?|parameter|edit|print|remove|run|stage|switch to|toggle|unlock|warp|reboot|shutdown|list|reboot|function)\b 167 | name 168 | keyword.source.kerboscript 169 | 170 | 171 | match 172 | \b(?i:until|if|wait|else)\b 173 | name 174 | keyword.control.kerboscript 175 | 176 | 177 | match 178 | \b(?i:not|and|or|true|false|<>|>=|=|>|<)\b 179 | name 180 | keyword.operator.kerboscript 181 | 182 | 183 | match 184 | \b(?i:\+|-|\*|/|\^|e|\(|\))\b 185 | name 186 | keyword.operator.kerboscript 187 | 188 | 189 | match 190 | \b(?i:sas|gear|rcs|lights|brakes|legs|chutes|panels|ag1|ag2|ag3|ag4|ag5|ag6|ag7|ag8|ag9|ag0) (on|off)\b 191 | name 192 | support.function.source.kerboscript 193 | 194 | 195 | match 196 | \b(?i:abs|mod|floor|ceiling|round|round|sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2)\b 197 | name 198 | support.function.source.kerboscript 199 | 200 | 201 | begin 202 | " 203 | end 204 | " 205 | name 206 | string.quoted.double.source.kerboscript 207 | 208 | 209 | match 210 | [-\+]?[0-9]*\.?[0-9] 211 | name 212 | constant.numeric.kerboscript 213 | 214 | 215 | scopeName 216 | source.kerboscript 217 | uuid 218 | 886bf29f-5844-4c49-8542-812a9e0ebc5c 219 | 220 | 221 | -------------------------------------------------------------------------------- /kos.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "source.kerboscript", 3 | 4 | "completions": [ 5 | "break.", 6 | { "trigger": "if", "contents": "if(${1:condition}) {\n\t${2:body}\n}" }, 7 | { "trigger": "else", "contents": "else {\n\t${1:body}\n}" }, 8 | { "trigger": "else if", "contents": "else if(${1:condition}) {\n\t${2:body}\n}" }, 9 | { "trigger": "function", "contents": "function ${1:function name} {\n\t${2:body}\n}" }, 10 | { "trigger": "lock", "contents": "lock ${1:variable} to ${2:expression}." }, 11 | { "trigger": "local lock", "contents": "local lock ${1:variable} to ${2:expression}." }, 12 | { "trigger": "unlock", "contents": "unlock ${1:variable}." }, 13 | { "trigger": "until", "contents": "until(${1:condition}) {\n\t${2:body}\n}" }, 14 | { "trigger": "for", "contents": "for ${1:variable1} in ${2:variable2} {\n\t${3:body}\n}" }, 15 | { "trigger": "from", "contents": "from ${1:initializer} until ${2:condition} step ${3:step expression} do {\n\t${4:body}\n}" }, 16 | { "trigger": "wait", "contents": "wait ${1:time}." }, 17 | { "trigger": "wait until", "contents": "wait until ${1:condition}." }, 18 | { "trigger": "when", "contents": "when ${1:condition} then {\n\t${2:body}\n}" }, 19 | { "trigger": "on\tcondition", "contents": "on ${1:condition} {\n\t${2:body}\n}" }, 20 | { "trigger": "return", "contents": "return ${1:expression}." }, 21 | "preserve.", 22 | 23 | { "trigger": "declare\tto", "contents": "declare ${1:identifier} to ${2:expression}." }, 24 | { "trigger": "declare\tis", "contents": "declare ${1:identifier} is ${2:expression}." }, 25 | { "trigger": "declare\tlocal to", "contents": "declare local ${1:identifier} to ${2:expression}." }, 26 | { "trigger": "declare\tlocal is", "contents": "declare local ${1:identifier} is ${2:expression}." }, 27 | { "trigger": "local\tto", "contents": "local ${1:identifier} to ${2:expression}." }, 28 | { "trigger": "local\tis", "contents": "local ${1:identifier} is ${2:expression}." }, 29 | { "trigger": "declare\tglobal to", "contents": "declare global ${1:identifier} to ${2:expression}." }, 30 | { "trigger": "declare\tglobal is", "contents": "declare global ${1:identifier} is ${2:expression}." }, 31 | { "trigger": "global\tto", "contents": "global ${1:identifier} to ${2:expression}." }, 32 | { "trigger": "global\tis", "contents": "global ${1:identifier} is ${2:expression}." }, 33 | { "trigger": "declare parameter", "contents": "declare parameter ${1:identifier}." }, 34 | { "trigger": "parameter", "contents": "parameter ${1:identifier}." }, 35 | { "trigger": "declare parameter\tmulti", "contents": "declare parameter ${1:identifier1}, ${2:identifier2}." }, 36 | { "trigger": "parameter\tmulti", "contents": "parameter ${1:identifier1}, ${2:identifier2}." }, 37 | { "trigger": "set", "contents": "set ${1:variable} to ${2:expression}." }, 38 | { "trigger": "toggle", "contents": "toggle ${1:variable}." }, 39 | { "trigger": "on\tvariable", "contents": "${1:variable} on." }, 40 | { "trigger": "off", "contents": "${1:variable} off." }, 41 | 42 | { "trigger": "print", "contents": "print ${1:expression}." }, 43 | 44 | { "trigger": "G\tGravitational constant", "contents": "constant():G" }, 45 | { "trigger": "E\tNatural log", "contents": "constant():E" }, 46 | { "trigger": "PI\tπ", "contents": "constant():PI" }, 47 | 48 | { "trigger": "abs", "contents": "abs(${1:expression})" }, 49 | { "trigger": "ceiling", "contents": "ceiling(${1:expression})" }, 50 | { "trigger": "floor", "contents": "floor(${1:expression})" }, 51 | { "trigger": "ln", "contents": "ln(${1:expression})" }, 52 | { "trigger": "log10", "contents": "log10(${1:expression})" }, 53 | { "trigger": "mod", "contents": "mod(${1:a}, ${2:b})" }, 54 | { "trigger": "min", "contents": "min(${1:a}, ${2:b})" }, 55 | { "trigger": "max", "contents": "max(${1:a}, ${2:b})" }, 56 | { "trigger": "random", "contents": "random()" }, 57 | { "trigger": "round", "contents": "round(${1:a}})" }, 58 | { "trigger": "round", "contents": "round(${1:a}, ${2:b})" }, 59 | { "trigger": "sqrt", "contents": "sqrt(${1:a}})" }, 60 | 61 | { "trigger": "v\tvector", "contents": "v(${1:x}, ${2:y}, ${3:z})" }, 62 | { "trigger": "vdot", "contents": "vdot(${1:v1}, ${2:v2})" }, 63 | { "trigger": "vectordotproduct", "contents": "vectordotproduct(${1:v1}, ${2:v2})" }, 64 | { "trigger": "vcrs", "contents": "vcrs(${1:v1}, ${2:v2})" }, 65 | { "trigger": "vectorcrossproduct", "contents": "vectorcrossproduct(${1:v1}, ${2:v2})" }, 66 | { "trigger": "vang", "contents": "vang(${1:v1}, ${2:v2})" }, 67 | { "trigger": "vectorangle", "contents": "vectorangle(${1:v1}, ${2:v2})" }, 68 | { "trigger": "vxcl", "contents": "vxcl(${1:v1}, ${2:v2})" }, 69 | { "trigger": "vectorexlude", "contents": "vectorexlude(${1:v1}, ${2:v2})" }, 70 | 71 | { "trigger": "r\tEuler rotation", "contents": "r(${1:roll}, ${2:pitch}, ${3:yaw})" }, 72 | { "trigger": "q\tQuaternion", "contents": "q(${1:x}, ${2:y}, ${3:z}, ${4:rot})" }, 73 | { "trigger": "heading\tCompass heading", "contents": "heading(${1:direction}, ${2:pitch})" }, 74 | { "trigger": "lookdirup\tLooking vector", "contents": "lookdirup(${1:lookat}, ${2:lookup})" }, 75 | { "trigger": "angleaxis\tRotate around an axis", "contents": "angleaxis(${1:degrees}, ${2:axisVector})" }, 76 | { "trigger": "rotatefromto", "contents": "rotatefromto(${1:fromVec}, ${2:toVec})" }, 77 | 78 | { "trigger": "latlng", "contents": "latlng(${1:lat}, ${2:long})" }, 79 | 80 | { "trigger": "positionat", "contents": "positionat(${1:orbital}, ${2:timespan})" }, 81 | { "trigger": "velocityat", "contents": "velocityat(${1:orbital}, ${2:timespan})" }, 82 | { "trigger": "orbitat", "contents": "orbitat(${1:orbital}, ${2:timespan})" }, 83 | 84 | "list.", 85 | { "trigger": "list", "contents": "list ${1:keyword}." }, 86 | { "trigger": "list\tin", "contents": "list ${1:keyword} in ${2:variable}." }, 87 | { "trigger": "list\tfrom .. in", "contents": "list ${1:keyword} from ${2:vessel} in ${3:variable}." }, 88 | 89 | "bodies", 90 | "targets", 91 | "resources", 92 | "parts", 93 | "engines", 94 | "sensors", 95 | "elements", 96 | "dockingports", 97 | "files", 98 | "volumes", 99 | 100 | { "trigger": "compile", "contents": "compile ${1:source}." }, 101 | { "trigger": "compile", "contents": "compile ${1:source} to ${2:destination}.ksm." }, 102 | { "trigger": "copy\from", "contents": "copy ${1:source} from ${2:volume}." }, 103 | { "trigger": "copy\to", "contents": "copy ${1:source} to ${2:volume}." }, 104 | { "trigger": "delete\from", "contents": "delete ${1:source} from ${2:volume}." }, 105 | { "trigger": "edit", "contents": "edit ${1:source}." }, 106 | { "trigger": "log", "contents": "log ${1:text} to ${2:filename}." }, 107 | { "trigger": "rename", "contents": "rename ${1:text} to ${2:filename}." }, 108 | { "trigger": "run", "contents": "run ${1:source}." }, 109 | { "trigger": "switch to", "contents": "switch to ${1:volume}." }, 110 | 111 | "clearscreen", 112 | "terminal", 113 | "terminal:width", 114 | "terminal:height", 115 | "terminal:reverse", 116 | "terminal:visualbeep", 117 | { "trigger": "at", "contents": "at(${1:col}, ${2:line})" }, 118 | "mapview", 119 | "reboot", 120 | "shutdown", 121 | 122 | { "trigger": "vecdraw", "contents": "vecdraw()" }, 123 | { "trigger": "vecdraw", "contents": "vecdraw(${1:start}, ${2:vector}, ${3:colour}, ${4:label}, ${5:scale}, ${6:show})" }, 124 | { "trigger": "vecdrawargs", "contents": "vecdrawargs(${1:start}, ${2:vector}, ${3:colour}, ${4:label}, ${5:scale}, ${6:show})" }, 125 | "clearvecdraws()", 126 | { "trigger": "hudtext", "contents": "hudtext(${1:message}, ${2:delay}, ${3:style}, ${4:size}, ${5:colour}, ${6:doEcho})" }, 127 | 128 | { "trigger": "transfer", "contents": "transfer(${1:resourceName}, ${2:fromParts}, ${3:toParts}, ${4:amount})" }, 129 | { "trigger": "transferall", "contents": "transferall(${1:resourceName}, ${2:fromParts}, ${3:toParts})" }, 130 | 131 | { "trigger": "waypoint", "contents": "waypoint(${1:name})" }, 132 | { "trigger": "allwaypoints", "contents": "allwaypoints()" }, 133 | 134 | 135 | "time", 136 | "time:clock", 137 | "time:calendar", 138 | "time:year", 139 | "time:day", 140 | "time:hour", 141 | "time:minute", 142 | "time:second", 143 | "time:seconds", 144 | 145 | 146 | "facing", 147 | "up", 148 | "prograde", 149 | "retrograde", 150 | "normal", 151 | "antinormal", 152 | "radial", 153 | "antiradial", 154 | "maxthrust", 155 | "velocity", 156 | "geoposition", 157 | "latitude", 158 | "longitude", 159 | "north", 160 | "body", 161 | "angularmomentum", 162 | "angularvel", 163 | "commrange", 164 | "mass", 165 | "verticalspeed", 166 | "surfacespeed", 167 | "airspeed", 168 | "vesselname", 169 | "altitude", 170 | "apoapsis", 171 | "periapsis", 172 | "sensors", 173 | "srfprograde", 174 | "srfretrograde", 175 | "obt", 176 | "status", 177 | "shipname", 178 | 179 | "nextnode", 180 | 181 | "stage", 182 | "stage:liquidfuel", 183 | "stage:oxidizer", 184 | "stage:electriccharge", 185 | "stage:monopropellant", 186 | "stage:intakeair", 187 | "stage:solidfuel", 188 | 189 | "alt:apoapsis", 190 | "alt:periapsis", 191 | "alt:radar", 192 | 193 | "eta:apoapsis", 194 | "eta:periapsis", 195 | "eta:transition", 196 | 197 | "sas", 198 | "rcs", 199 | "gear", 200 | "legs", 201 | "chutes", 202 | "lights", 203 | "panels", 204 | "brakes", 205 | "abort", 206 | "ag1", 207 | "ag2", 208 | "ag3", 209 | "ag4", 210 | "ag5", 211 | "ag6", 212 | "ag7", 213 | "ag8", 214 | "ag9", 215 | "ag10", 216 | 217 | "throttle", 218 | "steering", 219 | "wheelthrottle", 220 | "wheelsteering", 221 | 222 | "warp", 223 | "warpmode", 224 | { "trigger": "warpto", "contents": "warpto(${1:time})"}, 225 | 226 | "ship", 227 | "ship:liquidfuel", 228 | "ship:oxidizer", 229 | "ship:electriccharge", 230 | "ship:monopropellant", 231 | "ship:intakeair", 232 | "ship:solidfuel", 233 | "ship:name", 234 | "ship:body", 235 | "ship:hasbody", 236 | "ship:hasorbit", 237 | "ship:hasobt", 238 | "ship:obt", 239 | "ship:up", 240 | "ship:north", 241 | "ship:prograde", 242 | "ship:srfprograde", 243 | "ship:retrograde", 244 | "ship:srfretrograde", 245 | "ship:position", 246 | "ship:velocity", 247 | "ship:distance", 248 | "ship:direction", 249 | "ship:latitude", 250 | "ship:longitude", 251 | "ship:altitude", 252 | "ship:geoposition", 253 | "ship:patches", 254 | "ship:apoapsis", 255 | "ship:patches", 256 | "ship:control", 257 | "ship:bearing", 258 | "ship:heading", 259 | "ship:maxthrust", 260 | { "trigger": "ship:maxthrustat", "contents": "ship:maxthrustat(${1:pressure})" }, 261 | "ship:availablethrust", 262 | { "trigger": "ship:availablethrustat", "contents": "ship:availablethrustat(${1:pressure})" }, 263 | "ship:facing", 264 | "ship:mass", 265 | "ship:wetmass", 266 | "ship:drymass", 267 | "ship:verticalspeed", 268 | "ship:surfacespeed", 269 | "ship:airspeed", 270 | "ship:termvelocity", 271 | "ship:shipname", 272 | "ship:status", 273 | "ship:type", 274 | "ship:angularmomentum", 275 | "ship:angularvel", 276 | "ship:sensors", 277 | "ship:loaded", 278 | "ship:isdead", 279 | "ship:patches", 280 | "ship:rootpart", 281 | "ship:parts", 282 | "ship:dockingports", 283 | "ship:elements", 284 | "ship:resources", 285 | { "trigger": "ship:partsnamed", "contents": "ship:partsnamed(${1:name})" }, 286 | { "trigger": "ship:partstitled", "contents": "ship:partstitled(${1:title})" }, 287 | { "trigger": "ship:partstagged", "contents": "ship:partstagged(${1:tag})" }, 288 | { "trigger": "ship:partsdubbed", "contents": "ship:partsdubbed(${1:id})" }, 289 | { "trigger": "ship:modulesnamed", "contents": "ship:modulesnamed(${1:name})" }, 290 | { "trigger": "ship:partsingroup", "contents": "ship:partsingroup(${1:group})" }, 291 | { "trigger": "ship:modulesingroup", "contents": "ship:modulesingroup(${1:group})" }, 292 | { "trigger": "ship:allpartstagged", "contents": "ship:allpartstagged()" }, 293 | 294 | "target", 295 | "target:name", 296 | "target:body", 297 | "target:hasbody", 298 | "target:hasorbit", 299 | "target:hasobt", 300 | "target:obt", 301 | "target:up", 302 | "target:north", 303 | "target:prograde", 304 | "target:srfprograde", 305 | "target:retrograde", 306 | "target:srfretrograde", 307 | "target:position", 308 | "target:velocity", 309 | "target:distance", 310 | "target:direction", 311 | "target:latitude", 312 | "target:longitude", 313 | "target:altitude", 314 | "target:geoposition", 315 | "target:patches", 316 | "target:apoapsis", 317 | "target:patches", 318 | "target:control", 319 | "target:bearing", 320 | "target:heading", 321 | "target:maxthrust", 322 | { "trigger": "target:maxthrustat", "contents": "target:maxthrustat(${1:pressure})" }, 323 | "target:availablethrust", 324 | { "trigger": "target:availablethrustat", "contents": "target:availablethrustat(${1:pressure})" }, 325 | "target:facing", 326 | "target:mass", 327 | "target:wetmass", 328 | "target:drymass", 329 | "target:verticalspeed", 330 | "target:surfacespeed", 331 | "target:airspeed", 332 | "target:termvelocity", 333 | "target:targetname", 334 | "target:status", 335 | "target:type", 336 | "target:angularmomentum", 337 | "target:angularvel", 338 | "target:sensors", 339 | "target:loaded", 340 | "target:isdead", 341 | "target:patches", 342 | "target:rootpart", 343 | "target:parts", 344 | "target:dockingports", 345 | "target:elements", 346 | "target:resources", 347 | { "trigger": "target:partsnamed", "contents": "target:partsnamed(${1:name})" }, 348 | { "trigger": "target:partstitled", "contents": "target:partstitled(${1:title})" }, 349 | { "trigger": "target:partstagged", "contents": "target:partstagged(${1:tag})" }, 350 | { "trigger": "target:partsdubbed", "contents": "target:partsdubbed(${1:id})" }, 351 | { "trigger": "target:modulesnamed", "contents": "target:modulesnamed(${1:name})" }, 352 | { "trigger": "target:partsingroup", "contents": "target:partsingroup(${1:group})" }, 353 | { "trigger": "target:modulesingroup", "contents": "target:modulesingroup(${1:group})" }, 354 | { "trigger": "target:allpartstagged", "contents": "target:allpartstagged()" }, 355 | 356 | 357 | "Sun", 358 | "Sun:name", 359 | "Sun:body", 360 | "Sun:hasbody", 361 | "Sun:hasorbit", 362 | "Sun:hasobt", 363 | "Sun:obt", 364 | "Sun:up", 365 | "Sun:north", 366 | "Sun:prograde", 367 | "Sun:srfprograde", 368 | "Sun:retrograde", 369 | "Sun:srfretrograde", 370 | "Sun:position", 371 | "Sun:velocity", 372 | "Sun:distance", 373 | "Sun:direction", 374 | "Sun:latitude", 375 | "Sun:longitude", 376 | "Sun:altitude", 377 | "Sun:geoposition", 378 | "Sun:patches", 379 | "Sun:apoapsis", 380 | "Sun:patches", 381 | "Sun:description", 382 | "Sun:mass", 383 | "Sun:altitude", 384 | "Sun:rotationspeed", 385 | "Sun:radius", 386 | "Sun:mu", 387 | "Sun:atm", 388 | "Sun:agularvel", 389 | "Sun:geopositionof", 390 | "Sun:altitudeof", 391 | "Sun:soiradius", 392 | 393 | "Moho", 394 | "Moho:name", 395 | "Moho:body", 396 | "Moho:hasbody", 397 | "Moho:hasorbit", 398 | "Moho:hasobt", 399 | "Moho:obt", 400 | "Moho:up", 401 | "Moho:north", 402 | "Moho:prograde", 403 | "Moho:srfprograde", 404 | "Moho:retrograde", 405 | "Moho:srfretrograde", 406 | "Moho:position", 407 | "Moho:velocity", 408 | "Moho:distance", 409 | "Moho:direction", 410 | "Moho:latitude", 411 | "Moho:longitude", 412 | "Moho:altitude", 413 | "Moho:geoposition", 414 | "Moho:patches", 415 | "Moho:apoapsis", 416 | "Moho:patches", 417 | "Moho:description", 418 | "Moho:mass", 419 | "Moho:altitude", 420 | "Moho:rotationspeed", 421 | "Moho:radius", 422 | "Moho:mu", 423 | "Moho:atm", 424 | "Moho:agularvel", 425 | "Moho:geopositionof", 426 | "Moho:altitudeof", 427 | "Moho:soiradius", 428 | 429 | "Eve", 430 | "Eve:name", 431 | "Eve:body", 432 | "Eve:hasbody", 433 | "Eve:hasorbit", 434 | "Eve:hasobt", 435 | "Eve:obt", 436 | "Eve:up", 437 | "Eve:north", 438 | "Eve:prograde", 439 | "Eve:srfprograde", 440 | "Eve:retrograde", 441 | "Eve:srfretrograde", 442 | "Eve:position", 443 | "Eve:velocity", 444 | "Eve:distance", 445 | "Eve:direction", 446 | "Eve:latitude", 447 | "Eve:longitude", 448 | "Eve:altitude", 449 | "Eve:geoposition", 450 | "Eve:patches", 451 | "Eve:apoapsis", 452 | "Eve:patches", 453 | "Eve:description", 454 | "Eve:mass", 455 | "Eve:altitude", 456 | "Eve:rotationspeed", 457 | "Eve:radius", 458 | "Eve:mu", 459 | "Eve:atm", 460 | "Eve:agularvel", 461 | "Eve:geopositionof", 462 | "Eve:altitudeof", 463 | "Eve:soiradius", 464 | 465 | "Gilly", 466 | "Gilly:name", 467 | "Gilly:body", 468 | "Gilly:hasbody", 469 | "Gilly:hasorbit", 470 | "Gilly:hasobt", 471 | "Gilly:obt", 472 | "Gilly:up", 473 | "Gilly:north", 474 | "Gilly:prograde", 475 | "Gilly:srfprograde", 476 | "Gilly:retrograde", 477 | "Gilly:srfretrograde", 478 | "Gilly:position", 479 | "Gilly:velocity", 480 | "Gilly:distance", 481 | "Gilly:direction", 482 | "Gilly:latitude", 483 | "Gilly:longitude", 484 | "Gilly:altitude", 485 | "Gilly:geoposition", 486 | "Gilly:patches", 487 | "Gilly:apoapsis", 488 | "Gilly:patches", 489 | "Gilly:description", 490 | "Gilly:mass", 491 | "Gilly:altitude", 492 | "Gilly:rotationspeed", 493 | "Gilly:radius", 494 | "Gilly:mu", 495 | "Gilly:atm", 496 | "Gilly:agularvel", 497 | "Gilly:geopositionof", 498 | "Gilly:altitudeof", 499 | "Gilly:soiradius", 500 | 501 | "Kerbin", 502 | "Kerbin:name", 503 | "Kerbin:body", 504 | "Kerbin:hasbody", 505 | "Kerbin:hasorbit", 506 | "Kerbin:hasobt", 507 | "Kerbin:obt", 508 | "Kerbin:up", 509 | "Kerbin:north", 510 | "Kerbin:prograde", 511 | "Kerbin:srfprograde", 512 | "Kerbin:retrograde", 513 | "Kerbin:srfretrograde", 514 | "Kerbin:position", 515 | "Kerbin:velocity", 516 | "Kerbin:distance", 517 | "Kerbin:direction", 518 | "Kerbin:latitude", 519 | "Kerbin:longitude", 520 | "Kerbin:altitude", 521 | "Kerbin:geoposition", 522 | "Kerbin:patches", 523 | "Kerbin:apoapsis", 524 | "Kerbin:patches", 525 | "Kerbin:description", 526 | "Kerbin:mass", 527 | "Kerbin:altitude", 528 | "Kerbin:rotationspeed", 529 | "Kerbin:radius", 530 | "Kerbin:mu", 531 | "Kerbin:atm", 532 | "Kerbin:agularvel", 533 | "Kerbin:geopositionof", 534 | "Kerbin:altitudeof", 535 | "Kerbin:soiradius", 536 | 537 | "Mun", 538 | "Mun:name", 539 | "Mun:body", 540 | "Mun:hasbody", 541 | "Mun:hasorbit", 542 | "Mun:hasobt", 543 | "Mun:obt", 544 | "Mun:up", 545 | "Mun:north", 546 | "Mun:prograde", 547 | "Mun:srfprograde", 548 | "Mun:retrograde", 549 | "Mun:srfretrograde", 550 | "Mun:position", 551 | "Mun:velocity", 552 | "Mun:distance", 553 | "Mun:direction", 554 | "Mun:latitude", 555 | "Mun:longitude", 556 | "Mun:altitude", 557 | "Mun:geoposition", 558 | "Mun:patches", 559 | "Mun:apoapsis", 560 | "Mun:patches", 561 | "Mun:description", 562 | "Mun:mass", 563 | "Mun:altitude", 564 | "Mun:rotationspeed", 565 | "Mun:radius", 566 | "Mun:mu", 567 | "Mun:atm", 568 | "Mun:agularvel", 569 | "Mun:geopositionof", 570 | "Mun:altitudeof", 571 | "Mun:soiradius", 572 | 573 | "Minmus", 574 | "Minmus:name", 575 | "Minmus:body", 576 | "Minmus:hasbody", 577 | "Minmus:hasorbit", 578 | "Minmus:hasobt", 579 | "Minmus:obt", 580 | "Minmus:up", 581 | "Minmus:north", 582 | "Minmus:prograde", 583 | "Minmus:srfprograde", 584 | "Minmus:retrograde", 585 | "Minmus:srfretrograde", 586 | "Minmus:position", 587 | "Minmus:velocity", 588 | "Minmus:distance", 589 | "Minmus:direction", 590 | "Minmus:latitude", 591 | "Minmus:longitude", 592 | "Minmus:altitude", 593 | "Minmus:geoposition", 594 | "Minmus:patches", 595 | "Minmus:apoapsis", 596 | "Minmus:patches", 597 | "Minmus:description", 598 | "Minmus:mass", 599 | "Minmus:altitude", 600 | "Minmus:rotationspeed", 601 | "Minmus:radius", 602 | "Minmus:mu", 603 | "Minmus:atm", 604 | "Minmus:agularvel", 605 | "Minmus:geopositionof", 606 | "Minmus:altitudeof", 607 | "Minmus:soiradius", 608 | 609 | "Duna", 610 | "Duna:name", 611 | "Duna:body", 612 | "Duna:hasbody", 613 | "Duna:hasorbit", 614 | "Duna:hasobt", 615 | "Duna:obt", 616 | "Duna:up", 617 | "Duna:north", 618 | "Duna:prograde", 619 | "Duna:srfprograde", 620 | "Duna:retrograde", 621 | "Duna:srfretrograde", 622 | "Duna:position", 623 | "Duna:velocity", 624 | "Duna:distance", 625 | "Duna:direction", 626 | "Duna:latitude", 627 | "Duna:longitude", 628 | "Duna:altitude", 629 | "Duna:geoposition", 630 | "Duna:patches", 631 | "Duna:apoapsis", 632 | "Duna:patches", 633 | "Duna:description", 634 | "Duna:mass", 635 | "Duna:altitude", 636 | "Duna:rotationspeed", 637 | "Duna:radius", 638 | "Duna:mu", 639 | "Duna:atm", 640 | "Duna:agularvel", 641 | "Duna:geopositionof", 642 | "Duna:altitudeof", 643 | "Duna:soiradius", 644 | 645 | "Ike", 646 | "Ike:name", 647 | "Ike:body", 648 | "Ike:hasbody", 649 | "Ike:hasorbit", 650 | "Ike:hasobt", 651 | "Ike:obt", 652 | "Ike:up", 653 | "Ike:north", 654 | "Ike:prograde", 655 | "Ike:srfprograde", 656 | "Ike:retrograde", 657 | "Ike:srfretrograde", 658 | "Ike:position", 659 | "Ike:velocity", 660 | "Ike:distance", 661 | "Ike:direction", 662 | "Ike:latitude", 663 | "Ike:longitude", 664 | "Ike:altitude", 665 | "Ike:geoposition", 666 | "Ike:patches", 667 | "Ike:apoapsis", 668 | "Ike:patches", 669 | "Ike:description", 670 | "Ike:mass", 671 | "Ike:altitude", 672 | "Ike:rotationspeed", 673 | "Ike:radius", 674 | "Ike:mu", 675 | "Ike:atm", 676 | "Ike:agularvel", 677 | "Ike:geopositionof", 678 | "Ike:altitudeof", 679 | "Ike:soiradius", 680 | 681 | "Jool", 682 | "Jool:name", 683 | "Jool:body", 684 | "Jool:hasbody", 685 | "Jool:hasorbit", 686 | "Jool:hasobt", 687 | "Jool:obt", 688 | "Jool:up", 689 | "Jool:north", 690 | "Jool:prograde", 691 | "Jool:srfprograde", 692 | "Jool:retrograde", 693 | "Jool:srfretrograde", 694 | "Jool:position", 695 | "Jool:velocity", 696 | "Jool:distance", 697 | "Jool:direction", 698 | "Jool:latitude", 699 | "Jool:longitude", 700 | "Jool:altitude", 701 | "Jool:geoposition", 702 | "Jool:patches", 703 | "Jool:apoapsis", 704 | "Jool:patches", 705 | "Jool:description", 706 | "Jool:mass", 707 | "Jool:altitude", 708 | "Jool:rotationspeed", 709 | "Jool:radius", 710 | "Jool:mu", 711 | "Jool:atm", 712 | "Jool:agularvel", 713 | "Jool:geopositionof", 714 | "Jool:altitudeof", 715 | "Jool:soiradius", 716 | 717 | "Laythe", 718 | "Laythe:name", 719 | "Laythe:body", 720 | "Laythe:hasbody", 721 | "Laythe:hasorbit", 722 | "Laythe:hasobt", 723 | "Laythe:obt", 724 | "Laythe:up", 725 | "Laythe:north", 726 | "Laythe:prograde", 727 | "Laythe:srfprograde", 728 | "Laythe:retrograde", 729 | "Laythe:srfretrograde", 730 | "Laythe:position", 731 | "Laythe:velocity", 732 | "Laythe:distance", 733 | "Laythe:direction", 734 | "Laythe:latitude", 735 | "Laythe:longitude", 736 | "Laythe:altitude", 737 | "Laythe:geoposition", 738 | "Laythe:patches", 739 | "Laythe:apoapsis", 740 | "Laythe:patches", 741 | "Laythe:description", 742 | "Laythe:mass", 743 | "Laythe:altitude", 744 | "Laythe:rotationspeed", 745 | "Laythe:radius", 746 | "Laythe:mu", 747 | "Laythe:atm", 748 | "Laythe:agularvel", 749 | "Laythe:geopositionof", 750 | "Laythe:altitudeof", 751 | "Laythe:soiradius", 752 | 753 | "Vall", 754 | "Vall:name", 755 | "Vall:body", 756 | "Vall:hasbody", 757 | "Vall:hasorbit", 758 | "Vall:hasobt", 759 | "Vall:obt", 760 | "Vall:up", 761 | "Vall:north", 762 | "Vall:prograde", 763 | "Vall:srfprograde", 764 | "Vall:retrograde", 765 | "Vall:srfretrograde", 766 | "Vall:position", 767 | "Vall:velocity", 768 | "Vall:distance", 769 | "Vall:direction", 770 | "Vall:latitude", 771 | "Vall:longitude", 772 | "Vall:altitude", 773 | "Vall:geoposition", 774 | "Vall:patches", 775 | "Vall:apoapsis", 776 | "Vall:patches", 777 | "Vall:description", 778 | "Vall:mass", 779 | "Vall:altitude", 780 | "Vall:rotationspeed", 781 | "Vall:radius", 782 | "Vall:mu", 783 | "Vall:atm", 784 | "Vall:agularvel", 785 | "Vall:geopositionof", 786 | "Vall:altitudeof", 787 | "Vall:soiradius", 788 | 789 | "Tylo", 790 | "Tylo:name", 791 | "Tylo:body", 792 | "Tylo:hasbody", 793 | "Tylo:hasorbit", 794 | "Tylo:hasobt", 795 | "Tylo:obt", 796 | "Tylo:up", 797 | "Tylo:north", 798 | "Tylo:prograde", 799 | "Tylo:srfprograde", 800 | "Tylo:retrograde", 801 | "Tylo:srfretrograde", 802 | "Tylo:position", 803 | "Tylo:velocity", 804 | "Tylo:distance", 805 | "Tylo:direction", 806 | "Tylo:latitude", 807 | "Tylo:longitude", 808 | "Tylo:altitude", 809 | "Tylo:geoposition", 810 | "Tylo:patches", 811 | "Tylo:apoapsis", 812 | "Tylo:patches", 813 | "Tylo:description", 814 | "Tylo:mass", 815 | "Tylo:altitude", 816 | "Tylo:rotationspeed", 817 | "Tylo:radius", 818 | "Tylo:mu", 819 | "Tylo:atm", 820 | "Tylo:agularvel", 821 | "Tylo:geopositionof", 822 | "Tylo:altitudeof", 823 | "Tylo:soiradius", 824 | 825 | "Bop", 826 | "Bop:name", 827 | "Bop:body", 828 | "Bop:hasbody", 829 | "Bop:hasorbit", 830 | "Bop:hasobt", 831 | "Bop:obt", 832 | "Bop:up", 833 | "Bop:north", 834 | "Bop:prograde", 835 | "Bop:srfprograde", 836 | "Bop:retrograde", 837 | "Bop:srfretrograde", 838 | "Bop:position", 839 | "Bop:velocity", 840 | "Bop:distance", 841 | "Bop:direction", 842 | "Bop:latitude", 843 | "Bop:longitude", 844 | "Bop:altitude", 845 | "Bop:geoposition", 846 | "Bop:patches", 847 | "Bop:apoapsis", 848 | "Bop:patches", 849 | "Bop:description", 850 | "Bop:mass", 851 | "Bop:altitude", 852 | "Bop:rotationspeed", 853 | "Bop:radius", 854 | "Bop:mu", 855 | "Bop:atm", 856 | "Bop:agularvel", 857 | "Bop:geopositionof", 858 | "Bop:altitudeof", 859 | "Bop:soiradius", 860 | 861 | "Pol", 862 | "Pol:name", 863 | "Pol:body", 864 | "Pol:hasbody", 865 | "Pol:hasorbit", 866 | "Pol:hasobt", 867 | "Pol:obt", 868 | "Pol:up", 869 | "Pol:north", 870 | "Pol:prograde", 871 | "Pol:srfprograde", 872 | "Pol:retrograde", 873 | "Pol:srfretrograde", 874 | "Pol:position", 875 | "Pol:velocity", 876 | "Pol:distance", 877 | "Pol:direction", 878 | "Pol:latitude", 879 | "Pol:longitude", 880 | "Pol:altitude", 881 | "Pol:geoposition", 882 | "Pol:patches", 883 | "Pol:apoapsis", 884 | "Pol:patches", 885 | "Pol:description", 886 | "Pol:mass", 887 | "Pol:altitude", 888 | "Pol:rotationspeed", 889 | "Pol:radius", 890 | "Pol:mu", 891 | "Pol:atm", 892 | "Pol:agularvel", 893 | "Pol:geopositionof", 894 | "Pol:altitudeof", 895 | "Pol:soiradius", 896 | 897 | "Eeloo", 898 | "Eeloo:name", 899 | "Eeloo:body", 900 | "Eeloo:hasbody", 901 | "Eeloo:hasorbit", 902 | "Eeloo:hasobt", 903 | "Eeloo:obt", 904 | "Eeloo:up", 905 | "Eeloo:north", 906 | "Eeloo:prograde", 907 | "Eeloo:srfprograde", 908 | "Eeloo:retrograde", 909 | "Eeloo:srfretrograde", 910 | "Eeloo:position", 911 | "Eeloo:velocity", 912 | "Eeloo:distance", 913 | "Eeloo:direction", 914 | "Eeloo:latitude", 915 | "Eeloo:longitude", 916 | "Eeloo:altitude", 917 | "Eeloo:geoposition", 918 | "Eeloo:patches", 919 | "Eeloo:apoapsis", 920 | "Eeloo:patches", 921 | "Eeloo:description", 922 | "Eeloo:mass", 923 | "Eeloo:altitude", 924 | "Eeloo:rotationspeed", 925 | "Eeloo:radius", 926 | "Eeloo:mu", 927 | "Eeloo:atm", 928 | "Eeloo:agularvel", 929 | "Eeloo:geopositionof", 930 | "Eeloo:altitudeof", 931 | "Eeloo:soiradius", 932 | 933 | "red", 934 | "green", 935 | "blue", 936 | "yellow", 937 | "cyan", 938 | "magenta", 939 | "purple", 940 | "white", 941 | "black", 942 | { "trigger": "rgb", "contents": "rgb(${1:r}, ${2:g}, ${3:b})" }, 943 | { "trigger": "rgba", "contents": "rgba(${1:r}, ${2:g}, ${3:b}, ${4:a})" }, 944 | { "trigger": "hsv", "contents": "hsv(${1:h}, ${2:s}, ${3:v}, ${4:a})" }, 945 | { "trigger": "hsva", "contents": "hsva(${1:h}, ${2:s}, ${3:v}, ${4:a})" }, 946 | 947 | "config", 948 | "config:ipu", 949 | "config:ucp", 950 | "config:stat", 951 | "config:rt2", 952 | "config:arch", 953 | "config:safe", 954 | "config:audioerr", 955 | "config:verbose", 956 | "config:telnet", 957 | "config:tport", 958 | "config:loopback", 959 | 960 | { "trigger": "highlight", "contents": "highlight(${1:part}, ${2:colour})" }, 961 | 962 | { "trigger": ":add", "contents": ":add(${1:item})" }, 963 | { "trigger": ":insert", "contents": ":insert(${1:index}, ${2:item})" }, 964 | { "trigger": ":remove", "contents": ":remove(${1:item})" }, 965 | ":clear", 966 | ":length", 967 | ":iterator", 968 | { "trigger": ":contains", "contents": ":contains(${1:item})" }, 969 | { "trigger": ":sublist", "contents": ":sublist(${1:index}, ${2:length})" }, 970 | ":copy", 971 | ":empty", 972 | ":dump", 973 | 974 | "core", 975 | "core:part", 976 | "core:vessel", 977 | "core:element", 978 | "core:version", 979 | "core:bootfilename", 980 | "core:currentvolume", 981 | 982 | "verion", 983 | "version:major", 984 | "version:minor", 985 | "version:build", 986 | "sessiontime" 987 | ] 988 | } --------------------------------------------------------------------------------