--- name: MacPorts Portfile fileTypes: [] scopeName: source.tcl.macports repository: escape: name: constant.character.escape.tcl match: \\(\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\n) comment: imported from Tcl grammar bare-string: endCaptures: "1": name: invalid.illegal.tcl begin: (?:^|(?<=\s))" end: "\"(\\S*)" patterns: - include: "#escape" - include: "#variable" comment: imported from Tcl grammar braces: endCaptures: "1": name: invalid.illegal.tcl begin: (?:^|(?<=\s))\{ end: \}(\S*) patterns: - name: constant.character.escape.tcl match: \\[{}\n] - include: "#inner-braces" comment: imported from Tcl grammar inner-braces: begin: \{ end: \} patterns: - name: constant.character.escape.tcl match: \\[{}\n] - include: "#inner-braces" comment: imported from Tcl grammar variable: name: variable.other.tcl captures: "1": name: punctuation.definition.variable.tcl match: (\$)([a-zA-Z0-9_:]+(\([^\)]+\))?|\{[^\}]*\}) comment: imported from Tcl grammar string: name: string.quoted.double.tcl begin: (?:^|(?<=\s))(?=") applyEndPatternLast: 1 end: "" patterns: - include: "#bare-string" comment: imported from Tcl grammar embedded: name: source.tcl.embedded endCaptures: "0": name: punctuation.section.embedded.end.tcl begin: \[ beginCaptures: "0": name: punctuation.section.embedded.begin.tcl end: \] patterns: - include: source.tcl.macports comment: imported from Tcl grammar uuid: 33EC56FE-2BD4-4B73-A6CD-73395F4E5E58 foldingStartMarker: \{\s*$ patterns: - begin: ^\s*(PortGroup)\s+ruby(?!\S) beginCaptures: "1": name: keyword.other.tcl.macports end: $.^ patterns: - include: $base - name: keyword.other.tcl.macports match: ^\s*ruby\.setup(?!\S) comment: special case for ruby PortGroup - begin: ^\s*(PortGroup)\s+perl5(?!\S) beginCaptures: "1": name: keyword.other.tcl.macports end: $.^ patterns: - include: $base - name: keyword.other.tcl.macports match: ^\s*perl5\.setup(?!\S) comment: special case for the perl5 PortGroup - captures: "1": name: keyword.other.tcl.macports match: ^\s*(PortSystem|PortGroup)(?!\S) comment: Base commands - captures: "1": name: keyword.other.tcl.macports match: ^\s*(use_(?:configure|build|automake|autoconf|xmkmf|libtool|destroot|extract|cvs|svn|patch|test)|(?:configure|build|automake|autoconf|xmkmf|libtool|destroot|extract|cvs|svn|patch|test)\.(?:dir|(?:pre_|post_)?args|env|type|cmd)(?:-(?:delete|append))?)(?!\S) comment: Procs defined with the `commands` keyword (ignore use_option-{delete,append} as it is useless) - captures: "1": name: keyword.other.tcl.macports match: ^\s*((?:(?:pre|post)-)?(?:activate|build|checksum|clean|configure|destroot|distcheck|extract|fetch|install|livecheck|main|mirror|patch|pkg|mpkg|submit|test))(?!\S) comment: Procs defined with the `target_provides` keyword - captures: "1": name: keyword.other.tcl.macports match: ^\s*((?:build\.target|categories|checksum\.skip|checksums|cvs\.(?:date|module|password|root|tag)|default_variants|depends_(?:build|lib|run)|destroot\.(?:clean|destdir|keepdirs|target|umask)|dist_subdir|distcheck\.check|distfiles|distname|distpath|epoch|extract\.(?:only|suffix)|fetch\.(?:password|type|use_epsv|user)|filesdir|gnustep\.domain|homepage|install\.(?:group|user)|libpath|livecheck\.(?:check|md5|name|distname|regex|url|version)|maintainers|(?:master|patch)_sites(?:\.mirror_subdir)?|name|os\.(?:arch|endian|platform|version)|patchfiles|platforms|portdbpath|portname|prefix|revision|sources_conf|startupitem\.(?:create|executable|init|logevents|logfile|name|pidfile|requires|restart|start|stop|type)|svn\.(?:tag|url)|test\.(?:run|target)|use_bzip2|use_zip|version|workdir|worksrcdir|xcode\.(?:build\.settings|configuration|destroot\.(?:path|settings|type)|project|target)|zope\.need_subdir)(?:-(?:delete|append))?)(?!\S) comment: Procs defined with the `options` keyword - begin: ^\s*((?:long_)?description)(?!\S) contentName: string.unquoted.tcl.macports beginCaptures: "1": name: keyword.other.tcl.macports end: "[\\n;]" patterns: - include: "#escape" - include: "#string" - include: "#braces" - include: "#embedded" - include: "#variable" comment: special-case description and long_description for backslash-newline escapes and string scoping - name: meta.variant.tcl.macports captures: "1": name: keyword.other.variant.tcl.macports begin: ^(variant)(?!\S) end: \n patterns: - name: keyword.other.variant.tcl.macports match: (?<=\s)(?:provides|requires|conflicts)(?!\S) - name: entity.name.function.variant.tcl.macports match: (?<=\s)([\w-]+) - endCaptures: "1": name: punctuation.terminator.variant.tcl.macports begin: (\{) beginCaptures: "1": name: punctuation.section.variant.tcl.macports end: (\}) patterns: - include: source.tcl.macports - name: meta.variant.platform.tcl.macports endCaptures: "1": name: punctuation.terminator.variant.platform.tcl.macports begin: ^(platform)(?:\s+(\S+))?(?:\s+(\S+))?(?:\s+(\S+))?\s+(\{) beginCaptures: "1": name: keyword.other.variant.platform.tcl.macports "2": name: entity.name.function.variant.platform.tcl.macports "5": name: punctuation.section.variant.platform.tcl.macports end: (\}) patterns: - include: source.tcl.macports - name: keyword.other.tcl.macports match: (?<=^|[\[{;])\s*(adduser|addgroup|dirSize|binaryInPath|archiveTypeIsSupported|variant_isset|xinstall|system|reinplace|flock|readdir|strsed|mkstemp|mktemp|existsuser|existsgroup|nextuid|nextgid|md5|find|filemap|rpm-vercomp|rmd160|sha1|compat|umask|sudo|mkfifo|unixsocketpair|mkchannelfromfd|pipe|curl|readline|rl_history|getuid|geteuid|setuid|seteuid|name_to_uid|uid_to_name|ldelete|delete|include)\b - include: source.tcl foldingStopMarker: ^\s*\}