├── Commands ├── Add list item.tmCommand ├── Convert to Ruby.tmCommand ├── Sort Keys Alphabetically.tmCommand └── Syntax Cheat Sheet.tmCommand ├── Preferences ├── Comments.plist ├── Folding.tmPreferences ├── Indenting.plist └── Symbol List.tmPreferences ├── README.mdown ├── Snippets └── untitled.plist ├── Syntaxes ├── YAML-license.txt └── YAML.tmLanguage └── info.plist /Commands/Add list item.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | line = STDIN.read 11 | TAB = line.match(/^(\s+)/).to_s 12 | 13 | # first check to see if we have a 14 | # key on the current line, if so indent 15 | if ENV['TM_CURRENT_LINE'].match /^\s*.+:/ 16 | $stdout.write "#{line}\n#{TAB}\t- " 17 | 18 | # then to see if it's a one-liner list item, 19 | # in which case we don't indent 20 | elsif ENV['TM_CURRENT_LINE'].match /^\s*- / 21 | $stdout.write "#{line}\n#{TAB}- " 22 | 23 | # otherwise back up indent 24 | else 25 | $stdout.write "#{line}\n#{TAB[(0..-3)]}- " 26 | end 27 | 28 | fallbackInput 29 | line 30 | input 31 | selection 32 | keyEquivalent 33 |  34 | name 35 | Add list item 36 | output 37 | insertAsSnippet 38 | scope 39 | source.yaml 40 | uuid 41 | 037242FC-9D77-46A6-94B8-865052595B5A 42 | 43 | 44 | -------------------------------------------------------------------------------- /Commands/Convert to Ruby.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | require "yaml" 11 | require "pp" 12 | 13 | puts "#!/usr/bin/env ruby\n\n" 14 | print "documents = " 15 | pp(YAML.load_stream(STDIN).documents) 16 | input 17 | selection 18 | keyEquivalent 19 | ^H 20 | name 21 | Convert Document / Selection to Ruby 22 | output 23 | openAsNewDocument 24 | scope 25 | source.yaml 26 | uuid 27 | D73CBC77-1692-4981-8C3E-6DCE63F6E2E2 28 | 29 | 30 | -------------------------------------------------------------------------------- /Commands/Sort Keys Alphabetically.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | print (s = STDIN.read).split(/^#{indent = s.scan(/^(\s*)\b/).flatten.first}(?=\w)/).sort.join(indent) 10 | input 11 | selection 12 | keyEquivalent 13 | 14 | name 15 | Sort Keys Alphabetically 16 | output 17 | replaceSelectedText 18 | scope 19 | source.yaml 20 | uuid 21 | 331791FA-7335-45B9-865E-760D52294D01 22 | 23 | 24 | -------------------------------------------------------------------------------- /Commands/Syntax Cheat Sheet.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | . "$TM_SUPPORT_PATH/lib/webpreview.sh" 9 | html_header "YAML Reference Card" "YAML" 10 | Markdown.pl <<'EOF' 11 | 12 | <title>YAML Reference Card</title> 13 | 14 | Collection indicators: 15 | '? ' : Key indicator. 16 | ': ' : Value indicator. 17 | '- ' : Nested series entry indicator. 18 | ', ' : Separate in-line branch entries. 19 | '[]' : Surround in-line series branch. 20 | '{}' : Surround in-line keyed branch. 21 | Scalar indicators: 22 | '''' : Surround in-line unescaped scalar ('' escaped '). 23 | '"' : Surround in-line escaped scalar (see escape codes below). 24 | '|' : Block scalar indicator. 25 | '>' : Folded scalar indicator. 26 | '-' : Strip chomp modifier ('|-' or '>-'). 27 | '+' : Keep chomp modifier ('|+' or '>+'). 28 | 1-9 : Explicit indentation modifier ('|1' or '>2'). 29 | # Modifiers can be combined ('|2-', '>+1'). 30 | Alias indicators: 31 | '&' : Anchor property. 32 | '*' : Alias indicator. 33 | Tag property: # Usually unspecified. 34 | none : Unspecified tag (automatically resolved by application). 35 | '!' : Non-specific tag (by default, "!!map"/"!!seq"/"!!str"). 36 | '!foo' : Primary (by convention, means a local "!foo" tag). 37 | '!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo"). 38 | '!h!foo': Requires "%TAG !h! <prefix>" (and then means "<prefix>foo"). 39 | '!<foo>': Verbatim tag (always means "foo"). 40 | Document indicators: 41 | '%' : Directive indicator. 42 | '---': Document header. 43 | '...': Document terminator. 44 | Misc indicators: 45 | ' #' : Throwaway comment indicator. 46 | '`@' : Both reserved for future use. 47 | Special keys: 48 | '=' : Default "value" mapping key. 49 | '<<' : Merge keys from another mapping. 50 | Core types: # Default automatic tags. 51 | '!!map' : { Hash table, dictionary, mapping } 52 | '!!seq' : { List, array, tuple, vector, sequence } 53 | '!!str' : Unicode string 54 | More types: 55 | '!!set' : { cherries, plums, apples } 56 | '!!omap': [ one: 1, two: 2 ] 57 | Language Independent Scalar types: 58 | { ~, null } : Null (no value). 59 | [ 1234, 0x4D2, 02333 ] : [ Decimal int, Hexadecimal int, Octal int ] 60 | [ 1_230.15, 12.3015e+02 ]: [ Fixed float, Exponential float ] 61 | [ .inf, -.Inf, .NAN ] : [ Infinity (float), Negative, Not a number ] 62 | { Y, true, Yes, ON } : Boolean true 63 | { n, FALSE, No, off } : Boolean false 64 | ? !!binary > 65 | R0lG...BADS= 66 | : >- 67 | Base 64 binary value. 68 | Escape codes: 69 | Numeric : { "\x12": 8-bit, "\u1234": 16-bit, "\U00102030": 32-bit } 70 | Protective: { "\\": '\', "\"": '"', "\ ": ' ', "\<TAB>": TAB } 71 | C : { "\0": NUL, "\a": BEL, "\b": BS, "\f": FF, "\n": LF, 72 | "\r": CR, "\t": TAB, "\v": VTAB } 73 | Additional: { "\e": ESC, "\_": NBSP, "\N": NEL, "\L": LS, "\P": PS } 74 | EOF 75 | html_footer 76 | 77 | input 78 | none 79 | keyEquivalent 80 | ^h 81 | name 82 | Syntax Cheat Sheet 83 | output 84 | showAsHTML 85 | scope 86 | source.yaml 87 | uuid 88 | 52CDBDBC-91B6-40DD-852A-C92D7D15D6F5 89 | 90 | 91 | -------------------------------------------------------------------------------- /Preferences/Comments.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.yaml 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | # 18 | 19 | 20 | 21 | uuid 22 | EDFB82EE-8F5A-497F-8D53-38D4E7BD4F08 23 | 24 | 25 | -------------------------------------------------------------------------------- /Preferences/Folding.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Folding 7 | scope 8 | source.yaml 9 | settings 10 | 11 | foldingIndentedBlockIgnore 12 | ^\s*# 13 | foldingIndentedBlockStart 14 | (?x) 15 | (?# We can fold a mapping which contains multiple mappings or items. In 16 | such a mapping there can be — at least — the following items after the 17 | key and the colon: 18 | 1. An anchor label — marked by the `&` sign 19 | 2. A comment — marked by the `#` sign 20 | 3. A sign that specifies how newlines should be handled — 21 | marked by `|` or `>`) 22 | ^\s*[^\s#]+:(\s*|\s*[>\|&#].*)$ | 23 | (?# We can fold a list item which contains multiple mappings. We actually 24 | match here against only one mapping after the list indicator, but 25 | since it usually does not make that much sense to generate a 26 | dictionary with only one key, we should be fine. We also require at 27 | least one space after the colon, since otherwise we would also match 28 | URLs such as http://example.com) 29 | ^\s*-\s*[^\s#]+:\s+[^\s#]+.*$ 30 | 31 | uuid 32 | 38D0A8EE-DA69-457B-99DA-1559256DE8A7 33 | 34 | 35 | -------------------------------------------------------------------------------- /Preferences/Indenting.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Indenting 7 | scope 8 | source.yaml 9 | settings 10 | 11 | decreaseIndentPattern 12 | ^\s+\}$ 13 | disableIndentCorrections 14 | 15 | increaseIndentPattern 16 | ^\s*.*(:|-) ?(&\w+)?(\{[^}"']*|\([^)"']*)?$ 17 | indentOnPaste 18 | simple 19 | 20 | uuid 21 | 78CB70FF-5071-11DA-B402-000A95AF0064 22 | 23 | 24 | -------------------------------------------------------------------------------- /Preferences/Symbol List.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List 7 | scope 8 | source.yaml entity.name.tag.yaml 9 | settings 10 | 11 | showInSymbolList 12 | 13 | 14 | uuid 15 | 637B98A7-813A-48B4-A815-9AE6B436142F 16 | 17 | 18 | -------------------------------------------------------------------------------- /README.mdown: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. 4 | 5 | # General 6 | 7 | * [Bundle Styleguide](http://kb.textmate.org/bundle_styleguide) — _before you make changes_ 8 | * [Commit Styleguide](http://kb.textmate.org/commit_styleguide) — _before you send a pull request_ 9 | * [Writing Bug Reports](http://kb.textmate.org/writing_bug_reports) — _before you report an issue_ 10 | 11 | # License 12 | 13 | If not otherwise specified (see below), files in this repository fall under the following license: 14 | 15 | Permission to copy, use, modify, sell and distribute this 16 | software is granted. This software is provided "as is" without 17 | express or implied warranty, and with no claim as to its 18 | suitability for any purpose. 19 | 20 | An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”. -------------------------------------------------------------------------------- /Snippets/untitled.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:key}: ${2:value}$0 7 | keyEquivalent 8 | ^: 9 | name 10 | key: value 11 | scope 12 | source.yaml - string 13 | uuid 14 | D9F46A3E-4F2A-11DA-AFF2-000A95AF0064 15 | 16 | 17 | -------------------------------------------------------------------------------- /Syntaxes/YAML-license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 FichteFoll 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to 7 | deal in the Software without restriction, including without limitation the 8 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9 | sell copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21 | IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Syntaxes/YAML.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | yaml 8 | yml 9 | rviz 10 | reek 11 | clang-format 12 | yaml-tmlanguage 13 | syntax 14 | sublime-syntax 15 | 16 | firstLineMatch 17 | ^%YAML( ?1.\d+)? 18 | keyEquivalent 19 | ^~Y 20 | name 21 | YAML 22 | patterns 23 | 24 | 25 | include 26 | #comment 27 | 28 | 29 | include 30 | #property 31 | 32 | 33 | include 34 | #directive 35 | 36 | 37 | match 38 | ^--- 39 | name 40 | entity.other.document.begin.yaml 41 | 42 | 43 | match 44 | ^\.{3} 45 | name 46 | entity.other.document.end.yaml 47 | 48 | 49 | include 50 | #node 51 | 52 | 53 | repository 54 | 55 | block-collection 56 | 57 | patterns 58 | 59 | 60 | include 61 | #block-sequence 62 | 63 | 64 | include 65 | #block-mapping 66 | 67 | 68 | 69 | block-mapping 70 | 71 | patterns 72 | 73 | 74 | include 75 | #block-pair 76 | 77 | 78 | 79 | block-node 80 | 81 | patterns 82 | 83 | 84 | include 85 | #prototype 86 | 87 | 88 | include 89 | #block-scalar 90 | 91 | 92 | include 93 | #block-collection 94 | 95 | 96 | include 97 | #flow-scalar-plain-out 98 | 99 | 100 | include 101 | #flow-node 102 | 103 | 104 | 105 | block-pair 106 | 107 | patterns 108 | 109 | 110 | begin 111 | \? 112 | beginCaptures 113 | 114 | 1 115 | 116 | name 117 | punctuation.definition.key-value.begin.yaml 118 | 119 | 120 | end 121 | (?=\?)|^ *(:)|(:) 122 | endCaptures 123 | 124 | 1 125 | 126 | name 127 | punctuation.separator.key-value.mapping.yaml 128 | 129 | 2 130 | 131 | name 132 | invalid.illegal.expected-newline.yaml 133 | 134 | 135 | name 136 | meta.block-mapping.yaml 137 | patterns 138 | 139 | 140 | include 141 | #block-node 142 | 143 | 144 | 145 | 146 | begin 147 | (?x) 148 | (?= 149 | (?x: 150 | [^\s[-?:,\[\]{}#&*!|>'"%@`]] 151 | | [?:-] \S 152 | ) 153 | ( 154 | [^\s:] 155 | | : \S 156 | | \s+ (?![#\s]) 157 | )* 158 | \s* 159 | : 160 | (\s|$) 161 | ) 162 | 163 | end 164 | (?x) 165 | (?= 166 | \s* $ 167 | | \s+ \# 168 | | \s* : (\s|$) 169 | ) 170 | 171 | patterns 172 | 173 | 174 | include 175 | #flow-scalar-plain-out-implicit-type 176 | 177 | 178 | begin 179 | (?x) 180 | [^\s[-?:,\[\]{}#&*!|>'"%@`]] 181 | | [?:-] \S 182 | 183 | beginCaptures 184 | 185 | 0 186 | 187 | name 188 | entity.name.tag.yaml 189 | 190 | 191 | contentName 192 | entity.name.tag.yaml 193 | end 194 | (?x) 195 | (?= 196 | \s* $ 197 | | \s+ \# 198 | | \s* : (\s|$) 199 | ) 200 | 201 | name 202 | string.unquoted.plain.out.yaml 203 | 204 | 205 | 206 | 207 | match 208 | :(?=\s|$) 209 | name 210 | punctuation.separator.key-value.mapping.yaml 211 | 212 | 213 | 214 | block-scalar 215 | 216 | begin 217 | (?:(\|)|(>))([1-9])?([-+])?(.*\n?) 218 | beginCaptures 219 | 220 | 1 221 | 222 | name 223 | keyword.control.flow.block-scalar.literal.yaml 224 | 225 | 2 226 | 227 | name 228 | keyword.control.flow.block-scalar.folded.yaml 229 | 230 | 3 231 | 232 | name 233 | constant.numeric.indentation-indicator.yaml 234 | 235 | 4 236 | 237 | name 238 | storage.modifier.chomping-indicator.yaml 239 | 240 | 5 241 | 242 | patterns 243 | 244 | 245 | include 246 | #comment 247 | 248 | 249 | match 250 | .+ 251 | name 252 | invalid.illegal.expected-comment-or-newline.yaml 253 | 254 | 255 | 256 | 257 | end 258 | ^(?=\S)|(?!\G) 259 | patterns 260 | 261 | 262 | begin 263 | ^([ ]+)(?! ) 264 | end 265 | ^(?!\1|\s*$) 266 | name 267 | string.unquoted.block.yaml 268 | 269 | 270 | 271 | block-sequence 272 | 273 | match 274 | (-)(?!\S) 275 | name 276 | punctuation.definition.block.sequence.item.yaml 277 | 278 | comment 279 | 280 | begin 281 | (?:(^[ \t]*)|[ \t]+)(?=#\p{Print}*$) 282 | beginCaptures 283 | 284 | 1 285 | 286 | name 287 | punctuation.whitespace.comment.leading.yaml 288 | 289 | 290 | end 291 | (?!\G) 292 | patterns 293 | 294 | 295 | begin 296 | # 297 | beginCaptures 298 | 299 | 0 300 | 301 | name 302 | punctuation.definition.comment.yaml 303 | 304 | 305 | end 306 | \n 307 | name 308 | comment.line.number-sign.yaml 309 | 310 | 311 | 312 | directive 313 | 314 | begin 315 | ^% 316 | beginCaptures 317 | 318 | 0 319 | 320 | name 321 | punctuation.definition.directive.begin.yaml 322 | 323 | 324 | end 325 | (?=$|[ \t]+($|#)) 326 | name 327 | meta.directive.yaml 328 | patterns 329 | 330 | 331 | captures 332 | 333 | 1 334 | 335 | name 336 | keyword.other.directive.yaml.yaml 337 | 338 | 2 339 | 340 | name 341 | constant.numeric.yaml-version.yaml 342 | 343 | 344 | match 345 | \G(YAML)[ \t]+(\d+\.\d+) 346 | 347 | 348 | captures 349 | 350 | 1 351 | 352 | name 353 | keyword.other.directive.tag.yaml 354 | 355 | 2 356 | 357 | name 358 | storage.type.tag-handle.yaml 359 | 360 | 3 361 | 362 | name 363 | support.type.tag-prefix.yaml 364 | 365 | 366 | match 367 | (?x) 368 | \G 369 | (TAG) 370 | (?:[ \t]+ 371 | ((?:!(?:[0-9A-Za-z\-]*!)?)) 372 | (?:[ \t]+ ( 373 | ! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]] )* 374 | | (?![,!\[\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]] )+ 375 | ) 376 | )? 377 | )? 378 | 379 | 380 | 381 | captures 382 | 383 | 1 384 | 385 | name 386 | support.other.directive.reserved.yaml 387 | 388 | 2 389 | 390 | name 391 | string.unquoted.directive-name.yaml 392 | 393 | 3 394 | 395 | name 396 | string.unquoted.directive-parameter.yaml 397 | 398 | 399 | match 400 | (?x) \G (\w+) (?:[ \t]+ (\w+) (?:[ \t]+ (\w+))? )? 401 | 402 | 403 | match 404 | \S+ 405 | name 406 | invalid.illegal.unrecognized.yaml 407 | 408 | 409 | 410 | flow-alias 411 | 412 | captures 413 | 414 | 1 415 | 416 | name 417 | keyword.control.flow.alias.yaml 418 | 419 | 2 420 | 421 | name 422 | punctuation.definition.alias.yaml 423 | 424 | 3 425 | 426 | name 427 | variable.other.alias.yaml 428 | 429 | 4 430 | 431 | name 432 | invalid.illegal.character.anchor.yaml 433 | 434 | 435 | match 436 | ((\*))([^\s\[\]/{/},]+)([^\s\]},]\S*)? 437 | 438 | flow-collection 439 | 440 | patterns 441 | 442 | 443 | include 444 | #flow-sequence 445 | 446 | 447 | include 448 | #flow-mapping 449 | 450 | 451 | 452 | flow-mapping 453 | 454 | begin 455 | \{ 456 | beginCaptures 457 | 458 | 0 459 | 460 | name 461 | punctuation.definition.mapping.begin.yaml 462 | 463 | 464 | end 465 | \} 466 | endCaptures 467 | 468 | 0 469 | 470 | name 471 | punctuation.definition.mapping.end.yaml 472 | 473 | 474 | name 475 | meta.flow-mapping.yaml 476 | patterns 477 | 478 | 479 | include 480 | #prototype 481 | 482 | 483 | match 484 | , 485 | name 486 | punctuation.separator.mapping.yaml 487 | 488 | 489 | include 490 | #flow-pair 491 | 492 | 493 | 494 | flow-node 495 | 496 | patterns 497 | 498 | 499 | include 500 | #prototype 501 | 502 | 503 | include 504 | #flow-alias 505 | 506 | 507 | include 508 | #flow-collection 509 | 510 | 511 | include 512 | #flow-scalar 513 | 514 | 515 | 516 | flow-pair 517 | 518 | patterns 519 | 520 | 521 | begin 522 | \? 523 | beginCaptures 524 | 525 | 0 526 | 527 | name 528 | punctuation.definition.key-value.begin.yaml 529 | 530 | 531 | end 532 | (?=[},\]]) 533 | name 534 | meta.flow-pair.explicit.yaml 535 | patterns 536 | 537 | 538 | include 539 | #prototype 540 | 541 | 542 | include 543 | #flow-pair 544 | 545 | 546 | include 547 | #flow-node 548 | 549 | 550 | begin 551 | :(?=\s|$|[\[\]{},]) 552 | beginCaptures 553 | 554 | 0 555 | 556 | name 557 | punctuation.separator.key-value.mapping.yaml 558 | 559 | 560 | end 561 | (?=[},\]]) 562 | patterns 563 | 564 | 565 | include 566 | #flow-value 567 | 568 | 569 | 570 | 571 | 572 | 573 | begin 574 | (?x) 575 | (?= 576 | (?: 577 | [^\s[-?:,\[\]{}#&*!|>'"%@`]] 578 | | [?:-] [^\s[\[\]{},]] 579 | ) 580 | ( 581 | [^\s:[\[\]{},]] 582 | | : [^\s[\[\]{},]] 583 | | \s+ (?![#\s]) 584 | )* 585 | \s* 586 | : 587 | (\s|$) 588 | ) 589 | 590 | end 591 | (?x) 592 | (?= 593 | \s* $ 594 | | \s+ \# 595 | | \s* : (\s|$) 596 | | \s* : [\[\]{},] 597 | | \s* [\[\]{},] 598 | ) 599 | 600 | name 601 | meta.flow-pair.key.yaml 602 | patterns 603 | 604 | 605 | include 606 | #flow-scalar-plain-in-implicit-type 607 | 608 | 609 | begin 610 | (?x) 611 | [^\s[-?:,\[\]{}#&*!|>'"%@`]] 612 | | [?:-] [^\s[\[\]{},]] 613 | 614 | beginCaptures 615 | 616 | 0 617 | 618 | name 619 | entity.name.tag.yaml 620 | 621 | 622 | contentName 623 | entity.name.tag.yaml 624 | end 625 | (?x) 626 | (?= 627 | \s* $ 628 | | \s+ \# 629 | | \s* : (\s|$) 630 | | \s* : [\[\]{},] 631 | | \s* [\[\]{},] 632 | ) 633 | 634 | name 635 | string.unquoted.plain.in.yaml 636 | 637 | 638 | 639 | 640 | include 641 | #flow-node 642 | 643 | 644 | begin 645 | :(?=\s|$|[\[\]{},]) 646 | captures 647 | 648 | 0 649 | 650 | name 651 | punctuation.separator.key-value.mapping.yaml 652 | 653 | 654 | end 655 | (?=[},\]]) 656 | name 657 | meta.flow-pair.yaml 658 | patterns 659 | 660 | 661 | include 662 | #flow-value 663 | 664 | 665 | 666 | 667 | 668 | flow-scalar 669 | 670 | patterns 671 | 672 | 673 | include 674 | #flow-scalar-double-quoted 675 | 676 | 677 | include 678 | #flow-scalar-single-quoted 679 | 680 | 681 | include 682 | #flow-scalar-plain-in 683 | 684 | 685 | 686 | flow-scalar-double-quoted 687 | 688 | begin 689 | " 690 | beginCaptures 691 | 692 | 0 693 | 694 | name 695 | punctuation.definition.string.begin.yaml 696 | 697 | 698 | end 699 | " 700 | endCaptures 701 | 702 | 0 703 | 704 | name 705 | punctuation.definition.string.end.yaml 706 | 707 | 708 | name 709 | string.quoted.double.yaml 710 | patterns 711 | 712 | 713 | match 714 | \\([0abtnvfre "/\\N_Lp]|x\d\d|u\d{4}|U\d{8}) 715 | name 716 | constant.character.escape.yaml 717 | 718 | 719 | match 720 | \\\n 721 | name 722 | constant.character.escape.double-quoted.newline.yaml 723 | 724 | 725 | 726 | flow-scalar-plain-in 727 | 728 | patterns 729 | 730 | 731 | include 732 | #flow-scalar-plain-in-implicit-type 733 | 734 | 735 | begin 736 | (?x) 737 | [^\s[-?:,\[\]{}#&*!|>'"%@`]] 738 | | [?:-] [^\s[\[\]{},]] 739 | 740 | end 741 | (?x) 742 | (?= 743 | \s* $ 744 | | \s+ \# 745 | | \s* : (\s|$) 746 | | \s* : [\[\]{},] 747 | | \s* [\[\]{},] 748 | ) 749 | 750 | name 751 | string.unquoted.plain.in.yaml 752 | 753 | 754 | 755 | flow-scalar-plain-in-implicit-type 756 | 757 | patterns 758 | 759 | 760 | captures 761 | 762 | 1 763 | 764 | name 765 | constant.language.null.yaml 766 | 767 | 2 768 | 769 | name 770 | constant.language.boolean.yaml 771 | 772 | 3 773 | 774 | name 775 | constant.numeric.integer.yaml 776 | 777 | 4 778 | 779 | name 780 | constant.numeric.float.yaml 781 | 782 | 5 783 | 784 | name 785 | constant.other.timestamp.yaml 786 | 787 | 6 788 | 789 | name 790 | constant.language.value.yaml 791 | 792 | 7 793 | 794 | name 795 | constant.language.merge.yaml 796 | 797 | 798 | match 799 | (?x) 800 | (?x: 801 | (null|Null|NULL|~) 802 | | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF) 803 | | ( 804 | (?: 805 | [-+]? 0b [0-1_]+ # (base 2) 806 | | [-+]? 0 [0-7_]+ # (base 8) 807 | | [-+]? (?: 0|[1-9][0-9_]*) # (base 10) 808 | | [-+]? 0x [0-9a-fA-F_]+ # (base 16) 809 | | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60) 810 | ) 811 | ) 812 | | ( 813 | (?x: 814 | [-+]? (?: [0-9] [0-9_]*)? \. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10) 815 | | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \. [0-9_]* # (base 60) 816 | | [-+]? \. (?: inf|Inf|INF) # (infinity) 817 | | \. (?: nan|NaN|NAN) # (not a number) 818 | ) 819 | ) 820 | | ( 821 | (?x: 822 | \d{4} - \d{2} - \d{2} # (y-m-d) 823 | | \d{4} # (year) 824 | - \d{1,2} # (month) 825 | - \d{1,2} # (day) 826 | (?: [Tt] | [ \t]+) \d{1,2} # (hour) 827 | : \d{2} # (minute) 828 | : \d{2} # (second) 829 | (?: \.\d*)? # (fraction) 830 | (?: 831 | (?:[ \t]*) Z 832 | | [-+] \d{1,2} (?: :\d{1,2})? 833 | )? # (time zone) 834 | ) 835 | ) 836 | | (=) 837 | | (<<) 838 | ) 839 | (?: 840 | (?= 841 | \s* $ 842 | | \s+ \# 843 | | \s* : (\s|$) 844 | | \s* : [\[\]{},] 845 | | \s* [\[\]{},] 846 | ) 847 | ) 848 | 849 | 850 | 851 | 852 | flow-scalar-plain-out 853 | 854 | patterns 855 | 856 | 857 | include 858 | #flow-scalar-plain-out-implicit-type 859 | 860 | 861 | begin 862 | (?x) 863 | [^\s[-?:,\[\]{}#&*!|>'"%@`]] 864 | | [?:-] \S 865 | 866 | end 867 | (?x) 868 | (?= 869 | \s* $ 870 | | \s+ \# 871 | | \s* : (\s|$) 872 | ) 873 | 874 | name 875 | string.unquoted.plain.out.yaml 876 | 877 | 878 | 879 | flow-scalar-plain-out-implicit-type 880 | 881 | patterns 882 | 883 | 884 | captures 885 | 886 | 1 887 | 888 | name 889 | constant.language.null.yaml 890 | 891 | 2 892 | 893 | name 894 | constant.language.boolean.yaml 895 | 896 | 3 897 | 898 | name 899 | constant.numeric.integer.yaml 900 | 901 | 4 902 | 903 | name 904 | constant.numeric.float.yaml 905 | 906 | 5 907 | 908 | name 909 | constant.other.timestamp.yaml 910 | 911 | 6 912 | 913 | name 914 | constant.language.value.yaml 915 | 916 | 7 917 | 918 | name 919 | constant.language.merge.yaml 920 | 921 | 922 | match 923 | (?x) 924 | (?x: 925 | (null|Null|NULL|~) 926 | | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF) 927 | | ( 928 | (?: 929 | [-+]? 0b [0-1_]+ # (base 2) 930 | | [-+]? 0 [0-7_]+ # (base 8) 931 | | [-+]? (?: 0|[1-9][0-9_]*) # (base 10) 932 | | [-+]? 0x [0-9a-fA-F_]+ # (base 16) 933 | | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60) 934 | ) 935 | ) 936 | | ( 937 | (?x: 938 | [-+]? (?: [0-9] [0-9_]*)? \. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10) 939 | | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \. [0-9_]* # (base 60) 940 | | [-+]? \. (?: inf|Inf|INF) # (infinity) 941 | | \. (?: nan|NaN|NAN) # (not a number) 942 | ) 943 | ) 944 | | ( 945 | (?x: 946 | \d{4} - \d{2} - \d{2} # (y-m-d) 947 | | \d{4} # (year) 948 | - \d{1,2} # (month) 949 | - \d{1,2} # (day) 950 | (?: [Tt] | [ \t]+) \d{1,2} # (hour) 951 | : \d{2} # (minute) 952 | : \d{2} # (second) 953 | (?: \.\d*)? # (fraction) 954 | (?: 955 | (?:[ \t]*) Z 956 | | [-+] \d{1,2} (?: :\d{1,2})? 957 | )? # (time zone) 958 | ) 959 | ) 960 | | (=) 961 | | (<<) 962 | ) 963 | (?x: 964 | (?= 965 | \s* $ 966 | | \s+ \# 967 | | \s* : (\s|$) 968 | ) 969 | ) 970 | 971 | 972 | 973 | 974 | flow-scalar-single-quoted 975 | 976 | begin 977 | ' 978 | beginCaptures 979 | 980 | 0 981 | 982 | name 983 | punctuation.definition.string.begin.yaml 984 | 985 | 986 | end 987 | '(?!') 988 | endCaptures 989 | 990 | 0 991 | 992 | name 993 | punctuation.definition.string.end.yaml 994 | 995 | 996 | name 997 | string.quoted.single.yaml 998 | patterns 999 | 1000 | 1001 | match 1002 | '' 1003 | name 1004 | constant.character.escape.single-quoted.yaml 1005 | 1006 | 1007 | 1008 | flow-sequence 1009 | 1010 | begin 1011 | \[ 1012 | beginCaptures 1013 | 1014 | 0 1015 | 1016 | name 1017 | punctuation.definition.sequence.begin.yaml 1018 | 1019 | 1020 | end 1021 | \] 1022 | endCaptures 1023 | 1024 | 0 1025 | 1026 | name 1027 | punctuation.definition.sequence.end.yaml 1028 | 1029 | 1030 | name 1031 | meta.flow-sequence.yaml 1032 | patterns 1033 | 1034 | 1035 | include 1036 | #prototype 1037 | 1038 | 1039 | match 1040 | , 1041 | name 1042 | punctuation.separator.sequence.yaml 1043 | 1044 | 1045 | include 1046 | #flow-pair 1047 | 1048 | 1049 | include 1050 | #flow-node 1051 | 1052 | 1053 | 1054 | flow-value 1055 | 1056 | patterns 1057 | 1058 | 1059 | begin 1060 | \G(?![},\]]) 1061 | end 1062 | (?=[},\]]) 1063 | name 1064 | meta.flow-pair.value.yaml 1065 | patterns 1066 | 1067 | 1068 | include 1069 | #flow-node 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | node 1076 | 1077 | patterns 1078 | 1079 | 1080 | include 1081 | #block-node 1082 | 1083 | 1084 | 1085 | property 1086 | 1087 | begin 1088 | (?=!|&) 1089 | end 1090 | (?!\G) 1091 | name 1092 | meta.property.yaml 1093 | patterns 1094 | 1095 | 1096 | captures 1097 | 1098 | 1 1099 | 1100 | name 1101 | keyword.control.property.anchor.yaml 1102 | 1103 | 2 1104 | 1105 | name 1106 | punctuation.definition.anchor.yaml 1107 | 1108 | 3 1109 | 1110 | name 1111 | entity.name.type.anchor.yaml 1112 | 1113 | 4 1114 | 1115 | name 1116 | invalid.illegal.character.anchor.yaml 1117 | 1118 | 1119 | match 1120 | \G((&))([^\s\[\]/{/},]+)(\S+)? 1121 | 1122 | 1123 | match 1124 | (?x) 1125 | \G 1126 | (?: 1127 | ! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]] )+ > 1128 | | (?:!(?:[0-9A-Za-z\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\-#;/?:@&=+$_.~*'()] )+ 1129 | | ! 1130 | ) 1131 | (?=\ |\t|$) 1132 | 1133 | name 1134 | storage.type.tag-handle.yaml 1135 | 1136 | 1137 | match 1138 | \S+ 1139 | name 1140 | invalid.illegal.tag-handle.yaml 1141 | 1142 | 1143 | 1144 | prototype 1145 | 1146 | patterns 1147 | 1148 | 1149 | include 1150 | #comment 1151 | 1152 | 1153 | include 1154 | #property 1155 | 1156 | 1157 | 1158 | 1159 | scopeName 1160 | source.yaml 1161 | uuid 1162 | 686AD6AE-33F3-4493-9512-9E9FC1D5417F 1163 | 1164 | 1165 | -------------------------------------------------------------------------------- /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | contactEmailRot13 6 | ohaqyrf@grkgzngr.bet 7 | contactName 8 | Michael Sheets 9 | description 10 | A human-readable data serialization language. 11 | mainMenu 12 | 13 | items 14 | 15 | D9F46A3E-4F2A-11DA-AFF2-000A95AF0064 16 | 037242FC-9D77-46A6-94B8-865052595B5A 17 | ------------------------------------ 18 | 331791FA-7335-45B9-865E-760D52294D01 19 | D73CBC77-1692-4981-8C3E-6DCE63F6E2E2 20 | ------------------------------------ 21 | 52CDBDBC-91B6-40DD-852A-C92D7D15D6F5 22 | 23 | submenus 24 | 25 | 26 | name 27 | YAML 28 | uuid 29 | AC506ECC-4F1F-11DA-AFF2-000A95AF0064 30 | 31 | 32 | --------------------------------------------------------------------------------