neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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