name: Remind fileTypes:
-
defs.rem
-
REM*.txt
-
.reminders
firstLineMatch: ^REM* scopeName: source.remind repository:
message: endCaptures: "0": name: keyword.control.endline.commandline.remind begin: \b(?i:MSG|MSF|RUN|CAL|SPECIAL|PS|PSFILE)\b\s* beginCaptures: "0": name: keyword.control.message.commandline.remind end: (%?[ \t]*)(?=\n|\z) patterns: - include: "#message-body" trigger: patterns: - name: meta.attime.trigger.remind captures: "1": name: keyword.other.attime.trigger.remind "2": name: constant.other.time.trigger.remind "3": name: variable.other.component.trigger.remind "4": name: variable.other.comp.trigger.remind match: \b(?i:(AT))\s+(\d{1,2}[:.]\d{2})(?:\s+(\+{1,2}\d+))?(?:\s+(\*\d+))?(?=\s) - name: meta.duration.trigger.remind captures: "1": name: keyword.other.duration.trigger.remind "2": name: constant.other.time.trigger.remind match: \b(?i:(DURATION))\s+(\d{1,2}[:.]\d{2})(?=\s) - name: keyword.control.command.trigger.remind match: \b(?i:OMIT)\b - name: keyword.control.move-reminder.trigger.remind match: \b(?i:ONCE|SKIP|BEFORE|AFTER)\b - name: variable.other.component.delta.trigger.remind captures: "1": name: punctuation.definition.variable.remind match: (\+{1,2})\d+ - name: variable.other.component.back.trigger.remind captures: "1": name: punctuation.definition.variable.remind match: (\-{1,2})\d+ - name: variable.other.component.repeat.trigger.remind captures: "1": name: punctuation.definition.variable.remind match: (\*)\d+ - include: "#date-item" expression: patterns: - captures: "0": name: punctuation.section.scope.remind begin: \( end: \) patterns: - include: "#expression" - name: keyword.operator.remind match: -|\*|/|%|\+|-|[!<>=]=?|&&|\|\| - name: string.quoted.double.remind endCaptures: "0": name: punctuation.definition.string.end.remind begin: "\"" beginCaptures: "0": name: punctuation.definition.string.begin.remind end: "\"" patterns: - name: constant.character.escape.remind match: \\. - name: constant.other.date.remind match: "'\\d{4}([\\-/])\\d{1,2}\\1\\d{1,2}'" - name: constant.other.time.remind match: \d{1,2}[:.]\d{2} - name: constant.numeric.integer.remind match: \d+ - name: variable.language.system.remind match: \$(?:CalcUTC|CalMode|Daemon|DefaultPrio|DontFork|DontTrigAts|DontQueue|EndSent|EndSentIg|FirstIndent|FoldYear|FormWidth|HushMode|IgnoreOnce|InfDelta|LatDeg|LatMin|LatSec|Location|LongDeg|LongMin|LongSec|MaxSatIter|MinsFromUTC|NextMode|NumQueued|NumTrig|PrefixLineNo|PSCal|RunOff|SimpleCal|SortByDate|SortByPrio|SortByTime|SubsIndent)\b - name: meta.function.builtin.remind captures: "0": name: support.function.builtin.remind begin: \b(?:abs|access|args|asc|baseyr|char|choose|coerce|date|dawn|day|daysinmon|defined|dosubst|dusk|easterdate|filedate|filedir|filename|getenv|hour|iif|index|isdst|isleap|isomitted|hebdate|hebday|hebmon|hebyear|language|lower|max|min|minsfromutc|minute|min|monnum|moondate|moontime|moonphase|now|ord|ostype|plural|psmoon|psshade|realnow|realtoday|sgn|shell|strlen|substr|sunrise|sunset|time|today|trigdate|trigger|trigtime|trigvalid|typeof|upper|value|version|wkday|wkdaynum|year)\( end: \) patterns: - include: "#expression" - name: meta.function.user.remind endCaptures: "1": name: punctuation.definition.arguments.remind begin: \b(\w+)(\() beginCaptures: "1": name: entity.name.function.remind "2": name: punctuation.definition.arguments.remind end: (\)) patterns: - include: "#expression" - name: variable.parameter.user.remind match: \b\w+\b date-item: patterns: - name: support.constant.month.dateitem.remind match: \b(?i:January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)\b - name: support.constant.weekday.dateitem.remind match: \b(?i:Monday|Mon|Tuesday|Tue|Wednesday|Wed|Thursday|Thu|Friday|Fri|Saturday|Sat|Sunday|Sun)\b - name: support.constant.day.dateitem.remind match: \b(?:\d{1,2})\b - name: support.constant.year.dateitem.remind match: \b(?:\d{4})\b message-body: patterns: - name: constant.other.placeholder.remind captures: "1": name: punctuation.definition.constant.remind match: (%)[a-zA-Z0-9_!@#] - name: string.quoted.double.remind endCaptures: "0": name: punctuation.definition.string.end.remind begin: "%\"" beginCaptures: "0": name: punctuation.definition.string.begin.remind end: "%\"" - include: "#bracketed-expression" bracketed-expression: captures: "0": name: punctuation.section.scope.remind begin: \[ end: \] patterns: - include: "#expression"
uuid: 8D255A1E-9CBC-4B22-8AAD-F8536C276727 patterns:
-
name: comment.line.number-sign.remind captures:
"1": name: punctuation.definition.comment.remind
match: “[ ]*(#).*\n?”
-
name: comment.line.semicolon.remind captures:
"1": name: punctuation.definition.comment.remind
match: “[ ]*(;).*\n?”
-
name: meta.single.command.remind captures:
"0": name: keyword.control.single.command.remind
match: b(?i:(?:RUNs+(ON|OFF))|(PUSH|CLEAR|POP)-OMIT-CONTEXT)b
-
name: meta.setline.remind begin: b(?i:(SET))s+($?w+)s+ beginCaptures:
"1": name: keyword.control.set.setline.remind "2": name: variable.other.setline.remind
end: (?=#|n|z) patterns:
-
include: “#expression”
-
-
name: meta.fsetline.remind begin: b(?i:(FSET))s+(w+(())(w+)?(?:,(w+))*()) beginCaptures:
"6": name: punctuation.definition.arguments.remind "1": name: keyword.control.fset.fsetline.remind "2": name: entity.name.function.fsetline.remind "3": name: punctuation.definition.arguments.remind "4": name: variable.parameter.fsetline.remind "5": name: variable.parameter.fsetline.remind
end: (?=#|n|z) patterns:
-
include: “#expression”
-
-
name: meta.unsetline.remind begin: b(?i:(UNSET))b beginCaptures:
"1": name: keyword.control.set.unsetline.remind
end: (?=#|n|z) patterns:
-
name: variable.other.unsetline.remind match: bw+b
-
-
name: meta.if.remind captures:
"1": name: keyword.control.if.remind
begin: b(?i:(IF))b end: (?=#|n|z) patterns:
-
include: “#expression”
-
-
name: meta.iftrig.remind captures:
"1": name: keyword.control.iftrig.remind
begin: b(?i:(IFTRIG))b end: (?=#|n|z) patterns:
-
include: “#trigger”
-
-
name: keyword.control.else-or-endif.remind match: b(?i:(ELSE|ENDIF))s*(?=#|n|z)
-
name: meta.includeline.remind begin: b(?i:INCLUDE)b beginCaptures:
"0": name: keyword.control.include.commandline.remind
end: (?=#|n|z)
-
name: meta.commandline.remind endCaptures:
"0": name: keyword.control.endline.commandline.remind
begin: b(?i:REM|OMIT|BANNER)b beginCaptures:
"0": name: keyword.control.command.commandline.remind
end: (%?[ t]*)(?=(#|n|z)) patterns:
-
name: keyword.control.expiry.commandline.remind match: b(?i:SCHED|WARN|SCANFROM|SCAN|UNTIL)b
-
name: meta.satisfy.remind begin: b(?i:SATISFY)b beginCaptures:
"0": name: keyword.control.satisfy.commandline.remind
end: (?=(#|n|z)) patterns:
-
include: “#expression”
-
-
include: “#trigger”
-
include: “#message-body”
-
include: “#bracketed-expression”
-
include: “#message”
-
-
include: “#bracketed-expression”
-
include: “#message”