timetracker/vim/syntax/timetracker.vim

122 lines
4.7 KiB
VimL

" Vim syntaxtax file
" Language: timetracker log
" Creator: Trey Blancher $(base64 -d <<< dGJsYW5jaGVyQHBpbmRyb3AuY29tCg==)
" Latest revision: 2023-04-19
if exists("b:current_syntax")
finish
endif
syntax keyword timetrackerCategories Cloud Call Delivery Internal On Prem PTO transparent contained
syntax keyword timetrackerStartStop Begin End
syntax keyword timetrackerStandardOps Clarizen timesheets Slack handling email triage macOS upgrades timetracker Keyboard Maestro All Hands scheduled meeting daily standup Prometheus Grafana
syntax keyword Customers Aetna
\ AIG
\ Alerus
\ Alliant
\ America
\ American
\ Ameriprise
\ Amerisource
\ Anthem
\ Associated
\ Athene
\ Banamex
\ Bandwidth
\ Bank
\ Bergen
\ BMO
\ Broadway
\ Canada
\ Capital
\ Citi
\ CitiBanamex
\ Citibanamex
\ Citizens
\ Comerica
\ Community
\ Colorado
\ Credit
\ CS
\ Digital
\ Empower
\ Equifax
\ ETRADE
\ Fargo
\ Federal
\ First
\ FNBO
\ FNBPA
\ Gen
\ GTE
\ Hancock
\ Hawaiian
\ Huntington
\ Jackson
\ John
\ KeyBank
\ Kohls
\ Life
\ Lock
\ Manulife
\ Mass
\ Montreal
\ Mutual
\ National
\ Nationwide
\ Navy
\ New
\ Norton
\ NYL
\ Of
\ of
\ One
\ PERA
\ PNC
\ Regions
\ Republic
\ Rowe
\ Royal
\ S3
\ South
\ State
\ Support
\ T[.]
\ The
\ the
\ TIAA
\ Union
\ United
\ US
\ Wells
\ West
\ York
\ Zions
syntax match timetrackerTimestamp /\d\{4}-\%(0[135789]-\%([0-2]\d\|3[01]\)\|\%(1[02]-\%([0-2]\d\|3[01]\)\)\|0[46]-\%([0-2]\d\|30\)\|11-\%([0-2]\d\|30\)\|02-[0-2]\d\) \%([01]\d\|2[0-3]\):\%([0-5]\d\)\%(:[0-5]\d\)\{2}/ contained
"syntax match ticket /\(#|CM-|PD-\)\d\+/
"syntax match timetrackerTimestampError /^\(\d\{4}-\d\{2}-\d\{2} \d\{2}:\d\{2}:\d\{2}\)\@!/ contained
syntax match timetrackerTask /.*/ contained
"syntax match timetrackerTimestampError /^\(\(\d\{4}-\d\{2}-\d\{2} \d\{2}:\d\{2}:\d\{2}\)\@!\)/ transparent contained
"syntax region errTimestamp matchgroup=timestamp start=/^\(\d\{4}-\(0\d\|1[0-2]\)-\d\{2} \d\{2}:\d\{2}:\d\{2}\)\@!/ end=/: / contains=timetrackerTimestamp
syntax region timestampGroup start=/^/ end=/: / contains=timetrackerTimestamp
syntax region errTimestamp matchgroup=timestamp start="^\%(\d\{4}-\%(0[135789]-\%([0-2]\d\|3[01]\)\|\%(1[02]-\%([0-2]\d\|3[01]\)\)\|0[46]-\%([0-2]\d\|30\)\|11-\%([0-2]\d\|30\)\|02-[0-2]\d\) \%([01]\d\|2[0-3]\)\%(:[0-5]\d\)\{2}\)\@!" end=": "
syntax region category start=/\[/ end=/\]/ contains=timetrackerCategories
syntax region ticket start=/\(#\|CM-\|PD-\)\d\{-1}/ end=/\d /
"syntax region item matchgroup=task start=/\]\s[\k ]\+/ end=/$/ contains=ticket
let b:current_syntaxtax = "timetracker"
highlight default link errTimestamp Error
highlight default link timestamp String
highlight default link timestampGroup String
highlight default link timetrackerStartStop Statement
highlight default link category Type
highlight default link ticket Constant
highlight default link Customers Identifier
highlight default link timetrackerStandardOps Constant