<?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>provn</string> </array> <key>keyEquivalent</key> <string>^~P</string> <key>name</key> <string>Provenance Notation (PROV-N)</string> <key>patterns</key> <array> <dict> <key>begin</key> <string>\A\s*(document)\s</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.document.provn</string> </dict> </dict> <key>end</key> <string>(endDocument)\s*\Z</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.document.provn</string> </dict> </dict> <key>name</key> <string>meta.document.provn</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comments-block</string> </dict> <dict> <key>include</key> <string>#bundle-content</string> </dict> <dict> <key>include</key> <string>#bundle</string> </dict> </array> </dict> </array> <key>repository</key> <dict> <key>attribute-name</key> <dict> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>variable.other.prefix.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.other.localname.provn</string> </dict> </dict> <key>match</key> <string>(\w[\w-]*):([\w]([-/%\.\w]*[-/%\w])?)\s*=</string> </dict> <key>attribute-single</key> <dict> <key>begin</key> <string>(\w[\w-]*):([\w]([-/%\.\w]*[-/%\w])?)\s*=\s*</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>variable.other.prefix.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.other.localname.provn</string> </dict> </dict> <key>comment</key> <string>This is currently not used as it breaks the other patters</string> <key>end</key> <string>[,\Z]</string> <key>name</key> <string>meta.attribute.provn</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment-inline</string> </dict> <dict> <key>include</key> <string>#string-multiline</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#qualified-name-convenience</string> </dict> <dict> <key>include</key> <string>#localname</string> </dict> <dict> <key>include</key> <string>#number</string> </dict> </array> </dict> <key>attributes</key> <dict> <key>begin</key> <string>\[</string> <key>end</key> <string>\]</string> <key>name</key> <string>meta.attributes-block.provn</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment-inline</string> </dict> <dict> <key>include</key> <string>#attribute-name</string> </dict> <dict> <key>include</key> <string>#string-multiline</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#qualified-name-convenience</string> </dict> <dict> <key>include</key> <string>#number</string> </dict> <dict> <key>include</key> <string>#data-type</string> </dict> </array> </dict> <key>bundle</key> <dict> <key>begin</key> <string>(bundle)[ \t]+(\w[\w-]*):([\w]([-/%\.\w]*[-/%\w])?)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.bundle.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.other.prefix.provn</string> </dict> <key>3</key> <dict> <key>name</key> <string>entity.other.localname.provn</string> </dict> </dict> <key>end</key> <string>(endBundle)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.bundle.provn</string> </dict> </dict> <key>name</key> <string>meta.bundle.provn</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#bundle-content</string> </dict> </array> </dict> <key>bundle-content</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#ns-prefix</string> </dict> <dict> <key>include</key> <string>#ns-default</string> </dict> <dict> <key>include</key> <string>#statement</string> </dict> <dict> <key>include</key> <string>#comment-block</string> </dict> <dict> <key>include</key> <string>#comment-inline</string> </dict> </array> </dict> <key>comment-inline</key> <dict> <key>begin</key> <string>(^[ \t]+)?(?=//)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.whitespace.comment.leading.provn</string> </dict> </dict> <key>end</key> <string>(?!\G)</string> <key>patterns</key> <array> <dict> <key>begin</key> <string>//</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.provn</string> </dict> </dict> <key>end</key> <string>\n</string> <key>name</key> <string>comment.line.double-slash.provn</string> </dict> </array> </dict> <key>comments-block</key> <dict> <key>begin</key> <string>/\*</string> <key>captures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.provn</string> </dict> </dict> <key>end</key> <string>\*/</string> <key>name</key> <string>comment.block.provn</string> </dict> <key>data-type</key> <dict> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>variable.other.prefix.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.provn</string> </dict> </dict> <key>match</key> <string>[ \t]*%%[ \t]*(\w[\w-]*):([\w]([-/%\.\w]*[-/%\w])?)\s*</string> </dict> <key>localname</key> <dict> <key>match</key> <string>(?<local>[\w]([-/%\.\w]*[-/%\w])?)</string> <key>name</key> <string>entity.other.localname.provn</string> </dict> <key>ns-default</key> <dict> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.other.prefix.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>markup.underline.link.uri</string> </dict> </dict> <key>match</key> <string>(default)\s+<([^<>"{}|^`\\]*)></string> <key>name</key> <string>meta.namespace.default.provn</string> </dict> <key>ns-prefix</key> <dict> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.other.prefix.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.other.prefix.provn</string> </dict> <key>3</key> <dict> <key>name</key> <string>markup.underline.link.uri</string> </dict> </dict> <key>match</key> <string>(prefix)\s+(\w[\w-]*)\s+<([^<>"{}|^`\\]*)></string> <key>name</key> <string>meta.namespace.prefix.provn</string> </dict> <key>number</key> <dict> <key>match</key> <string>\d+</string> <key>name</key> <string>constant.numeric</string> </dict> <key>qualified-name-convenience</key> <dict> <key>captures</key> <dict> <key>2</key> <dict> <key>name</key> <string>entity.other.qualifiedname.provn</string> </dict> </dict> <key>match</key> <string>(')(.+)(')</string> <key>name</key> <string>meta.qualifiedname-convenience.provn</string> </dict> <key>qualifiedname</key> <dict> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>variable.other.prefix.provn</string> </dict> <key>2</key> <dict> <key>name</key> <string>entity.other.localname.provn</string> </dict> </dict> <key>match</key> <string>(?<prefix>\w[\w-]*):(?<local>[\w]([-/%\.\w]*[-/%\w])?)</string> </dict> <key>statement</key> <dict> <key>begin</key> <string>\b(entity|activity|agent|wasGeneratedBy|used|wasInformedBy|wasStartedBy|wasEndedBy|wasInvalidatedBy|wasDerivedFrom|wasAttributedTo|wasAssociatedWith|actedOnBehalfOf|wasInfluencedBy|alternateOf|specializationOf|hadMember|mentionOf)[ \t]*\(</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.statement.provn</string> </dict> </dict> <key>end</key> <string>\)</string> <key>name</key> <string>meta.statement.provn</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment-inline</string> </dict> <dict> <key>include</key> <string>#attributes</string> </dict> <dict> <key>include</key> <string>#qualifiedname</string> </dict> <dict> <key>include</key> <string>#localname</string> </dict> </array> </dict> <key>string</key> <dict> <key>match</key> <string>".*?"</string> <key>name</key> <string>string.quoted.double.provn</string> </dict> <key>string-multiline</key> <dict> <key>begin</key> <string>"""</string> <key>end</key> <string>"""</string> <key>name</key> <string>string.quoted.multiline.provn</string> </dict> </dict> <key>scopeName</key> <string>source.provn</string> <key>uuid</key> <string>65c0e744-365c-4bcb-922b-018623fa70f1</string> </dict> </plist>