Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / syntax / progress.vim
blob6816548a8c07b97987f1baf6235fde9610f962f2
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             <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
11 " $Id: progress.vim,v 1.3 2006/04/12 21:48:47 vimboss Exp $
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
21 if version >= 600
22   setlocal iskeyword=@,48-57,_,-,!,#,$,%
23 else
24   set iskeyword=@,48-57,_,-,!,#,$,%
25 endif
27 " The Progress editor doesn't cope with tabs very well.
28 set expandtab
30 syn case ignore
32 " Progress Blocks of code and mismatched "end." errors.
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
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.
42 syn keyword     ProgressConditional     if else then when otherwise
43 syn keyword     ProgressFor             each where
45 " Make those TODO and debugging notes stand out!
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"
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:
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.*"
58 " ... otherwise use this:
59 " syn keyword ProgressFunction  procedure function
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 
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, "~".
92 syn region      ProgressString          matchgroup=ProgressQuote        start=+"+ end=+"+       skip=+\~'\|\~\~+
93 syn region      ProgressString          matchgroup=ProgressQuote        start=+'+ end=+'+       skip=+\~'\|\~\~+
95 syn match       ProgressIdentifier      "\<[a-zA-Z_%#]+\>()"
97 " syn match     ProgressDelimiter       "()"
99 syn match       ProgressMatrixDelimiter "[][]"
100 " If you prefer you can highlight the range
101 "syn match      ProgressMatrixDelimiter "[\d\+\.\.\d\+]"
103 syn match       ProgressNumber          "\<\-\=\d\+\(u\=l\=\|lu\|f\)\>"
104 syn match       ProgressByte            "\$[0-9a-fA-F]\+"
106 " More values: Logicals, and Progress's unknown value, ?.
107 syn match       ProgressNumber          "?"
108 syn keyword     ProgressNumber          true false yes no
110 " If you don't like tabs:
111 syn match       ProgressShowTab         "\t"
113 " If you don't like white space on the end of lines:
114 " syn match     ProgressSpaceError      "\s\+$"
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
120 " This next line works reasonably well.
121 " syn match     ProgressOperator        "[!;|)(:.><+*=-]"
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.
128 " syn match     ProgressOperator        "[!;|)(:.><+*=]\|\W-\W\|^-\W\|\W-$"
129 syn match       ProgressOperator        "[!;|)(:.><+*=]\|\s-\s\|^-\s\|\s-$"
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
184 syn keyword     ProgressType            char[acter] int[eger] format
185 syn keyword     ProgressType            var[iable] log[ical] da[te]
187 syn sync lines=800
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
200   " The default methods for highlighting. Can be overridden later.
201   HiLink ProgressByte                   Number
202   HiLink ProgressCase                   Repeat
203   HiLink ProgressComment                Comment
204   HiLink ProgressConditional            Conditional
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
212   HiLink ProgressMatrixDelimiter        Identifier
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
226   delcommand HiLink
227 endif
229 let b:current_syntax = "progress"
231 " vim: ts=8 sw=8