123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- " Vim syntax file
- " Language: 4Dos batch file
- " Maintainer: John Leo Spetz <jls11@po.cwru.edu>
- " Last Change: 2001 May 09
- "//Issues to resolve:
- "//- Boolean operators surrounded by period are recognized but the
- "// periods are not highlighted. The only way to do that would
- "// be separate synmatches for each possibility otherwise a more
- "// general \.\i\+\. will highlight anything delimited by dots.
- "//- After unary operators like "defined" can assume token type.
- "// Should there be more of these?
- " quit when a syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
- syn case ignore
- syn keyword btmStatement call off
- syn keyword btmConditional if iff endiff then else elseiff not errorlevel
- syn keyword btmConditional gt lt eq ne ge le
- syn match btmConditional transparent "\.\i\+\." contains=btmDotBoolOp
- syn keyword btmDotBoolOp contained and or xor
- syn match btmConditional "=="
- syn match btmConditional "!="
- syn keyword btmConditional defined errorlevel exist isalias
- syn keyword btmConditional isdir direxist isinternal islabel
- syn keyword btmRepeat for in do enddo
- syn keyword btmTodo contained TODO
- " String
- syn cluster btmVars contains=btmVariable,btmArgument,btmBIFMatch
- syn region btmString start=+"+ end=+"+ contains=@btmVars
- syn match btmNumber "\<\d\+\>"
- "syn match btmIdentifier "\<\h\w*\>"
- " If you don't like tabs
- "syn match btmShowTab "\t"
- "syn match btmShowTabc "\t"
- "syn match btmComment "^\ *rem.*$" contains=btmTodo,btmShowTabc
- " Some people use this as a comment line
- " In fact this is a Label
- "syn match btmComment "^\ *:\ \+.*$" contains=btmTodo
- syn match btmComment "^\ *rem.*$" contains=btmTodo
- syn match btmComment "^\ *::.*$" contains=btmTodo
- syn match btmLabelMark "^\ *:[0-9a-zA-Z_\-]\+\>"
- syn match btmLabelMark "goto [0-9a-zA-Z_\-]\+\>"lc=5
- syn match btmLabelMark "gosub [0-9a-zA-Z_\-]\+\>"lc=6
- " syn match btmCmdDivider ">[>&][>&]\="
- syn match btmCmdDivider ">[>&]*"
- syn match btmCmdDivider ">>&>"
- syn match btmCmdDivider "|&\="
- syn match btmCmdDivider "%+"
- syn match btmCmdDivider "\^"
- syn region btmEcho start="echo" skip="echo" matchgroup=btmCmdDivider end="%+" end="$" end="|&\=" end="\^" end=">[>&]*" contains=@btmEchos oneline
- syn cluster btmEchos contains=@btmVars,btmEchoCommand,btmEchoParam
- syn keyword btmEchoCommand contained echo echoerr echos echoserr
- syn keyword btmEchoParam contained on off
- " this is also a valid Label. I don't use it.
- "syn match btmLabelMark "^\ *:\ \+[0-9a-zA-Z_\-]\+\>"
- " //Environment variable can be expanded using notation %var in 4DOS
- syn match btmVariable "%[0-9a-z_\-]\+" contains=@btmSpecialVars
- " //Environment variable can be expanded using notation %var%
- syn match btmVariable "%[0-9a-z_\-]*%" contains=@btmSpecialVars
- " //The following are special variable in 4DOS
- syn match btmVariable "%[=#]" contains=@btmSpecialVars
- syn match btmVariable "%??\=" contains=@btmSpecialVars
- " //Environment variable can be expanded using notation %[var] in 4DOS
- syn match btmVariable "%\[[0-9a-z_\-]*\]"
- " //After some keywords next word should be an environment variable
- syn match btmVariable "defined\s\i\+"lc=8
- syn match btmVariable "set\s\i\+"lc=4
- " //Parameters to batchfiles take the format %<digit>
- syn match btmArgument "%\d\>"
- " //4DOS allows format %<digit>& meaning batchfile parameters digit and up
- syn match btmArgument "%\d\>&"
- " //Variable used by FOR loops sometimes use %%<letter> in batchfiles
- syn match btmArgument "%%\a\>"
- " //Show 4DOS built-in functions specially
- syn match btmBIFMatch "%@\w\+\["he=e-1 contains=btmBuiltInFunc
- syn keyword btmBuiltInFunc contained alias ascii attrib cdrom
- syn keyword btmBuiltInFunc contained char clip comma convert
- syn keyword btmBuiltInFunc contained date day dec descript
- syn keyword btmBuiltInFunc contained device diskfree disktotal
- syn keyword btmBuiltInFunc contained diskused dosmem dow dowi
- syn keyword btmBuiltInFunc contained doy ems eval exec execstr
- syn keyword btmBuiltInFunc contained expand ext extended
- syn keyword btmBuiltInFunc contained fileage fileclose filedate
- syn keyword btmBuiltInFunc contained filename fileopen fileread
- syn keyword btmBuiltInFunc contained files fileseek fileseekl
- syn keyword btmBuiltInFunc contained filesize filetime filewrite
- syn keyword btmBuiltInFunc contained filewriteb findclose
- syn keyword btmBuiltInFunc contained findfirst findnext format
- syn keyword btmBuiltInFunc contained full if inc index insert
- syn keyword btmBuiltInFunc contained instr int label left len
- syn keyword btmBuiltInFunc contained lfn line lines lower lpt
- syn keyword btmBuiltInFunc contained makeage makedate maketime
- syn keyword btmBuiltInFunc contained master month name numeric
- syn keyword btmBuiltInFunc contained path random readscr ready
- syn keyword btmBuiltInFunc contained remote removable repeat
- syn keyword btmBuiltInFunc contained replace right search
- syn keyword btmBuiltInFunc contained select sfn strip substr
- syn keyword btmBuiltInFunc contained time timer trim truename
- syn keyword btmBuiltInFunc contained unique upper wild word
- syn keyword btmBuiltInFunc contained words xms year
- syn cluster btmSpecialVars contains=btmBuiltInVar,btmSpecialVar
- " //Show specialized variables specially
- " syn match btmSpecialVar contained "+"
- syn match btmSpecialVar contained "="
- syn match btmSpecialVar contained "#"
- syn match btmSpecialVar contained "??\="
- syn keyword btmSpecialVar contained cmdline colordir comspec
- syn keyword btmSpecialVar contained copycmd dircmd temp temp4dos
- syn keyword btmSpecialVar contained filecompletion path prompt
- " //Show 4DOS built-in variables specially specially
- syn keyword btmBuiltInVar contained _4ver _alias _ansi
- syn keyword btmBuiltInVar contained _apbatt _aplife _apmac _batch
- syn keyword btmBuiltInVar contained _batchline _batchname _bg
- syn keyword btmBuiltInVar contained _boot _ci _cmdproc _co
- syn keyword btmBuiltInVar contained _codepage _column _columns
- syn keyword btmBuiltInVar contained _country _cpu _cwd _cwds _cwp
- syn keyword btmBuiltInVar contained _cwps _date _day _disk _dname
- syn keyword btmBuiltInVar contained _dos _dosver _dow _dowi _doy
- syn keyword btmBuiltInVar contained _dpmi _dv _env _fg _hlogfile
- syn keyword btmBuiltInVar contained _hour _kbhit _kstack _lastdisk
- syn keyword btmBuiltInVar contained _logfile _minute _monitor
- syn keyword btmBuiltInVar contained _month _mouse _ndp _row _rows
- syn keyword btmBuiltInVar contained _second _shell _swapping
- syn keyword btmBuiltInVar contained _syserr _time _transient
- syn keyword btmBuiltInVar contained _video _win _wintitle _year
- " //Commands in 4DOS and/or DOS
- syn match btmCommand "\s?"
- syn match btmCommand "^?"
- syn keyword btmCommand alias append assign attrib
- syn keyword btmCommand backup beep break cancel case
- syn keyword btmCommand cd cdd cdpath chcp chdir
- syn keyword btmCommand chkdsk cls color comp copy
- syn keyword btmCommand ctty date debug default defrag
- syn keyword btmCommand del delay describe dir
- syn keyword btmCommand dirhistory dirs diskcomp
- syn keyword btmCommand diskcopy doskey dosshell
- syn keyword btmCommand drawbox drawhline drawvline
- "syn keyword btmCommand echo echoerr echos echoserr
- syn keyword btmCommand edit edlin emm386 endlocal
- syn keyword btmCommand endswitch erase eset except
- syn keyword btmCommand exe2bin exit expand fastopen
- syn keyword btmCommand fc fdisk ffind find format
- syn keyword btmCommand free global gosub goto
- syn keyword btmCommand graftabl graphics help history
- syn keyword btmCommand inkey input join keyb keybd
- syn keyword btmCommand keystack label lh list loadbtm
- syn keyword btmCommand loadhigh lock log md mem
- syn keyword btmCommand memory mirror mkdir mode more
- syn keyword btmCommand move nlsfunc on option path
- syn keyword btmCommand pause popd print prompt pushd
- syn keyword btmCommand quit rd reboot recover ren
- syn keyword btmCommand rename replace restore return
- syn keyword btmCommand rmdir scandisk screen scrput
- syn keyword btmCommand select set setdos setlocal
- syn keyword btmCommand setver share shift sort subst
- syn keyword btmCommand swapping switch sys tee text
- syn keyword btmCommand time timer touch tree truename
- syn keyword btmCommand type unalias undelete unformat
- syn keyword btmCommand unlock unset ver verify vol
- syn keyword btmCommand vscrput y
- " Define the default highlighting.
- " Only when an item doesn't have highlighting yet
- hi def link btmLabel Special
- hi def link btmLabelMark Special
- hi def link btmCmdDivider Special
- hi def link btmConditional btmStatement
- hi def link btmDotBoolOp btmStatement
- hi def link btmRepeat btmStatement
- hi def link btmEchoCommand btmStatement
- hi def link btmEchoParam btmStatement
- hi def link btmStatement Statement
- hi def link btmTodo Todo
- hi def link btmString String
- hi def link btmNumber Number
- hi def link btmComment Comment
- hi def link btmArgument Identifier
- hi def link btmVariable Identifier
- hi def link btmEcho String
- hi def link btmBIFMatch btmStatement
- hi def link btmBuiltInFunc btmStatement
- hi def link btmBuiltInVar btmStatement
- hi def link btmSpecialVar btmStatement
- hi def link btmCommand btmStatement
- "optional highlighting
- "hi def link btmShowTab Error
- "hi def link btmShowTabc Error
- "hi def link btmIdentifier Identifier
- let b:current_syntax = "btm"
- " vim: ts=8
|