blob: 40b48358c6df210525cf75c484384c3a31d4a0ba [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Structured Query Report Writer (SQR)
3" Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com)
4" URL: http://www.ontko.com/sqr/#editor_config_files
5"
6" Modification History:
7" 2002-Apr-12: Updated for SQR v6.x
8" 2002-Jul-30: Added { and } to iskeyword definition
9" 2003-Oct-15: Allow "." in variable names
10" highlight entire open '... literal when it contains
11" "''" inside it (e.g. "'I can''t say" is treated
12" as one open string, not one terminated and one open)
13" {} variables can occur inside of '...' literals
14"
15" Thanks to the previous maintainer of this file, Jeff Lanzarotta:
16" http://lanzarotta.tripod.com/vim.html
17" jefflanzarotta at yahoo dot com
18
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020019" quit when a syntax file was already loaded
20if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000021 finish
22endif
23
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020024setlocal iskeyword=@,48-57,_,-,#,$,{,}
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
26syn case ignore
27
28" BEGIN GENERATED SECTION ============================================
29
30" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04
31" (based on the UltraEdit syntax file for SQR 6.1.4
32" found at http://www.ontko.com/sqr/#editor_config_files )
33
34syn keyword sqrSection begin-footing begin-heading begin-procedure
35syn keyword sqrSection begin-program begin-report begin-setup
36syn keyword sqrSection end-footing end-heading end-procedure
37syn keyword sqrSection end-program end-report end-setup
38
Bram Moolenaar15146672011-10-20 22:22:38 +020039syn keyword sqrParagraph alter-color-map alter-connection
Bram Moolenaar071d4272004-06-13 20:20:40 +000040syn keyword sqrParagraph alter-locale alter-printer alter-report
41syn keyword sqrParagraph begin-document begin-execute begin-select
42syn keyword sqrParagraph begin-sql declare-chart declare-image
Bram Moolenaar15146672011-10-20 22:22:38 +020043syn keyword sqrParagraph declare-color-map declare-connection
Bram Moolenaar071d4272004-06-13 20:20:40 +000044syn keyword sqrParagraph declare-layout declare-printer
45syn keyword sqrParagraph declare-report declare-procedure
46syn keyword sqrParagraph declare-toc declare-variable end-declare
47syn keyword sqrParagraph end-document end-select exit-select end-sql
48syn keyword sqrParagraph load-lookup
49
50syn keyword sqrReserved #current-column #current-date #current-line
51syn keyword sqrReserved #end-file #page-count #return-status
52syn keyword sqrReserved #sql-count #sql-status #sqr-max-columns
53syn keyword sqrReserved #sqr-max-lines #sqr-pid #sqr-toc-level
54syn keyword sqrReserved #sqr-toc-page $sqr-database {sqr-database}
55syn keyword sqrReserved $sqr-dbcs {sqr-dbcs} $sqr-encoding
56syn keyword sqrReserved {sqr-encoding} $sqr-encoding-console
57syn keyword sqrReserved {sqr-encoding-console}
58syn keyword sqrReserved $sqr-encoding-database
59syn keyword sqrReserved {sqr-encoding-database}
60syn keyword sqrReserved $sqr-encoding-file-input
61syn keyword sqrReserved {sqr-encoding-file-input}
62syn keyword sqrReserved $sqr-encoding-file-output
63syn keyword sqrReserved {sqr-encoding-file-output}
64syn keyword sqrReserved $sqr-encoding-report-input
65syn keyword sqrReserved {sqr-encoding-report-input}
66syn keyword sqrReserved $sqr-encoding-report-output
67syn keyword sqrReserved {sqr-encoding-report-output}
68syn keyword sqrReserved $sqr-encoding-source {sqr-encoding-source}
69syn keyword sqrReserved $sql-error $sqr-hostname {sqr-hostname}
70syn keyword sqrReserved $sqr-locale $sqr-platform {sqr-platform}
71syn keyword sqrReserved $sqr-program $sqr-report $sqr-toc-text
72syn keyword sqrReserved $sqr-ver $username
73
74syn keyword sqrPreProc #define #else #end-if #endif #if #ifdef
75syn keyword sqrPreProc #ifndef #include
76
77syn keyword sqrCommand add array-add array-divide array-multiply
78syn keyword sqrCommand array-subtract ask break call clear-array
79syn keyword sqrCommand close columns commit concat connect
80syn keyword sqrCommand create-array create-color-palette date-time
81syn keyword sqrCommand display divide do dollar-symbol else encode
82syn keyword sqrCommand end-evaluate end-if end-while evaluate
83syn keyword sqrCommand execute extract find get get-color goto
84syn keyword sqrCommand graphic if input last-page let lookup
85syn keyword sqrCommand lowercase mbtosbs money-symbol move
86syn keyword sqrCommand multiply new-page new-report next-column
87syn keyword sqrCommand next-listing no-formfeed open page-number
88syn keyword sqrCommand page-size position print print-bar-code
89syn keyword sqrCommand print-chart print-direct print-image
90syn keyword sqrCommand printer-deinit printer-init put read
91syn keyword sqrCommand rollback security set-color set-delay-print
92syn keyword sqrCommand set-generations set-levels set-members
93syn keyword sqrCommand sbtombs show stop string subtract toc-entry
94syn keyword sqrCommand unstring uppercase use use-column
95syn keyword sqrCommand use-printer-type use-procedure use-report
96syn keyword sqrCommand while write
97
98syn keyword sqrParam 3d-effects after after-bold after-page
99syn keyword sqrParam after-report after-toc and as at-end before
100syn keyword sqrParam background batch-mode beep before-bold
101syn keyword sqrParam before-page before-report before-toc blink
102syn keyword sqrParam bold border bottom-margin box break by
103syn keyword sqrParam caption center char char-size char-width
104syn keyword sqrParam chars-inch chart-size checksum cl
105syn keyword sqrParam clear-line clear-screen color color-palette
106syn keyword sqrParam cs color_ data-array
107syn keyword sqrParam data-array-column-count
108syn keyword sqrParam data-array-column-labels
109syn keyword sqrParam data-array-row-count data-labels date
110syn keyword sqrParam date-edit-mask date-seperator
111syn keyword sqrParam day-of-week-case day-of-week-full
112syn keyword sqrParam day-of-week-short decimal decimal-seperator
113syn keyword sqrParam default-numeric delay distinct dot-leader
114syn keyword sqrParam edit-option-ad edit-option-am
115syn keyword sqrParam edit-option-bc edit-option-na
116syn keyword sqrParam edit-option-pm encoding entry erase-page
117syn keyword sqrParam extent field fill fixed fixed_nolf float
118syn keyword sqrParam font font-style font-type footing
119syn keyword sqrParam footing-size foreground for-append
120syn keyword sqrParam for-reading for-reports for-tocs
121syn keyword sqrParam for-writing format formfeed from goto-top
122syn keyword sqrParam group having heading heading-size height
123syn keyword sqrParam horz-line image-size in indentation
124syn keyword sqrParam init-string input-date-edit-mask insert
125syn keyword sqrParam integer into item-color item-size key
126syn keyword sqrParam layout left-margin legend legend-placement
127syn keyword sqrParam legend-presentation legend-title level
128syn keyword sqrParam line-height line-size line-width lines-inch
129syn keyword sqrParam local locale loops max-columns max-lines
130syn keyword sqrParam maxlen money money-edit-mask money-sign
131syn keyword sqrParam money-sign-location months-case months-full
132syn keyword sqrParam months-short name need newline newpage
133syn keyword sqrParam no-advance nolf noline noprompt normal not
134syn keyword sqrParam nowait number number-edit-mask on-break
135syn keyword sqrParam on-error or order orientation page-depth
136syn keyword sqrParam paper-size pie-segment-explode
137syn keyword sqrParam pie-segment-percent-display
138syn keyword sqrParam pie-segment-quantity-display pitch
139syn keyword sqrParam point-markers point-size printer
140syn keyword sqrParam printer-type quiet record reset-string
141syn keyword sqrParam return_value reverse right-margin rows save
142syn keyword sqrParam select size skip skiplines sort source
143syn keyword sqrParam sqr-database sqr-platform startup-file
144syn keyword sqrParam status stop sub-title symbol-set system
145syn keyword sqrParam table text thousand-seperator
146syn keyword sqrParam time-seperator times title to toc
147syn keyword sqrParam top-margin type underline update using
148syn keyword sqrParam value vary vert-line wait warn when
149syn keyword sqrParam when-other where with x-axis-grid
150syn keyword sqrParam x-axis-label x-axis-major-increment
151syn keyword sqrParam x-axis-major-tick-marks x-axis-max-value
152syn keyword sqrParam x-axis-min-value x-axis-minor-increment
153syn keyword sqrParam x-axis-minor-tick-marks x-axis-rotate
154syn keyword sqrParam x-axis-scale x-axis-tick-mark-placement xor
155syn keyword sqrParam y-axis-grid y-axis-label
156syn keyword sqrParam y-axis-major-increment
157syn keyword sqrParam y-axis-major-tick-marks y-axis-max-value
158syn keyword sqrParam y-axis-min-value y-axis-minor-increment
159syn keyword sqrParam y-axis-minor-tick-marks y-axis-scale
160syn keyword sqrParam y-axis-tick-mark-placement y2-type
161syn keyword sqrParam y2-data-array y2-data-array-row-count
162syn keyword sqrParam y2-data-array-column-count
163syn keyword sqrParam y2-data-array-column-labels
164syn keyword sqrParam y2-axis-color-palette y2-axis-label
165syn keyword sqrParam y2-axis-major-increment
166syn keyword sqrParam y2-axis-major-tick-marks y2-axis-max-value
167syn keyword sqrParam y2-axis-min-value y2-axis-minor-increment
168syn keyword sqrParam y2-axis-minor-tick-marks y2-axis-scale
169
170syn keyword sqrFunction abs acos asin atan array ascii asciic ceil
171syn keyword sqrFunction cos cosh chr cond deg delete dateadd
172syn keyword sqrFunction datediff datenow datetostr e10 exp edit
173syn keyword sqrFunction exists floor getenv instr instrb isblank
174syn keyword sqrFunction isnull log log10 length lengthb lengthp
175syn keyword sqrFunction lengtht lower lpad ltrim mod nvl power rad
176syn keyword sqrFunction round range replace roman rpad rtrim rename
177syn keyword sqrFunction sign sin sinh sqrt substr substrb substrp
178syn keyword sqrFunction substrt strtodate tan tanh trunc to_char
179syn keyword sqrFunction to_multi_byte to_number to_single_byte
180syn keyword sqrFunction transform translate unicode upper wrapdepth
181
182" END GENERATED SECTION ==============================================
183
184" Variables
185syn match sqrVariable /\(\$\|#\|&\)\(\k\|\.\)*/
186
187
188" Debug compiler directives
189syn match sqrPreProc /\s*#debug\a\=\(\s\|$\)/
190syn match sqrSubstVar /{\k*}/
191
192
193" Strings
194" Note: if an undoubled ! is found, this is not a valid string
195" (SQR will treat the end of the line as a comment)
196syn match sqrString /'\(!!\|[^!']\)*'/ contains=sqrSubstVar
197syn match sqrStrOpen /'\(!!\|''\|[^!']\)*$/
198" If we find a ' followed by an unmatched ! before a matching ',
199" flag the error.
200syn match sqrError /'\(!!\|[^'!]\)*![^!]/me=e-1
201syn match sqrError /'\(!!\|[^'!]\)*!$/
202
203" Numbers:
204syn match sqrNumber /-\=\<\d*\.\=[0-9_]\>/
205
206
207
208" Comments:
209" Handle comments that start with "!=" specially; they are only valid
210" in the first column of the source line. Also, "!!" is only treated
211" as a start-comment if there is only whitespace ahead of it on the line.
212
213syn keyword sqrTodo TODO FIXME XXX DEBUG NOTE ###
214syn match sqrTodo /???/
215
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200216" See also the sqrString section above for handling of ! characters
217" inside of strings. (Those patterns override the ones below.)
218syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
219" the ! can't be preceded by another !,
220" and must be followed by at least one
221" character other than ! or =, or immediately
222" by the end-of-line
223syn match sqrComment /^!=.*/ contains=sqrTodo
224syn match sqrComment /^!!.*/ contains=sqrTodo
225syn match sqrError /^\s\+\zs!=.*/
226" it's an error to have "!=" preceded by
227" just whitespace on the line ("!="
228" preceded by non-whitespace is treated
229" as neither a comment nor an error, since
230" it is often correct, i.e.
231" if #count != 7
232syn match sqrError /.\+\zs!!.*/
233" a "!!" anywhere but at the beginning of
234" the line is always an error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000235
236
237" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200238" Only when an item doesn't have highlighting yet.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000239
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200240hi def link sqrSection Statement
241hi def link sqrParagraph Statement
242hi def link sqrReserved Statement
243hi def link sqrParameter Statement
244hi def link sqrPreProc PreProc
245hi def link sqrSubstVar PreProc
246hi def link sqrCommand Statement
247hi def link sqrParam Type
248hi def link sqrFunction Special
Bram Moolenaar071d4272004-06-13 20:20:40 +0000249
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200250hi def link sqrString String
251hi def link sqrStrOpen Todo
252hi def link sqrNumber Number
253hi def link sqrVariable Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +0000254
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200255hi def link sqrComment Comment
256hi def link sqrTodo Todo
257hi def link sqrError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000258
Bram Moolenaar071d4272004-06-13 20:20:40 +0000259
260let b:current_syntax = "sqr"
261
262" vim: ts=8 sw=2