btm.vim (9285B)
1 " Vim syntax file 2 " Language: 4Dos batch file 3 " Maintainer: John Leo Spetz <jls11@po.cwru.edu> 4 " Last Change: 2001 May 09 5 6 "//Issues to resolve: 7 "//- Boolean operators surrounded by period are recognized but the 8 "// periods are not highlighted. The only way to do that would 9 "// be separate synmatches for each possibility otherwise a more 10 "// general \.\i\+\. will highlight anything delimited by dots. 11 "//- After unary operators like "defined" can assume token type. 12 "// Should there be more of these? 13 14 " quit when a syntax file was already loaded 15 if exists("b:current_syntax") 16 finish 17 endif 18 19 syn case ignore 20 21 syn keyword btmStatement call off 22 syn keyword btmConditional if iff endiff then else elseiff not errorlevel 23 syn keyword btmConditional gt lt eq ne ge le 24 syn match btmConditional transparent "\.\i\+\." contains=btmDotBoolOp 25 syn keyword btmDotBoolOp contained and or xor 26 syn match btmConditional "==" 27 syn match btmConditional "!=" 28 syn keyword btmConditional defined errorlevel exist isalias 29 syn keyword btmConditional isdir direxist isinternal islabel 30 syn keyword btmRepeat for in do enddo 31 32 syn keyword btmTodo contained TODO 33 34 " String 35 syn cluster btmVars contains=btmVariable,btmArgument,btmBIFMatch 36 syn region btmString start=+"+ end=+"+ contains=@btmVars 37 syn match btmNumber "\<\d\+\>" 38 39 "syn match btmIdentifier "\<\h\w*\>" 40 41 " If you don't like tabs 42 "syn match btmShowTab "\t" 43 "syn match btmShowTabc "\t" 44 "syn match btmComment "^\ *rem.*$" contains=btmTodo,btmShowTabc 45 46 " Some people use this as a comment line 47 " In fact this is a Label 48 "syn match btmComment "^\ *:\ \+.*$" contains=btmTodo 49 50 syn match btmComment "^\ *rem.*$" contains=btmTodo 51 syn match btmComment "^\ *::.*$" contains=btmTodo 52 53 syn match btmLabelMark "^\ *:[0-9a-zA-Z_\-]\+\>" 54 syn match btmLabelMark "goto [0-9a-zA-Z_\-]\+\>"lc=5 55 syn match btmLabelMark "gosub [0-9a-zA-Z_\-]\+\>"lc=6 56 57 " syn match btmCmdDivider ">[>&][>&]\=" 58 syn match btmCmdDivider ">[>&]*" 59 syn match btmCmdDivider ">>&>" 60 syn match btmCmdDivider "|&\=" 61 syn match btmCmdDivider "%+" 62 syn match btmCmdDivider "\^" 63 64 syn region btmEcho start="echo" skip="echo" matchgroup=btmCmdDivider end="%+" end="$" end="|&\=" end="\^" end=">[>&]*" contains=@btmEchos oneline 65 syn cluster btmEchos contains=@btmVars,btmEchoCommand,btmEchoParam 66 syn keyword btmEchoCommand contained echo echoerr echos echoserr 67 syn keyword btmEchoParam contained on off 68 69 " this is also a valid Label. I don't use it. 70 "syn match btmLabelMark "^\ *:\ \+[0-9a-zA-Z_\-]\+\>" 71 72 " //Environment variable can be expanded using notation %var in 4DOS 73 syn match btmVariable "%[0-9a-z_\-]\+" contains=@btmSpecialVars 74 " //Environment variable can be expanded using notation %var% 75 syn match btmVariable "%[0-9a-z_\-]*%" contains=@btmSpecialVars 76 " //The following are special variable in 4DOS 77 syn match btmVariable "%[=#]" contains=@btmSpecialVars 78 syn match btmVariable "%??\=" contains=@btmSpecialVars 79 " //Environment variable can be expanded using notation %[var] in 4DOS 80 syn match btmVariable "%\[[0-9a-z_\-]*\]" 81 " //After some keywords next word should be an environment variable 82 syn match btmVariable "defined\s\i\+"lc=8 83 syn match btmVariable "set\s\i\+"lc=4 84 " //Parameters to batchfiles take the format %<digit> 85 syn match btmArgument "%\d\>" 86 " //4DOS allows format %<digit>& meaning batchfile parameters digit and up 87 syn match btmArgument "%\d\>&" 88 " //Variable used by FOR loops sometimes use %%<letter> in batchfiles 89 syn match btmArgument "%%\a\>" 90 91 " //Show 4DOS built-in functions specially 92 syn match btmBIFMatch "%@\w\+\["he=e-1 contains=btmBuiltInFunc 93 syn keyword btmBuiltInFunc contained alias ascii attrib cdrom 94 syn keyword btmBuiltInFunc contained char clip comma convert 95 syn keyword btmBuiltInFunc contained date day dec descript 96 syn keyword btmBuiltInFunc contained device diskfree disktotal 97 syn keyword btmBuiltInFunc contained diskused dosmem dow dowi 98 syn keyword btmBuiltInFunc contained doy ems eval exec execstr 99 syn keyword btmBuiltInFunc contained expand ext extended 100 syn keyword btmBuiltInFunc contained fileage fileclose filedate 101 syn keyword btmBuiltInFunc contained filename fileopen fileread 102 syn keyword btmBuiltInFunc contained files fileseek fileseekl 103 syn keyword btmBuiltInFunc contained filesize filetime filewrite 104 syn keyword btmBuiltInFunc contained filewriteb findclose 105 syn keyword btmBuiltInFunc contained findfirst findnext format 106 syn keyword btmBuiltInFunc contained full if inc index insert 107 syn keyword btmBuiltInFunc contained instr int label left len 108 syn keyword btmBuiltInFunc contained lfn line lines lower lpt 109 syn keyword btmBuiltInFunc contained makeage makedate maketime 110 syn keyword btmBuiltInFunc contained master month name numeric 111 syn keyword btmBuiltInFunc contained path random readscr ready 112 syn keyword btmBuiltInFunc contained remote removable repeat 113 syn keyword btmBuiltInFunc contained replace right search 114 syn keyword btmBuiltInFunc contained select sfn strip substr 115 syn keyword btmBuiltInFunc contained time timer trim truename 116 syn keyword btmBuiltInFunc contained unique upper wild word 117 syn keyword btmBuiltInFunc contained words xms year 118 119 syn cluster btmSpecialVars contains=btmBuiltInVar,btmSpecialVar 120 121 " //Show specialized variables specially 122 " syn match btmSpecialVar contained "+" 123 syn match btmSpecialVar contained "=" 124 syn match btmSpecialVar contained "#" 125 syn match btmSpecialVar contained "??\=" 126 syn keyword btmSpecialVar contained cmdline colordir comspec 127 syn keyword btmSpecialVar contained copycmd dircmd temp temp4dos 128 syn keyword btmSpecialVar contained filecompletion path prompt 129 130 " //Show 4DOS built-in variables specially specially 131 syn keyword btmBuiltInVar contained _4ver _alias _ansi 132 syn keyword btmBuiltInVar contained _apbatt _aplife _apmac _batch 133 syn keyword btmBuiltInVar contained _batchline _batchname _bg 134 syn keyword btmBuiltInVar contained _boot _ci _cmdproc _co 135 syn keyword btmBuiltInVar contained _codepage _column _columns 136 syn keyword btmBuiltInVar contained _country _cpu _cwd _cwds _cwp 137 syn keyword btmBuiltInVar contained _cwps _date _day _disk _dname 138 syn keyword btmBuiltInVar contained _dos _dosver _dow _dowi _doy 139 syn keyword btmBuiltInVar contained _dpmi _dv _env _fg _hlogfile 140 syn keyword btmBuiltInVar contained _hour _kbhit _kstack _lastdisk 141 syn keyword btmBuiltInVar contained _logfile _minute _monitor 142 syn keyword btmBuiltInVar contained _month _mouse _ndp _row _rows 143 syn keyword btmBuiltInVar contained _second _shell _swapping 144 syn keyword btmBuiltInVar contained _syserr _time _transient 145 syn keyword btmBuiltInVar contained _video _win _wintitle _year 146 147 " //Commands in 4DOS and/or DOS 148 syn match btmCommand "\s?" 149 syn match btmCommand "^?" 150 syn keyword btmCommand alias append assign attrib 151 syn keyword btmCommand backup beep break cancel case 152 syn keyword btmCommand cd cdd cdpath chcp chdir 153 syn keyword btmCommand chkdsk cls color comp copy 154 syn keyword btmCommand ctty date debug default defrag 155 syn keyword btmCommand del delay describe dir 156 syn keyword btmCommand dirhistory dirs diskcomp 157 syn keyword btmCommand diskcopy doskey dosshell 158 syn keyword btmCommand drawbox drawhline drawvline 159 "syn keyword btmCommand echo echoerr echos echoserr 160 syn keyword btmCommand edit edlin emm386 endlocal 161 syn keyword btmCommand endswitch erase eset except 162 syn keyword btmCommand exe2bin exit expand fastopen 163 syn keyword btmCommand fc fdisk ffind find format 164 syn keyword btmCommand free global gosub goto 165 syn keyword btmCommand graftabl graphics help history 166 syn keyword btmCommand inkey input join keyb keybd 167 syn keyword btmCommand keystack label lh list loadbtm 168 syn keyword btmCommand loadhigh lock log md mem 169 syn keyword btmCommand memory mirror mkdir mode more 170 syn keyword btmCommand move nlsfunc on option path 171 syn keyword btmCommand pause popd print prompt pushd 172 syn keyword btmCommand quit rd reboot recover ren 173 syn keyword btmCommand rename replace restore return 174 syn keyword btmCommand rmdir scandisk screen scrput 175 syn keyword btmCommand select set setdos setlocal 176 syn keyword btmCommand setver share shift sort subst 177 syn keyword btmCommand swapping switch sys tee text 178 syn keyword btmCommand time timer touch tree truename 179 syn keyword btmCommand type unalias undelete unformat 180 syn keyword btmCommand unlock unset ver verify vol 181 syn keyword btmCommand vscrput y 182 183 " Define the default highlighting. 184 " Only when an item doesn't have highlighting yet 185 186 hi def link btmLabel Special 187 hi def link btmLabelMark Special 188 hi def link btmCmdDivider Special 189 hi def link btmConditional btmStatement 190 hi def link btmDotBoolOp btmStatement 191 hi def link btmRepeat btmStatement 192 hi def link btmEchoCommand btmStatement 193 hi def link btmEchoParam btmStatement 194 hi def link btmStatement Statement 195 hi def link btmTodo Todo 196 hi def link btmString String 197 hi def link btmNumber Number 198 hi def link btmComment Comment 199 hi def link btmArgument Identifier 200 hi def link btmVariable Identifier 201 hi def link btmEcho String 202 hi def link btmBIFMatch btmStatement 203 hi def link btmBuiltInFunc btmStatement 204 hi def link btmBuiltInVar btmStatement 205 hi def link btmSpecialVar btmStatement 206 hi def link btmCommand btmStatement 207 208 "optional highlighting 209 "hi def link btmShowTab Error 210 "hi def link btmShowTabc Error 211 "hi def link btmIdentifier Identifier 212 213 214 let b:current_syntax = "btm" 215 216 " vim: ts=8