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