neovim

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

dcl.vim (6067B)


      1 " Vim syntax file
      2 " Language:	DCL (Digital Command Language - vms)
      3 " Maintainer:	This runtime file is looking for a new maintainer.
      4 " Former Maintainer: Charles E. Campbell
      5 " Last Change:	Mar 26, 2019
      6 " Version:	13
      7 " Former URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
      8 
      9 " quit when a syntax file was already loaded
     10 if exists("b:current_syntax")
     11  finish
     12 endif
     13 
     14 if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
     15 syn iskeyword $,@,48-57,_
     16 else
     17 setlocal iskeyword=$,@,48-57,_
     18 endif
     19 
     20 syn case ignore
     21 syn keyword dclInstr	accounting	del[ete]	gen[cat]	mou[nt]	run
     22 syn keyword dclInstr	all[ocate]	dep[osit]	gen[eral]	ncp	run[off]
     23 syn keyword dclInstr	ana[lyze]	dia[gnose]	gos[ub]	ncs	sca
     24 syn keyword dclInstr	app[end]	dif[ferences]	got[o]	on	sea[rch]
     25 syn keyword dclInstr	ass[ign]	dir[ectory]	hel[p]	ope[n]	set
     26 syn keyword dclInstr	att[ach]	dis[able]	ico[nv]	pas[cal]	sho[w]
     27 syn keyword dclInstr	aut[horize]	dis[connect]	if	pas[sword]	sor[t]
     28 syn keyword dclInstr	aut[ogen]	dis[mount]	ini[tialize]	pat[ch]	spa[wn]
     29 syn keyword dclInstr	bac[kup]	dpm[l]	inq[uire]	pca	sta[rt]
     30 syn keyword dclInstr	cal[l]	dqs	ins[tall]	pho[ne]	sto[p]
     31 syn keyword dclInstr	can[cel]	dsr	job	pri[nt]	sub[mit]
     32 syn keyword dclInstr	cc	dst[graph]	lat[cp]	pro[duct]	sub[routine]
     33 syn keyword dclInstr	clo[se]	dtm	lib[rary]	psw[rap]	swx[cr]
     34 syn keyword dclInstr	cms	dum[p]	lic[ense]	pur[ge]	syn[chronize]
     35 syn keyword dclInstr	con[nect]	edi[t]	lin[k]	qde[lete]	sys[gen]
     36 syn keyword dclInstr	con[tinue]	ena[ble]	lmc[p]	qse[t]	sys[man]
     37 syn keyword dclInstr	con[vert]	end[subroutine]	loc[ale]	qsh[ow]	tff
     38 syn keyword dclInstr	cop[y]	eod	log[in]	rea[d]	then
     39 syn keyword dclInstr	cre[ate]	eoj	log[out]	rec[all]	typ[e]
     40 syn keyword dclInstr	cxx	exa[mine]	lse[dit]	rec[over]	uil
     41 syn keyword dclInstr	cxx[l_help]	exc[hange]	mac[ro]	ren[ame]	unl[ock]
     42 syn keyword dclInstr	dea[llocate]	exi[t]	mai[l]	rep[ly]	ves[t]
     43 syn keyword dclInstr	dea[ssign]	fdl	mer[ge]	req[uest]	vie[w]
     44 syn keyword dclInstr	deb[ug]	flo[wgraph]	mes[sage]	ret[urn]	wai[t]
     45 syn keyword dclInstr	dec[k]	fon[t]	mms	rms	wri[te]
     46 syn keyword dclInstr	def[ine]	for[tran]
     47 
     48 syn keyword dclLexical	f$context	f$edit	  f$getjpi	f$message	f$setprv
     49 syn keyword dclLexical	f$csid	f$element	  f$getqui	f$mode	f$string
     50 syn keyword dclLexical	f$cvsi	f$environment	  f$getsyi	f$parse	f$time
     51 syn keyword dclLexical	f$cvtime	f$extract	  f$identifier	f$pid	f$trnlnm
     52 syn keyword dclLexical	f$cvui	f$fao	  f$integer	f$privilege	f$type
     53 syn keyword dclLexical	f$device	f$file_attributes f$length	f$process	f$user
     54 syn keyword dclLexical	f$directory	f$getdvi	  f$locate	f$search	f$verify
     55 
     56 syn match   dclMdfy	"/\I\i*"	nextgroup=dclMdfySet,dclMdfySetString
     57 syn match   dclMdfySet	"=[^ \t"]*"	contained
     58 syn region  dclMdfySet	matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]"	contains=dclMdfySep
     59 syn region  dclMdfySetString	start='="'	skip='""'	end='"'	contained
     60 syn match   dclMdfySep	"[:,]"	contained
     61 
     62 " Numbers
     63 syn match   dclNumber	"\d\+"
     64 
     65 " Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname)
     66 syn match   dclVarname	"\I\i*"
     67 
     68 " Filenames (devices, paths)
     69 syn match   dclDevice	"\I\i*\(\$\I\i*\)\=:[^=]"me=e-1		nextgroup=dclDirPath,dclFilename
     70 syn match   dclDirPath	"\[\(\I\i*\.\)*\I\i*\]"		contains=dclDirSep	nextgroup=dclFilename
     71 syn match   dclFilename	"\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\="	contains=dclDirSep
     72 syn match   dclFilename	"\I\i*\.\(\I\i*\)\=\(;\d\+\)\="	contains=dclDirSep	contained
     73 syn match   dclDirSep	"[[\].;]"
     74 
     75 " Strings
     76 syn region  dclString	start='"'	skip='""'	end='"'	contains=@Spell
     77 
     78 " $ stuff and comments
     79 syn cluster dclCommentGroup	contains=dclStart,dclTodo,@Spell
     80 syn match   dclStart	"^\$"	skipwhite nextgroup=dclExe
     81 syn match   dclContinue	"-$"
     82 syn match   dclComment	"^\$!.*$"	contains=@dclCommentGroup
     83 syn match   dclExe	"\I\i*"	contained
     84 syn keyword dclTodo contained	COMBAK	DEBUG	FIXME	TODO	XXX
     85 
     86 " Assignments and Operators
     87 syn match   dclAssign	":==\="
     88 syn match   dclAssign	"="
     89 syn match   dclOper	"--\|+\|\*\|/"
     90 syn match   dclLogOper	"\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSep
     91 syn keyword dclLogical contained	and	ge	gts	lt	nes
     92 syn keyword dclLogical contained	eq	ges	le	lts	not
     93 syn keyword dclLogical contained	eqs	gt	les	ne	or
     94 syn match   dclLogSep	"\."		contained
     95 
     96 " @command procedures
     97 syn match   dclCmdProcStart	"@"			nextgroup=dclCmdProc
     98 syn match   dclCmdProc	"\I\i*\(\.\I\i*\)\="	contained
     99 syn match   dclCmdProc	"\I\i*:"		contained	nextgroup=dclCmdDirPath,dclCmdProc
    100 syn match   dclCmdDirPath	"\[\(\I\i*\.\)*\I\i*\]"	contained	nextgroup=delCmdProc
    101 
    102 " labels
    103 syn match   dclGotoLabel	"^\$\s*\I\i*:\s*$"	contains=dclStart
    104 
    105 " parameters
    106 syn match   dclParam	"'\I[a-zA-Z0-9_$]*'\="
    107 
    108 syn region  dclFuncList	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
    109 syn match   dclError	")"
    110 
    111 " Define the default highlighting.
    112 if !exists("skip_dcl_syntax_inits")
    113 
    114 hi def link dclLogOper	dclError
    115 hi def link dclLogical	dclOper
    116 hi def link dclLogSep	dclSep
    117 
    118 hi def link dclAssign	Operator
    119 hi def link dclCmdProc	Special
    120 hi def link dclCmdProcStart	Operator
    121 hi def link dclComment	Comment
    122 hi def link dclContinue	Statement
    123 hi def link dclDevice	Identifier
    124 hi def link dclDirPath	Identifier
    125 hi def link dclDirPath	Identifier
    126 hi def link dclDirSep	Delimiter
    127 hi def link dclError	Error
    128 hi def link dclExe		Statement
    129 hi def link dclFilename	NONE
    130 hi def link dclGotoLabel	Label
    131 hi def link dclInstr	Statement
    132 hi def link dclLexical	Function
    133 hi def link dclMdfy	Type
    134 hi def link dclMdfyBrkt	Delimiter
    135 hi def link dclMdfySep	Delimiter
    136 hi def link dclMdfySet	Type
    137 hi def link dclMdfySetString	String
    138 hi def link dclNumber	Number
    139 hi def link dclOper	Operator
    140 hi def link dclParam	Special
    141 hi def link dclSep		Delimiter
    142 hi def link dclStart	Delimiter
    143 hi def link dclString	String
    144 hi def link dclTodo	Todo
    145 
    146 endif
    147 
    148 let b:current_syntax = "dcl"
    149 
    150 " vim: ts=16