--- 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*\\}"