updated for version 7.0001
This commit is contained in:
229
runtime/syntax/btm.vim
Normal file
229
runtime/syntax/btm.vim
Normal file
@ -0,0 +1,229 @@
|
||||
" 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?
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif 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.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_btm_syntax_inits")
|
||||
if version < 508
|
||||
let did_btm_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink btmLabel Special
|
||||
HiLink btmLabelMark Special
|
||||
HiLink btmCmdDivider Special
|
||||
HiLink btmConditional btmStatement
|
||||
HiLink btmDotBoolOp btmStatement
|
||||
HiLink btmRepeat btmStatement
|
||||
HiLink btmEchoCommand btmStatement
|
||||
HiLink btmEchoParam btmStatement
|
||||
HiLink btmStatement Statement
|
||||
HiLink btmTodo Todo
|
||||
HiLink btmString String
|
||||
HiLink btmNumber Number
|
||||
HiLink btmComment Comment
|
||||
HiLink btmArgument Identifier
|
||||
HiLink btmVariable Identifier
|
||||
HiLink btmEcho String
|
||||
HiLink btmBIFMatch btmStatement
|
||||
HiLink btmBuiltInFunc btmStatement
|
||||
HiLink btmBuiltInVar btmStatement
|
||||
HiLink btmSpecialVar btmStatement
|
||||
HiLink btmCommand btmStatement
|
||||
|
||||
"optional highlighting
|
||||
"HiLink btmShowTab Error
|
||||
"HiLink btmShowTabc Error
|
||||
"hiLink btmIdentifier Identifier
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "btm"
|
||||
|
||||
" vim: ts=8
|
||||
Reference in New Issue
Block a user