7
|
1 " Vim syntax file
|
827
|
2 " Language: Progress 4GL
|
7
|
3 " Filename extensions: *.p (collides with Pascal),
|
827
|
4 " *.i (collides with assembler)
|
|
5 " *.w (collides with cweb)
|
|
6 " Maintainer: Philip Uren <philuSPAX@ieee.org> Remove "SPAX" spam block
|
|
7 " Contributors: Chris Ruprecht <chrup@mac.com> (Chris, where are you now?)
|
|
8 " Mikhail Kuperblum <mikhail@whasup.com>
|
|
9 " John Florian <jflorian@voyager.net>
|
|
10 " Last Change: Wed Apr 12 08:55:35 EST 2006
|
826
|
11 " $Id$
|
7
|
12
|
|
13 " For version 5.x: Clear all syntax items
|
|
14 " For version 6.x: Quit when a syntax file was already loaded
|
|
15 if version < 600
|
|
16 syntax clear
|
|
17 elseif exists("b:current_syntax")
|
|
18 finish
|
|
19 endif
|
|
20
|
|
21 if version >= 600
|
|
22 setlocal iskeyword=@,48-57,_,-,!,#,$,%
|
|
23 else
|
|
24 set iskeyword=@,48-57,_,-,!,#,$,%
|
|
25 endif
|
|
26
|
826
|
27 " The Progress editor doesn't cope with tabs very well.
|
|
28 set expandtab
|
|
29
|
7
|
30 syn case ignore
|
|
31
|
|
32 " Progress Blocks of code and mismatched "end." errors.
|
827
|
33 syn match ProgressEndError "\<end\>"
|
|
34 syn region ProgressDoBlock transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
|
|
35 syn region ProgressForBlock transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
|
|
36 syn region ProgressRepeatBlock transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
|
|
37 syn region ProgressCaseBlock transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>\|\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
|
7
|
38
|
|
39 " These are Progress reserved words,
|
|
40 " and they could go in ProgressReserved,
|
|
41 " but I found it more helpful to highlight them in a different color.
|
827
|
42 syn keyword ProgressConditional if else then when otherwise
|
|
43 syn keyword ProgressFor each where
|
7
|
44
|
|
45 " Make those TODO and debugging notes stand out!
|
827
|
46 syn keyword ProgressTodo contained TODO BUG FIX
|
|
47 syn keyword ProgressDebug contained DEBUG
|
|
48 syn keyword ProgressDebug debugger
|
|
49 syn match ProgressTodo contained "NEED[S]*\s\s*WORK"
|
7
|
50
|
826
|
51 " If you like to highlight the whole line of
|
|
52 " the start and end of procedures
|
|
53 " to make the whole block of code stand out:
|
827
|
54 syn match ProgressProcedure "^\s*procedure.*"
|
|
55 syn match ProgressProcedure "^\s*end\s\s*procedure.*"
|
|
56 syn match ProgressFunction "^\s*function.*"
|
|
57 syn match ProgressFunction "^\s*end\s\s*function.*"
|
826
|
58 " ... otherwise use this:
|
|
59 " syn keyword ProgressFunction procedure function
|
7
|
60
|
827
|
61 syn keyword ProgressReserved accum[ulate] active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending] assign at attr[-space]
|
|
62 syn 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
|
|
63 syn keyword ProgressReserved center[ed] character check chr clear clipboard col colon color col[umn] column-lab[el] col[umns] compiler connected control count-of
|
|
64 syn keyword ProgressReserved cpstream create ctos current current-changed current-lang[uage] current-window current_date curs[or] database dataservers
|
|
65 syn keyword ProgressReserved dbcodepage dbcollation dbname dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimal decimals declare
|
|
66 syn keyword ProgressReserved def default default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp
|
|
67 syn keyword ProgressReserved disp[lay] distinct dos down drop editing enable encode entry error-stat[us] escape etime except exclusive
|
|
68 syn keyword ProgressReserved exclusive[-lock] exclusive-web-us[er] exists export false fetch field field[s] file-info[rmation] fill find find-case-sensitive
|
|
69 syn keyword ProgressReserved find-global find-next-occurrence find-prev-occurrence find-select find-wrap-around first first-of focus font form form[at]
|
|
70 syn 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]
|
|
71 syn 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
|
|
72 syn keyword ProgressReserved go-pend[ing] grant graphic-e[dge] group having header help hide import in index indicator input input-o[utput] insert
|
|
73 syn keyword ProgressReserved integer into is is-attr[-space] join kblabel key-code key-func[tion] key-label keycode keyfunc[tion] keylabel keys keyword label
|
|
74 syn keyword ProgressReserved last last-even[t] last-key last-of lastkey ldbname leave library like line-count[er] listi[ng] locked lookup machine-class
|
|
75 syn 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]
|
|
76 syn 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
|
|
77 syn 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
|
|
78 syn keyword ProgressReserved os2 os400 output overlay page page-bot[tom] page-num[ber] page-top param[eter] pause pdbname persist[ent] pixels
|
|
79 syn keyword ProgressReserved preproc[ess] privileges proc-ha[ndle] proc-st[atus] process program-name Progress prompt prompt[-for] promsgs propath provers[ion]
|
|
80 syn 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]
|
|
81 syn keyword ProgressReserved release reposition retain retry return return-val[ue] revert revoke run save schema screen screen-io screen-lines
|
|
82 syn keyword ProgressReserved scroll sdbname search seek select self session set setuser[id] share[-lock] shared show-stat[s] skip some space status stream
|
|
83 syn keyword ProgressReserved stream-io string-xref system-dialog table term term[inal] text text-cursor text-seg[-growth] this-procedure time title
|
|
84 syn keyword ProgressReserved to today top-only trans trans[action] trigger triggers trim true underl[ine] undo unform[atted] union unique unix up update
|
|
85 syn keyword ProgressReserved use-index use-revvideo use-underline user user[id] using v6frame value values variable view view-as vms wait-for web-con[text]
|
|
86 syn keyword ProgressReserved window window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xref yes _cbit
|
|
87 syn keyword ProgressReserved _control _list _memory _msg _pcontrol _serial[-num] _trace
|
7
|
88
|
|
89 " Strings. Handles embedded quotes.
|
|
90 " Note that, for some reason, Progress doesn't use the backslash, "\"
|
|
91 " as the escape character; it uses tilde, "~".
|
827
|
92 syn region ProgressString matchgroup=ProgressQuote start=+"+ end=+"+ skip=+\~'\|\~\~+
|
|
93 syn region ProgressString matchgroup=ProgressQuote start=+'+ end=+'+ skip=+\~'\|\~\~+
|
7
|
94
|
827
|
95 syn match ProgressIdentifier "\<[a-zA-Z_%#]+\>()"
|
7
|
96
|
827
|
97 " syn match ProgressDelimiter "()"
|
7
|
98
|
827
|
99 syn match ProgressMatrixDelimiter "[][]"
|
7
|
100 " If you prefer you can highlight the range
|
827
|
101 "syn match ProgressMatrixDelimiter "[\d\+\.\.\d\+]"
|
7
|
102
|
827
|
103 syn match ProgressNumber "\<\-\=\d\+\(u\=l\=\|lu\|f\)\>"
|
|
104 syn match ProgressByte "\$[0-9a-fA-F]\+"
|
7
|
105
|
826
|
106 " More values: Logicals, and Progress's unknown value, ?.
|
827
|
107 syn match ProgressNumber "?"
|
|
108 syn keyword ProgressNumber true false yes no
|
826
|
109
|
7
|
110 " If you don't like tabs:
|
827
|
111 syn match ProgressShowTab "\t"
|
826
|
112
|
|
113 " If you don't like white space on the end of lines:
|
827
|
114 " syn match ProgressSpaceError "\s\+$"
|
7
|
115
|
827
|
116 syn region ProgressComment start="/\*" end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug
|
|
117 syn region ProgressInclude start="^[ ]*[{][^&]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
|
|
118 syn region ProgressPreProc start="&" end="\>" contained
|
7
|
119
|
826
|
120 " This next line works reasonably well.
|
827
|
121 " syn match ProgressOperator "[!;|)(:.><+*=-]"
|
826
|
122 "
|
|
123 " Progress allows a '-' to be part of an identifier. To be considered
|
|
124 " the subtraction/negation operation operator it needs a non-word
|
|
125 " character on either side. Also valid are cases where the minus
|
|
126 " operation appears at the beginning or end of a line.
|
|
127 " This next line trips up on "no-undo" etc.
|
827
|
128 " syn match ProgressOperator "[!;|)(:.><+*=]\|\W-\W\|^-\W\|\W-$"
|
|
129 syn match ProgressOperator "[!;|)(:.><+*=]\|\s-\s\|^-\s\|\s-$"
|
7
|
130
|
827
|
131 syn 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
|
|
132 syn 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
|
|
133 syn 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]
|
|
134 syn 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
|
|
135 syn 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
|
|
136 syn 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
|
|
137 syn 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
|
|
138 syn 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
|
|
139 syn 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
|
|
140 syn 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
|
|
141 syn 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 define defined delete-char delete-current-row
|
|
142 syn 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
|
|
143 syn 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]
|
|
144 syn 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
|
|
145 syn 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
|
|
146 syn 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]
|
|
147 syn 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]
|
|
148 syn 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
|
|
149 syn 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
|
|
150 syn 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]
|
|
151 syn 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
|
|
152 syn 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
|
|
153 syn 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
|
|
154 syn 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]
|
|
155 syn 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
|
|
156 syn 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
|
|
157 syn 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
|
|
158 syn 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
|
|
159 syn 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
|
|
160 syn 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]
|
|
161 syn 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
|
|
162 syn 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
|
|
163 syn 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
|
|
164 syn 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
|
|
165 syn 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
|
|
166 syn 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]
|
|
167 syn 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]
|
|
168 syn 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
|
|
169 syn keyword ProgressOperator real recursive refresh refreshable replace replace-selection-text replication-create replication-delete replication-write request resiza[ble] resize retry-cancel
|
|
170 syn 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
|
|
171 syn 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
|
|
172 syn 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
|
|
173 syn 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
|
|
174 syn 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]
|
|
175 syn 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
|
|
176 syn 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]
|
|
177 syn 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]
|
|
178 syn 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]
|
|
179 syn 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]
|
|
180 syn 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]
|
|
181 syn 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]
|
|
182 syn 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
|
7
|
183
|
827
|
184 syn keyword ProgressType char[acter] int[eger] format
|
|
185 syn keyword ProgressType var[iable] log[ical] da[te]
|
7
|
186
|
|
187 syn sync lines=800
|
|
188
|
|
189 " Define the default highlighting.
|
|
190 " For version 5.7 and earlier: only when not done already
|
|
191 " For version 5.8 and later: only when an item doesn't have highlighting yet
|
|
192 if version >= 508 || !exists("did_progress_syntax_inits")
|
|
193 if version < 508
|
|
194 let did_progress_syntax_inits = 1
|
|
195 command -nargs=+ HiLink hi link <args>
|
|
196 else
|
|
197 command -nargs=+ HiLink hi def link <args>
|
|
198 endif
|
|
199
|
|
200 " The default methods for highlighting. Can be overridden later.
|
827
|
201 HiLink ProgressByte Number
|
|
202 HiLink ProgressCase Repeat
|
|
203 HiLink ProgressComment Comment
|
7
|
204 HiLink ProgressConditional Conditional
|
827
|
205 HiLink ProgressDebug Debug
|
|
206 HiLink ProgressDo Repeat
|
|
207 HiLink ProgressEndError Error
|
|
208 HiLink ProgressFor Repeat
|
|
209 HiLink ProgressFunction Procedure
|
|
210 HiLink ProgressIdentifier Identifier
|
|
211 HiLink ProgressInclude Include
|
7
|
212 HiLink ProgressMatrixDelimiter Identifier
|
827
|
213 HiLink ProgressNumber Number
|
|
214 HiLink ProgressOperator Operator
|
|
215 HiLink ProgressPreProc PreProc
|
|
216 HiLink ProgressProcedure Procedure
|
|
217 HiLink ProgressQuote Delimiter
|
|
218 HiLink ProgressRepeat Repeat
|
|
219 HiLink ProgressReserved Statement
|
|
220 HiLink ProgressSpaceError Error
|
|
221 HiLink ProgressString String
|
|
222 HiLink ProgressTodo Todo
|
|
223 HiLink ProgressType Statement
|
|
224 HiLink ProgressShowTab Error
|
7
|
225
|
|
226 delcommand HiLink
|
|
227 endif
|
|
228
|
|
229 let b:current_syntax = "progress"
|
|
230
|
827
|
231 " vim: ts=8 sw=8
|