<?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>toml</string>
      <string>tml</string>
    </array>
    <key>name</key>
    <string>TOML</string>
    <key>patterns</key>
    <array>
      <dict>
        <key>include</key>
        <string>#comments</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#tables</string>
      </dict>
      <dict>
        <key>include</key>
        <string>#keys</string>
      </dict>
    </array>
    <key>repository</key>
    <dict>
      <key>array</key>
      <dict>
        <key>begin</key>
        <string>(?&lt;!\w)(\[)\s*</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>punctuation.definition.array.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>Array</string>
        <key>end</key>
        <string>\s*(\])(?!\w)</string>
        <key>endCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>punctuation.definition.array.toml</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#comments</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#dataTypes</string>
          </dict>
        </array>
      </dict>
      <key>boolean</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>constant.other.boolean.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>Boolean</string>
        <key>match</key>
        <string>(?&lt;!\w)(true|false)(?!\w)</string>
      </dict>
      <key>comments</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>comment.line.number-sign.toml</string>
          </dict>
          <key>2</key>
          <dict>
            <key>name</key>
            <string>punctuation.definition.comment.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>Comments</string>
        <key>match</key>
        <string>\s*((#).*)$</string>
      </dict>
      <key>dataTypes</key>
      <dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#inlinetable</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#array</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#string</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#dateTimeWithTz</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#dateTime</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#date</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#float</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#integer</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#boolean</string>
          </dict>
        </array>
      </dict>
      <key>dateTimeWithTz</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>constant.other.datetime-with-timezone.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>DateTime</string>
        <key>match</key>
        <string>(?&lt;!\w)(\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[\+\-]\d{2}:\d{2}))(?!\w)</string>
      </dict>
      <key>dateTime</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>constant.other.datetime.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>DateTime</string>
        <key>match</key>
        <string>(\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?)</string>
      </dict>
      <key>date</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>constant.other.date.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>DateTime</string>
        <key>match</key>
        <string>(\d{4}\-\d{2}\-\d{2})</string>
      </dict>
      <key>float</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>constant.numeric.float.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>Float, decimal and exponential representation</string>
        <key>match</key>
        <string>(?&lt;!\w)([\+\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\+\-]?[1-9]_?[0-9]*|(?:\.[0-9_]*)))(?!\w)</string>
      </dict>
      <key>illegal</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>invalid.illegal.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>Invalid things -&gt; everything unmatched</string>
        <key>match</key>
        <string>(.*)</string>
      </dict>
      <key>inlinetable</key>
      <dict>
        <key>begin</key>
        <string>(?&lt;!\w)(\{)\s*</string>
        <key>beginCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>punctuation.definition.inlinetable.toml</string>
          </dict>
        </dict>
        <key>end</key>
        <string>\s*(\})(?!\w)</string>
        <key>endCaptures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>punctuation.definition.inlinetable.toml</string>
          </dict>
        </dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>include</key>
            <string>#keys</string>
          </dict>
          <dict>
            <key>include</key>
            <string>#dataTypes</string>
          </dict>
        </array>
      </dict>
      <key>integer</key>
      <dict>
        <key>captures</key>
        <dict>
          <key>1</key>
          <dict>
            <key>name</key>
            <string>constant.numeric.integer.toml</string>
          </dict>
        </dict>
        <key>comment</key>
        <string>Integer (with and without + and - prefixes)</string>
        <key>match</key>
        <string>(?&lt;!\w)((?:[\+\-]?(0|([1-9](([0-9]|_[0-9])+)?))))(?!\w)</string>
      </dict>
      <key>keys</key>
      <dict>
        <key>comment</key>
        <string>Key-value-pairs</string>
        <key>patterns</key>
        <array>
          <dict>
            <key>comment</key>
            <string>Assignments without key are invalid</string>
            <key>match</key>
            <string>(\s*=.*)$</string>
            <key>name</key>
            <string>invalid.illegal.noKeyDefined.toml</string>
          </dict>
          <dict>
            <key>comment</key>
            <string>Assignments without value are unusual</string>
            <key>match</key>
            <string>(\s*[A-Za-z_\-][A-Za-z0-9_\-]*\s*=)(?=\s*$)</string>
            <key>name</key>
            <string>invalid.deprecated.noValueGiven.toml</string>
          </dict>
          <dict>
            <key>begin</key>
            <string>\s*([A-Za-z_-][A-Za-z0-9_-]*|".+"|'.+'|[0-9]+)\s*(=)\s*</string>
            <key>beginCaptures</key>
            <dict>
              <key>1</key>
              <dict>
                <key>name</key>
                <string>keyword.key.toml</string>
              </dict>
              <key>2</key>
              <dict>
                <key>name</key>
                <string>punctuation.definition.keyValuePair.toml</string>
              </dict>
            </dict>
            <key>end</key>
            <string>($|(?==)|\,|\s*(?=\}))</string>
            <key>patterns</key>
            <array>
              <dict>
                <key>include</key>
                <string>#comments</string>
              </dict>
              <dict>
                <key>include</key>
                <string>#dataTypes</string>
              </dict>
              <dict>
                <key>include</key>
                <string>#illegal</string>
              </dict>
            </array>
          </dict>
        </array>
      </dict>
      <key>string</key>
      <dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>begin</key>
            <string>'''</string>
            <key>comment</key>
            <string>literal string block (no escape sequences)</string>
            <key>end</key>
            <string>'''</string>
            <key>name</key>
            <string>string.quoted.triple.literal.block.toml</string>
          </dict>
          <dict>
            <key>comment</key>
            <string>literal string line (no escape sequences)</string>
            <key>match</key>
            <string>'.*?'</string>
            <key>name</key>
            <string>string.quoted.single.literal.line.toml</string>
          </dict>
          <dict>
            <key>begin</key>
            <string>"""</string>
            <key>comment</key>
            <string>basic string block</string>
            <key>end</key>
            <string>"""</string>
            <key>name</key>
            <string>string.quoted.triple.basic.block.toml</string>
            <key>patterns</key>
            <array>
              <dict>
                <key>match</key>
                <string>\\([btnfr"\\ \n]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})</string>
                <key>name</key>
                <string>constant.character.escape.toml</string>
              </dict>
              <dict>
                <key>match</key>
                <string>\\[^btnfr"\\\n]</string>
                <key>name</key>
                <string>invalid.illegal.escape.toml</string>
              </dict>
            </array>
          </dict>
          <dict>
            <key>comment</key>
            <string>basic string line</string>
            <key>match</key>
            <string>"[^"\\]*(?:\\.[^"\\]*)*"</string>
            <key>name</key>
            <string>string.quoted.single.basic.line.toml</string>
          </dict>
        </array>
      </dict>
      <key>tables</key>
      <dict>
        <key>patterns</key>
        <array>
          <dict>
            <key>captures</key>
            <dict>
              <key>1</key>
              <dict>
                <key>name</key>
                <string>punctuation.definition.table.toml</string>
              </dict>
              <key>2</key>
              <dict>
                <key>patterns</key>
                <array>
                  <dict>
                    <key>match</key>
                    <string>[^\s.]+</string>
                    <key>name</key>
                    <string>entity.other.attribute-name.table.toml</string>
                  </dict>
                </array>
              </dict>
              <key>3</key>
              <dict>
                <key>name</key>
                <string>punctuation.definition.table.toml</string>
              </dict>
            </dict>
            <key>match</key>
            <string>^\s*(\[)([^\[\]]*)(\])</string>
            <key>name</key>
            <string>meta.tag.table.toml</string>
          </dict>
          <dict>
            <key>captures</key>
            <dict>
              <key>1</key>
              <dict>
                <key>name</key>
                <string>punctuation.definition.table.array.toml</string>
              </dict>
              <key>2</key>
              <dict>
                <key>patterns</key>
                <array>
                  <dict>
                    <key>match</key>
                    <string>[^\s.]+</string>
                    <key>name</key>
                    <string>entity.other.attribute-name.table.array.toml</string>
                  </dict>
                </array>
              </dict>
              <key>3</key>
              <dict>
                <key>name</key>
                <string>punctuation.definition.table.array.toml</string>
              </dict>
            </dict>
            <key>match</key>
            <string>^\s*(\[\[)([^\[\]]*)(\]\])</string>
            <key>name</key>
            <string>meta.tag.table.array.toml</string>
          </dict>
        </array>
      </dict>
    </dict>
    <key>scopeName</key>
    <string>source.toml</string>
    <key>uuid</key>
    <string>ffffeb76-439f-4c5e-b60f-d8a13606d63d</string>
  </dict>
</plist>