xref: /vim-8.2.3635/runtime/syntax/progress.vim (revision 071d4279)
1" Vim syntax file
2" Language:				Progress 4GL
3" Filename extensions:	*.p (collides with Pascal),
4"						*.i (collides with assembler)
5"						*.w (collides with cweb)
6" Maintainer:			Philip Uren			<[email protected]>
7" Contributors:			Chris Ruprecht		<[email protected]>
8"						Philip Uren			<[email protected]>
9"						Mikhail Kuperblum	<[email protected]>
10" URL:					http://www.zeta.org.au/~philu/vim/progress.vim
11" Last Change:			Thu May  3 08:49:47 EST 2001
12
13" For version 5.x: Clear all syntax items
14" For version 6.x: Quit when a syntax file was already loaded
15if version < 600
16	syntax clear
17elseif exists("b:current_syntax")
18	finish
19endif
20
21if version >= 600
22  setlocal iskeyword=@,48-57,_,-,!,#,$,%
23else
24  set iskeyword=@,48-57,_,-,!,#,$,%
25endif
26
27syn case ignore
28
29" Progress Blocks of code and mismatched "end." errors.
30syn match   ProgressEndError		"\<end\>"
31syn region ProgressDoBlock transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
32syn region ProgressForBlock transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
33syn region ProgressRepeatBlock transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
34syn region ProgressCaseBlock transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
35
36" These are Progress reserved words,
37" and they could go in ProgressReserved,
38" but I found it more helpful to highlight them in a different color.
39syn keyword ProgressConditional	if else then when otherwise
40syn keyword ProgressFor				each where
41
42" Make those TODO and debugging notes stand out!
43syn keyword	ProgressTodo			contained	TODO BUG FIX
44syn keyword ProgressDebug			contained	DEBUG
45syn keyword ProgressDebug						debugger
46
47syn keyword ProgressFunction	procedure function
48
49syn keyword ProgressReserved	accum[ulate] active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending] assign at attr[-space]
50syn keyword ProgressReserved	authorization auto-ret[urn] avail[able] back[ground] before-h[ide] begins bell between blank break btos by call can-do can-find
51syn keyword ProgressReserved	center[ed] check chr clear clipboard col colon color col[umn] column-lab[el] col[umns] compiler connected control count-of
52syn keyword ProgressReserved	cpstream create ctos current current-changed current-lang[uage] current-window current_date curs[or] database dataservers
53syn keyword ProgressReserved	dbcodepage dbcollation dbname dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimals declare
54syn keyword ProgressReserved	def default default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp
55syn keyword ProgressReserved	disp[lay] distinct dos down drop editing enable encode entry error-stat[us] escape etime except exclusive
56syn keyword ProgressReserved	exclusive[-lock] exclusive-web-us[er] exists export false fetch field field[s] file-info[rmation] fill find find-case-sensitive
57syn keyword ProgressReserved	find-global find-next-occurrence find-prev-occurrence find-select find-wrap-around first first-of focus font form form[at]
58syn keyword ProgressReserved	fram[e] frame-col frame-db frame-down frame-field frame-file frame-inde[x] frame-line frame-name frame-row frame-val[ue]
59syn keyword ProgressReserved	from from-c[hars] from-p[ixels] gateway[s] get-byte get-codepage[s] get-coll[ations] get-key-val[ue] getbyte global go-on
60syn keyword ProgressReserved	go-pend[ing] grant graphic-e[dge] group having header help hide import in index indicator input input-o[utput] insert
61syn keyword ProgressReserved	into is is-attr[-space] join kblabel key-code key-func[tion] key-label keycode keyfunc[tion] keylabel keys keyword label
62syn keyword ProgressReserved	last last-even[t] last-key last-of lastkey ldbname leave library like line-count[er] listi[ng] locked lookup machine-class
63syn keyword ProgressReserved	map member message message-lines mouse mpe new next next-prompt no no-attr[-space] no-error no-f[ill] no-help no-hide no-label[s]
64syn keyword ProgressReserved	no-lock no-map no-mes[sage] no-pause no-prefe[tch] no-undo no-val[idate] no-wait not null num-ali[ases] num-dbs num-entries
65syn keyword ProgressReserved	of off old on open opsys option or os-append os-command os-copy os-create-dir os-delete os-dir os-drive[s] os-error os-rename
66syn keyword ProgressReserved	os2 os400 output overlay page page-bot[tom] page-num[ber] page-top param[eter] pause pdbname persist[ent] pixels
67syn keyword ProgressReserved	preproc[ess] privileges proc-ha[ndle] proc-st[atus] process program-name Progress prompt prompt[-for] promsgs propath provers[ion]
68syn keyword ProgressReserved	put put-byte put-key-val[ue] putbyte query query-tuning quit r-index rcode-informatio[n] readkey recid record-len[gth] rect[angle]
69syn keyword ProgressReserved	release reposition retain retry return return-val[ue] revert revoke run save schema screen screen-io screen-lines
70syn keyword ProgressReserved	scroll sdbname search seek select self session set setuser[id] share[-lock] shared show-stat[s] skip some space status stream
71syn keyword ProgressReserved	stream-io string-xref system-dialog table term term[inal] text text-cursor text-seg[-growth] this-procedure time title
72syn keyword ProgressReserved	to today top-only trans trans[action] trigger triggers trim true underl[ine] undo unform[atted] union unique unix up update
73syn keyword ProgressReserved	use-index use-revvideo use-underline user user[id] using v6frame value values view view-as vms wait-for web-con[text]
74syn keyword ProgressReserved	window window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xref yes _cbit
75syn keyword ProgressReserved	_control _list _memory _msg _pcontrol _serial[-num] _trace
76
77" Strings. Handles embedded quotes.
78" Note that, for some reason, Progress doesn't use the backslash, "\"
79" as the escape character; it uses tilde, "~".
80syn region ProgressString	matchgroup=ProgressQuote	start=+"+ end=+"+	skip=+\~"+
81syn region ProgressString	matchgroup=ProgressQuote	start=+'+ end=+'+	skip=+\~'+
82
83syn match  ProgressIdentifier			"\<[a-zA-Z_][a-zA-Z0-9_]*\>()"
84
85" syn match  ProgressDelimiter			"()"
86
87" syn match  ProgressMatrixDelimiter	"[][]"
88
89" If you prefer you can highlight the range
90"syn match  ProgressMatrixDelimiter		"[\d\+\.\.\d\+]"
91
92syn match  ProgressNumber				"\<\d\+\(u\=l\=\|lu\|f\)\>"
93syn match  ProgressByte					"\$[0-9a-fA-F]\+"
94
95" If you don't like tabs:
96"syn match ProgressShowTab "\t"
97"syn match ProgressShowTabc "\t"
98
99syn region ProgressComment		start="/\*"  end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug
100syn match ProgressInclude		"^[ 	]*[{].*\.i[}]"
101
102syn match ProgressSubstitute	"^[ 	]*[{].*[^i][}]"
103syn match ProgressPreProc		"^[ 	]*&.*"
104
105syn match ProgressOperator		"[!;|)(:.><+*=-]"
106
107syn keyword ProgressOperator	<= <> >= abs[olute] accelerator across add-first add-last advise alert-box allow-replication ansi-only anywhere append appl-alert[-boxes] application as-cursor ask-overwrite
108syn keyword ProgressOperator	attach[ment] auto-end-key auto-endkey auto-go auto-ind[ent] auto-resize auto-z[ap] available-formats ave[rage] avg backward[s] base-key batch[-mode] bgc[olor] binary
109syn keyword ProgressOperator	bind-where block-iteration-display border-bottom border-bottom-ch[ars] border-bottom-pi[xels] border-left border-left-char[s] border-left-pixe[ls] border-right border-right-cha[rs]
110syn keyword ProgressOperator	border-right-pix[els] border-t[op] border-t[op-chars] border-top-pixel[s] both bottom box box-select[able] browse browse-header buffer buffer-chars buffer-lines
111syn keyword ProgressOperator	button button[s] byte cache cache-size can-query can-set cancel-break cancel-button caps careful-paint case-sensitive cdecl char[acter] character_length charset
112syn keyword ProgressOperator	checked choose clear-select[ion] close code codepage codepage-convert col-of colon-align[ed] color-table column-bgc[olor] column-dcolor column-fgc[olor] column-font
113syn keyword ProgressOperator	column-label-bgc[olor] column-label-dcolor column-label-fgc[olor] column-label-font column-of column-pfc[olor] column-sc[rolling] combo-box command compile complete
114syn keyword ProgressOperator	connect constrained contents context context-pop[up] control-containe[r] c[ontrol-form] convert-to-offse[t] convert count cpcase cpcoll cpint[ernal] cplog
115syn keyword ProgressOperator	cpprint cprcodein cprcodeout cpterm crc-val[ue] c[reate-control] create-result-list-entry create-test-file current-column current-environm[ent] current-iteration
116syn keyword ProgressOperator	current-result-row current-row-modified current-value cursor-char cursor-line cursor-offset data-entry-retur[n] data-t[ype] date date-f[ormat] day db-references
117syn keyword ProgressOperator	dcolor dde-error dde-i[d] dde-item dde-name dde-topic debu[g] dec[imal] default-b[utton] default-extensio[n] defer-lob-fetch defined delete-char delete-current-row
118syn keyword ProgressOperator	delete-line delete-selected-row delete-selected-rows deselect-focused-row deselect-rows deselect-selected-row d[esign-mode] dialog-box dialog-help dir disabled display-message
119syn keyword ProgressOperator	display-t[ype] double drag-enabled drop-down drop-down-list dump dynamic echo edge edge[-chars] edge-p[ixels] editor empty end-key endkey entered eq error error-col[umn]
120syn keyword ProgressOperator	error-row event-t[ype] event[s] exclusive-id execute exp expand extended extent external extract fetch-selected-row fgc[olor] file file-name file-off[set] file-type
121syn keyword ProgressOperator	filename fill-in filled filters first-child first-column first-proc[edure] first-tab-i[tem] fixed-only float focused-row font-based-layout font-table force-file
122syn keyword ProgressOperator	fore[ground] form-input forward[s] frame-spa[cing] frame-x frame-y frequency from-cur[rent] full-height full-height-char[s] full-height-pixe[ls] full-pathn[ame]
123syn keyword ProgressOperator	full-width full-width[-chars] full-width-pixel[s] ge get get-blue[-value] g[et-char-property] get-double get-dynamic get-file get-float get-green[-value]
124syn keyword ProgressOperator	get-iteration get-license get-long get-message get-number get-pointer-value get-red[-value] get-repositioned-row get-selected-wid[get] get-short get-signature get-size
125syn keyword ProgressOperator	get-string get-tab-item get-text-height get-text-height-char[s] get-text-height-pixe[ls] get-text-width get-text-width-c[hars] get-text-width-pixel[s] get-unsigned-short
126syn keyword ProgressOperator	grayed grid-factor-horizont[al] grid-factor-vert[ical] grid-set grid-snap grid-unit-height grid-unit-height-cha[rs] grid-unit-height-pix[els] grid-unit-width grid-unit-width-char[s]
127syn keyword ProgressOperator	grid-unit-width-pixe[ls] grid-visible gt handle height height[-chars] height-p[ixels] help-con[text] helpfile-n[ame] hidden hint hori[zontal] hwnd image image-down
128syn keyword ProgressOperator	image-insensitive image-size image-size-c[hars] image-size-pixel[s] image-up immediate-display index-hint indexed-reposition info[rmation] init init[ial] initial-dir
129syn keyword ProgressOperator	initial-filter initiate inner inner-chars inner-lines insert-b[acktab] insert-file insert-row insert-string insert-t[ab] int[eger] internal-entries is-lead-byte
130syn keyword ProgressOperator	is-row-selected is-selected item items-per-row join-by-sqldb keep-frame-z-ord[er] keep-messages keep-tab-order key keyword-all label-bgc[olor] label-dc[olor] label-fgc[olor]
131syn keyword ProgressOperator	label-font label-pfc[olor] labels language[s] large large-to-small last-child last-tab-i[tem] last-proce[dure] lc le leading left left-align[ed] left-trim length
132syn keyword ProgressOperator	line list-events list-items list-query-attrs list-set-attrs list-widgets load l[oad-control] load-icon load-image load-image-down load-image-insensitive load-image-up
133syn keyword ProgressOperator	load-mouse-point[er] load-small-icon log logical lookahead lower lt manual-highlight margin-extra margin-height margin-height-ch[ars] margin-height-pi[xels] margin-width
134syn keyword ProgressOperator	margin-width-cha[rs] margin-width-pix[els] matches max max-chars max-data-guess max-height max-height[-chars] max-height-pixel[s] max-rows max-size max-val[ue] max-width
135syn keyword ProgressOperator	max-width[-chars] max-width-p[ixels] maximize max[imum] memory menu menu-bar menu-item menu-k[ey] menu-m[ouse] menubar message-area message-area-font message-line
136syn keyword ProgressOperator	min min-height min-height[-chars] min-height-pixel[s] min-size min-val[ue] min-width min-width[-chars] min-width-p[ixels] min[imum] mod modified mod[ulo] month mouse-p[ointer]
137syn keyword ProgressOperator	movable move-after-tab-i[tem] move-before-tab-[item] move-col[umn] move-to-b[ottom] move-to-eof move-to-t[op] multiple multiple-key multitasking-interval must-exist
138syn keyword ProgressOperator	name native ne new-row next-col[umn] next-sibling next-tab-ite[m] next-value no-apply no-assign no-bind-where no-box no-column-scroll[ing] no-convert no-current-value
139syn keyword ProgressOperator	no-debug no-drag no-echo no-index-hint no-join-by-sqldb no-lookahead no-row-markers no-scrolling no-separate-connection no-separators no-und[erline] no-word-wrap
140syn keyword ProgressOperator	none num-but[tons] num-col[umns] num-copies num-formats num-items num-iterations num-lines num-locked-colum[ns] num-messages num-results num-selected num-selected-rows
141syn keyword ProgressOperator	num-selected-widgets num-tabs num-to-retain numeric numeric-f[ormat] octet_length ok ok-cancel on-frame[-border] ordered-join ordinal orientation os-getenv outer
142syn keyword ProgressOperator	outer-join override owner page-size page-wid[th] paged parent partial-key pascal pathname pfc[olor] pinnable pixels-per-colum[n] pixels-per-row popup-m[enu] popup-o[nly]
143syn keyword ProgressOperator	position precision presel[ect] prev prev-col[umn] prev-sibling prev-tab-i[tem] primary printer-control-handle printer-setup private-d[ata] profiler Progress-s[ource]
144syn keyword ProgressOperator	publish put-double put-float put-long put-short put-string put-unsigned-short query-off-end question radio-buttons radio-set random raw raw-transfer read-file read-only
145syn keyword ProgressOperator	real recursive refresh refreshable replace replace-selection-text replication-create replication-delete replication-write request resiza[ble] resize retry-cancel
146syn keyword ProgressOperator	return-ins[erted] return-to-start-di[r] reverse-from right right-align[ed] right-trim round row row-ma[rkers] row-of rowid rule rule-row rule-y save-as save-file
147syn keyword ProgressOperator	screen-val[ue] scroll-bars scroll-delta scroll-horiz-value scroll-offset scroll-to-current-row scroll-to-i[tem] scroll-to-selected-row scroll-vert-value scrollable
148syn keyword ProgressOperator	scrollbar-horizo[ntal] scrollbar-vertic[al] scrolled-row-positio[n] scrolling se-check-pools se-enable-of[f] se-enable-on se-num-pools se-use-messa[ge] section select-focused-row
149syn keyword ProgressOperator	select-next-row select-prev-row select-repositioned-row select-row selectable selected selected-items selection-end selection-list selection-start selection-text
150syn keyword ProgressOperator	send sensitive separate-connection separators set-blue[-value] set-break set-cell-focus set-contents set-dynamic set-green[-value] set-leakpoint set-pointer-valu[e]
151syn keyword ProgressOperator	s[et-property] set-red[-value] set-repositioned-row set-selection set-size set-wait[-state] side-lab side-lab[e] side-lab[el] side-label-handl[e] side-lab[els] silent
152syn keyword ProgressOperator	simple single size size-c[hars] size-p[ixels] slider smallint sort source source-procedure sql sqrt start status-area status-area-font status-bar stdcall stenciled stop stoppe[d]
153syn keyword ProgressOperator	stored-proc[edure] string sub-ave[rage] sub-count sub-max[imum] sub-me[nu] sub-menu-help sub-min[imum] sub-total subscribe subst[itute] substr[ing] subtype sum super suppress-warning[s]
154syn keyword ProgressOperator	system-alert-box[es] system-help tab-position tabbable target target-procedure temp-dir[ectory] temp-table terminate text-selected three-d through thru tic-marks time-source title-bgc[olor]
155syn keyword ProgressOperator	title-dc[olor] title-fgc[olor] title-fo[nt] to-rowid toggle-box tool-bar top topic total trailing trunc[ate] type unbuff[ered] unique-id unload unsubscribe upper use use-dic[t-exps]
156syn keyword ProgressOperator	use-filename use-text v6display valid-event valid-handle validate validate-condition validate-message var[iable] vert[ical] virtual-height virtual-height-c[hars]
157syn keyword ProgressOperator	virtual-height-pixel[s] virtual-width virtual-width-ch[ars] virtual-width-pi[xels] visible wait warning weekday widget widget-e[nter] widget-h[andle] widget-l[eave]
158syn keyword ProgressOperator	widget-pool width width[-chars] width-p[ixels] window-name window-sta[te] window-sys[tem] word-wrap x-of y-of year yes-no yes-no-cancel _dcm
159
160syn keyword ProgressType	    char[acter] int[eger] format
161syn keyword ProgressType	    var[iable] log[ical] da[te]
162
163syn sync lines=800
164
165" Define the default highlighting.
166" For version 5.7 and earlier: only when not done already
167" For version 5.8 and later: only when an item doesn't have highlighting yet
168if version >= 508 || !exists("did_progress_syntax_inits")
169  if version < 508
170	let did_progress_syntax_inits = 1
171	command -nargs=+ HiLink hi link <args>
172  else
173	command -nargs=+ HiLink hi def link <args>
174  endif
175
176  " The default methods for highlighting. Can be overridden later.
177  HiLink ProgressByte			    Number
178  HiLink ProgressCase				Repeat
179  HiLink ProgressComment			StatusLine
180  HiLink ProgressConditional		Conditional
181  HiLink ProgressDebug				Debug
182  HiLink ProgressDo					Repeat
183  HiLink ProgressEndError			Error
184  HiLink ProgressFor				Repeat
185  HiLink ProgressFunction			Procedure
186  HiLink ProgressInclude			Include
187  HiLink ProgressLabel				Label
188  HiLink ProgressMatrixDelimiter	Identifier
189  HiLink ProgressModifier			Type
190  HiLink ProgressNumber				Number
191  HiLink ProgressOperator			Function
192  HiLink ProgressPreProc			PreProc
193  HiLink ProgressProcedure			Procedure
194  HiLink ProgressQuote				Delimiter
195  HiLink ProgressRepeat				Repeat
196  HiLink ProgressReserved			Identifier
197  HiLink ProgressString				String
198  HiLink ProgressStructure			Structure
199  HiLink ProgressSubstitute			PreProc
200  HiLink ProgressTodo				Todo
201  HiLink ProgressType				Statement
202  HiLink ProgressUnclassified		Statement
203
204  " Optional highlighting
205  " HiLink ProgressDelimiter		Identifier
206  " HiLink ProgressShowTab			Error
207  " HiLink ProgressShowTabc			Error
208  " HiLink ProgressIdentifier		Identifier
209
210  delcommand HiLink
211endif
212
213let b:current_syntax = "progress"
214
215" vim: ts=4 sw=2
216