Permalink
Fetching contributors…
Cannot retrieve contributors at this time
108 lines (96 sloc) 3.53 KB
# [PackageDev] target_format: plist, ext: tmLanguage
---
name: WDL
scopeName: source.wdl
fileTypes: [wdl]
uuid: 29cdcefa-8185-46f9-988a-2310d2244661
patterns:
- name: keyword.control.import.wdl
match: \b(?:(import|as))\b
- name: keyword.operator.assignment.wdl
match: \=
- name: keyword.operator.comparison.wdl
match: <\=|>\=|\=\=|<|>|\!\=
- name: keyword.operator.assignment.augmented.wdl
match: \+\=|-\=|\*\=|/\=|//\=|%\=|&\=|\|\=|\^\=|>>\=|<<\=|\*\*\=
- name: keyword.operator.arithmetic.wdl
match: \+|\-|\*|\*\*|/|//|%|<<|>>|&|\||\^|~
- name: constant.language.wdl
match: \b(true|false)\b
- name: support.inout.wdl
comment: input output keywords
match: \b(input|output)\b
- include: '#builtin_types'
- include: '#comments'
- include: '#input_output'
- include: '#keywords'
- include: '#string_quoted_single'
- include: '#string_quoted_double'
repository:
builtin_types:
name: support.type.wdl
match: (?<!\.)\b(Array|Boolean|File|Float|Int|Map|Object|String|Uri)\b
comments:
patterns:
- name: comment.line.number-sign.wdl
match: (#).*$\n?
captures:
'1': {name: punctuation.definition.comment.wdl}
constant_placeholder:
name: constant.other.placeholder.wdl
match: (?i:%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])
escaped_char:
match: (\\x[0-9a-fA-F]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)
captures:
'1': {name: constant.character.escape.hex.wdl}
'2': {name: constant.character.escape.octal.wdl}
'3': {name: constant.character.escape.newline.wdl}
'4': {name: constant.character.escape.backlash.wdl}
'5': {name: constant.character.escape.double-quote.wdl}
'6': {name: constant.character.escape.single-quote.wdl}
'7': {name: constant.character.escape.bell.wdl}
'8': {name: constant.character.escape.backspace.wdl}
'9': {name: constant.character.escape.formfeed.wdl}
'10': {name: constant.character.escape.linefeed.wdl}
'11': {name: constant.character.escape.return.wdl}
'12': {name: constant.character.escape.tab.wdl}
'13': {name: constant.character.escape.vertical-tab.wdl}
escaped_unicode_char:
match: (\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z0-9\, ]+\})
captures:
'1': {name: constant.character.escape.unicode.16-bit-hex.wdl}
'2': {name: constant.character.escape.unicode.32-bit-hex.wdl}
'3': {name: constant.character.escape.unicode.name.wdl}
keywords:
patterns:
- name: keyword.other.wdl
match: \s*(call|command|output|task|workflow)\s+
string_quoted_double:
patterns:
- name: string.quoted.double.single-line.wdl
comment: double quoted string
begin: (")
beginCaptures:
'1': {name: punctuation.definition.string.begin.wdl}
end: (")
endCaptures:
'1': {name: punctuation.definition.string.end.wdl}
'2': {name: invalid.illegal.unclosed-string.wdl}
patterns:
- include: '#constant_placeholder'
- include: '#escaped_char'
string_quoted_single:
patterns:
- name: string.quoted.single.single-line.wdl
comment: single quoted string
begin: (')
beginCaptures:
'1': {name: punctuation.definition.string.begin.wdl}
end: (')
endCaptures:
'1': {name: punctuation.definition.string.end.wdl}
'2': {name: invalid.illegal.unclosed-string.wdl}
patterns:
- include: '#constant_placeholder'
- include: '#escaped_char'
author: Andrew Teixeira <teixeira@broadinstitute.org>