|
|
|
" Vim Fast Log Entry syntax file
|
|
|
|
" Language: Fast Log Entry
|
|
|
|
" Maintainer: Michael Clemens
|
|
|
|
" Latest Revision: 2023/10/24
|
|
|
|
|
|
|
|
if exists("b:current_syntax")
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
|
|
|
" makes all matches/keywords case insensitive
|
|
|
|
syntax case ignore
|
|
|
|
|
|
|
|
" matches on a date string with a preceeding "date". Example: "date 2022-10-31"
|
|
|
|
syn match fle_date /^\s*date \d\{4}-\d\{2}-\d\{2}/
|
|
|
|
" matches on a 2 (MM) or 4 (HHMM) digit time string. Example: "1403" or "03"
|
|
|
|
syn match fle_time /\(^\s*\)\@<=\(\d\{4}\|\d\{1,2}\)\($\|\s\)/
|
|
|
|
" matches on a frequency. Must include a ".". Example: 7.123
|
|
|
|
syn match fle_freq /\d\{1,3}\.\d\{3}/
|
|
|
|
" matches on call signs including prefixes and suffixes. Example: F/DK1MI/P
|
|
|
|
syn match fle_call /\(\S*\/\)*[a-zA-Z0-9]\{1,3}[0-9][a-zA-Z0-9]\{0,3}[a-zA-Z]\(\/\S*\)*/
|
|
|
|
" matches on words beginning with "#". Used for locators. Example: #JN49
|
|
|
|
syn match fle_loc /#\(\S\+\)/
|
|
|
|
" matches on words beginning with "@". Used for operator names. Example: @Mike
|
|
|
|
syn match fle_name /@\(\S\+\)/
|
|
|
|
" matches on SOTA references. Example: w6/ct-226
|
|
|
|
syn match fle_sota /\<[a-zA-Z0-9]\{2,3}\/[a-zA-Z0-9]\{2}-[0-9]\{3}\>/
|
|
|
|
" matches on POTA references. Example: DA-1234
|
|
|
|
syn match fle_pota /\<[a-zA-Z]\{1,2}-[0-9]\{4}\>/
|
|
|
|
|
|
|
|
" all supported operating modes
|
|
|
|
syn keyword fle_mode CW SSB AM FM RTTY FT8 PSK JT65 JT9 FT4 JS8
|
|
|
|
syn keyword fle_mode ARDOP ATV C4FM CHIP CLO CONTESTI DIGITALVOICE DOMINO DSTAR
|
|
|
|
syn keyword fle_mode FAX FSK441 HELL ISCAT JT4 JT6M JT44 MFSK MSK144
|
|
|
|
syn keyword fle_mode MT63 OLIVIA OPERA PAC PAX PKT PSK2K Q15 QRA64
|
|
|
|
syn keyword fle_mode ROS RTTYM SSTV T10 THOR THRB TOR V4 VOI
|
|
|
|
syn keyword fle_mode WINMOR WSPR
|
|
|
|
|
|
|
|
" header keywords for the resulting ADIF file header
|
|
|
|
syn keyword fle_header mycall mygrid operator qslmsg
|
|
|
|
syn keyword fle_header mywwff mysota mypota nickname
|
|
|
|
|
|
|
|
" all supportted bands
|
|
|
|
syn keyword fle_band 2190m 630m 560m 160m 80m 60m 40m 30m
|
|
|
|
syn keyword fle_band 20m 17m 15m 12m 10m 6m 4m 2m 1.25m
|
|
|
|
syn keyword fle_band 70cm 33cm 23cm 13cm 9cm 6cm 3cm 1.25cm
|
|
|
|
syn keyword fle_band 6mm 4mm 2.5mm 2mm 1mm
|
|
|
|
|
|
|
|
" other words that need to be highlighted
|
|
|
|
syn keyword fle_other day
|
|
|
|
|
|
|
|
" mapping of above matches/keywords to colors
|
|
|
|
" customize to your liking
|
|
|
|
hi def fle_call ctermfg=blue
|
|
|
|
hi def fle_date ctermfg=blue
|
|
|
|
hi def fle_other ctermfg=blue
|
|
|
|
hi def fle_time ctermfg=green
|
|
|
|
hi def fle_loc ctermfg=green
|
|
|
|
hi def fle_name ctermfg=cyan
|
|
|
|
hi def fle_header ctermfg=red
|
|
|
|
hi def fle_freq ctermfg=red
|
|
|
|
hi def fle_mode ctermfg=red
|
|
|
|
hi def fle_band ctermfg=red
|
|
|
|
hi def fle_sota ctermfg=yellow
|
|
|
|
hi def fle_pota ctermfg=yellow
|
|
|
|
|
|
|
|
let b:current_syntax = "fle"
|