1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Structured Query Report Writer (SQR) 3071d4279SBram Moolenaar" Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com) 4071d4279SBram Moolenaar" URL: http://www.ontko.com/sqr/#editor_config_files 5071d4279SBram Moolenaar" 6071d4279SBram Moolenaar" Modification History: 7071d4279SBram Moolenaar" 2002-Apr-12: Updated for SQR v6.x 8071d4279SBram Moolenaar" 2002-Jul-30: Added { and } to iskeyword definition 9071d4279SBram Moolenaar" 2003-Oct-15: Allow "." in variable names 10071d4279SBram Moolenaar" highlight entire open '... literal when it contains 11071d4279SBram Moolenaar" "''" inside it (e.g. "'I can''t say" is treated 12071d4279SBram Moolenaar" as one open string, not one terminated and one open) 13071d4279SBram Moolenaar" {} variables can occur inside of '...' literals 14071d4279SBram Moolenaar" 15071d4279SBram Moolenaar" Thanks to the previous maintainer of this file, Jeff Lanzarotta: 16071d4279SBram Moolenaar" http://lanzarotta.tripod.com/vim.html 17071d4279SBram Moolenaar" jefflanzarotta at yahoo dot com 18071d4279SBram Moolenaar 1989bcfda6SBram Moolenaar" quit when a syntax file was already loaded 2089bcfda6SBram Moolenaarif exists("b:current_syntax") 21071d4279SBram Moolenaar finish 22071d4279SBram Moolenaarendif 23071d4279SBram Moolenaar 24071d4279SBram Moolenaarsetlocal iskeyword=@,48-57,_,-,#,$,{,} 25071d4279SBram Moolenaar 26071d4279SBram Moolenaarsyn case ignore 27071d4279SBram Moolenaar 28071d4279SBram Moolenaar" BEGIN GENERATED SECTION ============================================ 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04 31071d4279SBram Moolenaar" (based on the UltraEdit syntax file for SQR 6.1.4 32071d4279SBram Moolenaar" found at http://www.ontko.com/sqr/#editor_config_files ) 33071d4279SBram Moolenaar 34071d4279SBram Moolenaarsyn keyword sqrSection begin-footing begin-heading begin-procedure 35071d4279SBram Moolenaarsyn keyword sqrSection begin-program begin-report begin-setup 36071d4279SBram Moolenaarsyn keyword sqrSection end-footing end-heading end-procedure 37071d4279SBram Moolenaarsyn keyword sqrSection end-program end-report end-setup 38071d4279SBram Moolenaar 391514667aSBram Moolenaarsyn keyword sqrParagraph alter-color-map alter-connection 40071d4279SBram Moolenaarsyn keyword sqrParagraph alter-locale alter-printer alter-report 41071d4279SBram Moolenaarsyn keyword sqrParagraph begin-document begin-execute begin-select 42071d4279SBram Moolenaarsyn keyword sqrParagraph begin-sql declare-chart declare-image 431514667aSBram Moolenaarsyn keyword sqrParagraph declare-color-map declare-connection 44071d4279SBram Moolenaarsyn keyword sqrParagraph declare-layout declare-printer 45071d4279SBram Moolenaarsyn keyword sqrParagraph declare-report declare-procedure 46071d4279SBram Moolenaarsyn keyword sqrParagraph declare-toc declare-variable end-declare 47071d4279SBram Moolenaarsyn keyword sqrParagraph end-document end-select exit-select end-sql 48071d4279SBram Moolenaarsyn keyword sqrParagraph load-lookup 49071d4279SBram Moolenaar 50071d4279SBram Moolenaarsyn keyword sqrReserved #current-column #current-date #current-line 51071d4279SBram Moolenaarsyn keyword sqrReserved #end-file #page-count #return-status 52071d4279SBram Moolenaarsyn keyword sqrReserved #sql-count #sql-status #sqr-max-columns 53071d4279SBram Moolenaarsyn keyword sqrReserved #sqr-max-lines #sqr-pid #sqr-toc-level 54071d4279SBram Moolenaarsyn keyword sqrReserved #sqr-toc-page $sqr-database {sqr-database} 55071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-dbcs {sqr-dbcs} $sqr-encoding 56071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding} $sqr-encoding-console 57071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding-console} 58071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-encoding-database 59071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding-database} 60071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-encoding-file-input 61071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding-file-input} 62071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-encoding-file-output 63071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding-file-output} 64071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-encoding-report-input 65071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding-report-input} 66071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-encoding-report-output 67071d4279SBram Moolenaarsyn keyword sqrReserved {sqr-encoding-report-output} 68071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-encoding-source {sqr-encoding-source} 69071d4279SBram Moolenaarsyn keyword sqrReserved $sql-error $sqr-hostname {sqr-hostname} 70071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-locale $sqr-platform {sqr-platform} 71071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-program $sqr-report $sqr-toc-text 72071d4279SBram Moolenaarsyn keyword sqrReserved $sqr-ver $username 73071d4279SBram Moolenaar 74071d4279SBram Moolenaarsyn keyword sqrPreProc #define #else #end-if #endif #if #ifdef 75071d4279SBram Moolenaarsyn keyword sqrPreProc #ifndef #include 76071d4279SBram Moolenaar 77071d4279SBram Moolenaarsyn keyword sqrCommand add array-add array-divide array-multiply 78071d4279SBram Moolenaarsyn keyword sqrCommand array-subtract ask break call clear-array 79071d4279SBram Moolenaarsyn keyword sqrCommand close columns commit concat connect 80071d4279SBram Moolenaarsyn keyword sqrCommand create-array create-color-palette date-time 81071d4279SBram Moolenaarsyn keyword sqrCommand display divide do dollar-symbol else encode 82071d4279SBram Moolenaarsyn keyword sqrCommand end-evaluate end-if end-while evaluate 83071d4279SBram Moolenaarsyn keyword sqrCommand execute extract find get get-color goto 84071d4279SBram Moolenaarsyn keyword sqrCommand graphic if input last-page let lookup 85071d4279SBram Moolenaarsyn keyword sqrCommand lowercase mbtosbs money-symbol move 86071d4279SBram Moolenaarsyn keyword sqrCommand multiply new-page new-report next-column 87071d4279SBram Moolenaarsyn keyword sqrCommand next-listing no-formfeed open page-number 88071d4279SBram Moolenaarsyn keyword sqrCommand page-size position print print-bar-code 89071d4279SBram Moolenaarsyn keyword sqrCommand print-chart print-direct print-image 90071d4279SBram Moolenaarsyn keyword sqrCommand printer-deinit printer-init put read 91071d4279SBram Moolenaarsyn keyword sqrCommand rollback security set-color set-delay-print 92071d4279SBram Moolenaarsyn keyword sqrCommand set-generations set-levels set-members 93071d4279SBram Moolenaarsyn keyword sqrCommand sbtombs show stop string subtract toc-entry 94071d4279SBram Moolenaarsyn keyword sqrCommand unstring uppercase use use-column 95071d4279SBram Moolenaarsyn keyword sqrCommand use-printer-type use-procedure use-report 96071d4279SBram Moolenaarsyn keyword sqrCommand while write 97071d4279SBram Moolenaar 98071d4279SBram Moolenaarsyn keyword sqrParam 3d-effects after after-bold after-page 99071d4279SBram Moolenaarsyn keyword sqrParam after-report after-toc and as at-end before 100071d4279SBram Moolenaarsyn keyword sqrParam background batch-mode beep before-bold 101071d4279SBram Moolenaarsyn keyword sqrParam before-page before-report before-toc blink 102071d4279SBram Moolenaarsyn keyword sqrParam bold border bottom-margin box break by 103071d4279SBram Moolenaarsyn keyword sqrParam caption center char char-size char-width 104071d4279SBram Moolenaarsyn keyword sqrParam chars-inch chart-size checksum cl 105071d4279SBram Moolenaarsyn keyword sqrParam clear-line clear-screen color color-palette 106071d4279SBram Moolenaarsyn keyword sqrParam cs color_ data-array 107071d4279SBram Moolenaarsyn keyword sqrParam data-array-column-count 108071d4279SBram Moolenaarsyn keyword sqrParam data-array-column-labels 109071d4279SBram Moolenaarsyn keyword sqrParam data-array-row-count data-labels date 110071d4279SBram Moolenaarsyn keyword sqrParam date-edit-mask date-seperator 111071d4279SBram Moolenaarsyn keyword sqrParam day-of-week-case day-of-week-full 112071d4279SBram Moolenaarsyn keyword sqrParam day-of-week-short decimal decimal-seperator 113071d4279SBram Moolenaarsyn keyword sqrParam default-numeric delay distinct dot-leader 114071d4279SBram Moolenaarsyn keyword sqrParam edit-option-ad edit-option-am 115071d4279SBram Moolenaarsyn keyword sqrParam edit-option-bc edit-option-na 116071d4279SBram Moolenaarsyn keyword sqrParam edit-option-pm encoding entry erase-page 117071d4279SBram Moolenaarsyn keyword sqrParam extent field fill fixed fixed_nolf float 118071d4279SBram Moolenaarsyn keyword sqrParam font font-style font-type footing 119071d4279SBram Moolenaarsyn keyword sqrParam footing-size foreground for-append 120071d4279SBram Moolenaarsyn keyword sqrParam for-reading for-reports for-tocs 121071d4279SBram Moolenaarsyn keyword sqrParam for-writing format formfeed from goto-top 122071d4279SBram Moolenaarsyn keyword sqrParam group having heading heading-size height 123071d4279SBram Moolenaarsyn keyword sqrParam horz-line image-size in indentation 124071d4279SBram Moolenaarsyn keyword sqrParam init-string input-date-edit-mask insert 125071d4279SBram Moolenaarsyn keyword sqrParam integer into item-color item-size key 126071d4279SBram Moolenaarsyn keyword sqrParam layout left-margin legend legend-placement 127071d4279SBram Moolenaarsyn keyword sqrParam legend-presentation legend-title level 128071d4279SBram Moolenaarsyn keyword sqrParam line-height line-size line-width lines-inch 129071d4279SBram Moolenaarsyn keyword sqrParam local locale loops max-columns max-lines 130071d4279SBram Moolenaarsyn keyword sqrParam maxlen money money-edit-mask money-sign 131071d4279SBram Moolenaarsyn keyword sqrParam money-sign-location months-case months-full 132071d4279SBram Moolenaarsyn keyword sqrParam months-short name need newline newpage 133071d4279SBram Moolenaarsyn keyword sqrParam no-advance nolf noline noprompt normal not 134071d4279SBram Moolenaarsyn keyword sqrParam nowait number number-edit-mask on-break 135071d4279SBram Moolenaarsyn keyword sqrParam on-error or order orientation page-depth 136071d4279SBram Moolenaarsyn keyword sqrParam paper-size pie-segment-explode 137071d4279SBram Moolenaarsyn keyword sqrParam pie-segment-percent-display 138071d4279SBram Moolenaarsyn keyword sqrParam pie-segment-quantity-display pitch 139071d4279SBram Moolenaarsyn keyword sqrParam point-markers point-size printer 140071d4279SBram Moolenaarsyn keyword sqrParam printer-type quiet record reset-string 141071d4279SBram Moolenaarsyn keyword sqrParam return_value reverse right-margin rows save 142071d4279SBram Moolenaarsyn keyword sqrParam select size skip skiplines sort source 143071d4279SBram Moolenaarsyn keyword sqrParam sqr-database sqr-platform startup-file 144071d4279SBram Moolenaarsyn keyword sqrParam status stop sub-title symbol-set system 145071d4279SBram Moolenaarsyn keyword sqrParam table text thousand-seperator 146071d4279SBram Moolenaarsyn keyword sqrParam time-seperator times title to toc 147071d4279SBram Moolenaarsyn keyword sqrParam top-margin type underline update using 148071d4279SBram Moolenaarsyn keyword sqrParam value vary vert-line wait warn when 149071d4279SBram Moolenaarsyn keyword sqrParam when-other where with x-axis-grid 150071d4279SBram Moolenaarsyn keyword sqrParam x-axis-label x-axis-major-increment 151071d4279SBram Moolenaarsyn keyword sqrParam x-axis-major-tick-marks x-axis-max-value 152071d4279SBram Moolenaarsyn keyword sqrParam x-axis-min-value x-axis-minor-increment 153071d4279SBram Moolenaarsyn keyword sqrParam x-axis-minor-tick-marks x-axis-rotate 154071d4279SBram Moolenaarsyn keyword sqrParam x-axis-scale x-axis-tick-mark-placement xor 155071d4279SBram Moolenaarsyn keyword sqrParam y-axis-grid y-axis-label 156071d4279SBram Moolenaarsyn keyword sqrParam y-axis-major-increment 157071d4279SBram Moolenaarsyn keyword sqrParam y-axis-major-tick-marks y-axis-max-value 158071d4279SBram Moolenaarsyn keyword sqrParam y-axis-min-value y-axis-minor-increment 159071d4279SBram Moolenaarsyn keyword sqrParam y-axis-minor-tick-marks y-axis-scale 160071d4279SBram Moolenaarsyn keyword sqrParam y-axis-tick-mark-placement y2-type 161071d4279SBram Moolenaarsyn keyword sqrParam y2-data-array y2-data-array-row-count 162071d4279SBram Moolenaarsyn keyword sqrParam y2-data-array-column-count 163071d4279SBram Moolenaarsyn keyword sqrParam y2-data-array-column-labels 164071d4279SBram Moolenaarsyn keyword sqrParam y2-axis-color-palette y2-axis-label 165071d4279SBram Moolenaarsyn keyword sqrParam y2-axis-major-increment 166071d4279SBram Moolenaarsyn keyword sqrParam y2-axis-major-tick-marks y2-axis-max-value 167071d4279SBram Moolenaarsyn keyword sqrParam y2-axis-min-value y2-axis-minor-increment 168071d4279SBram Moolenaarsyn keyword sqrParam y2-axis-minor-tick-marks y2-axis-scale 169071d4279SBram Moolenaar 170071d4279SBram Moolenaarsyn keyword sqrFunction abs acos asin atan array ascii asciic ceil 171071d4279SBram Moolenaarsyn keyword sqrFunction cos cosh chr cond deg delete dateadd 172071d4279SBram Moolenaarsyn keyword sqrFunction datediff datenow datetostr e10 exp edit 173071d4279SBram Moolenaarsyn keyword sqrFunction exists floor getenv instr instrb isblank 174071d4279SBram Moolenaarsyn keyword sqrFunction isnull log log10 length lengthb lengthp 175071d4279SBram Moolenaarsyn keyword sqrFunction lengtht lower lpad ltrim mod nvl power rad 176071d4279SBram Moolenaarsyn keyword sqrFunction round range replace roman rpad rtrim rename 177071d4279SBram Moolenaarsyn keyword sqrFunction sign sin sinh sqrt substr substrb substrp 178071d4279SBram Moolenaarsyn keyword sqrFunction substrt strtodate tan tanh trunc to_char 179071d4279SBram Moolenaarsyn keyword sqrFunction to_multi_byte to_number to_single_byte 180071d4279SBram Moolenaarsyn keyword sqrFunction transform translate unicode upper wrapdepth 181071d4279SBram Moolenaar 182071d4279SBram Moolenaar" END GENERATED SECTION ============================================== 183071d4279SBram Moolenaar 184071d4279SBram Moolenaar" Variables 185071d4279SBram Moolenaarsyn match sqrVariable /\(\$\|#\|&\)\(\k\|\.\)*/ 186071d4279SBram Moolenaar 187071d4279SBram Moolenaar 188071d4279SBram Moolenaar" Debug compiler directives 189071d4279SBram Moolenaarsyn match sqrPreProc /\s*#debug\a\=\(\s\|$\)/ 190071d4279SBram Moolenaarsyn match sqrSubstVar /{\k*}/ 191071d4279SBram Moolenaar 192071d4279SBram Moolenaar 193071d4279SBram Moolenaar" Strings 194071d4279SBram Moolenaar" Note: if an undoubled ! is found, this is not a valid string 195071d4279SBram Moolenaar" (SQR will treat the end of the line as a comment) 196071d4279SBram Moolenaarsyn match sqrString /'\(!!\|[^!']\)*'/ contains=sqrSubstVar 197071d4279SBram Moolenaarsyn match sqrStrOpen /'\(!!\|''\|[^!']\)*$/ 198071d4279SBram Moolenaar" If we find a ' followed by an unmatched ! before a matching ', 199071d4279SBram Moolenaar" flag the error. 200071d4279SBram Moolenaarsyn match sqrError /'\(!!\|[^'!]\)*![^!]/me=e-1 201071d4279SBram Moolenaarsyn match sqrError /'\(!!\|[^'!]\)*!$/ 202071d4279SBram Moolenaar 203071d4279SBram Moolenaar" Numbers: 204071d4279SBram Moolenaarsyn match sqrNumber /-\=\<\d*\.\=[0-9_]\>/ 205071d4279SBram Moolenaar 206071d4279SBram Moolenaar 207071d4279SBram Moolenaar 208071d4279SBram Moolenaar" Comments: 209071d4279SBram Moolenaar" Handle comments that start with "!=" specially; they are only valid 210071d4279SBram Moolenaar" in the first column of the source line. Also, "!!" is only treated 211071d4279SBram Moolenaar" as a start-comment if there is only whitespace ahead of it on the line. 212071d4279SBram Moolenaar 213071d4279SBram Moolenaarsyn keyword sqrTodo TODO FIXME XXX DEBUG NOTE ### 214071d4279SBram Moolenaarsyn match sqrTodo /???/ 215071d4279SBram Moolenaar 216071d4279SBram Moolenaar" See also the sqrString section above for handling of ! characters 217071d4279SBram Moolenaar" inside of strings. (Those patterns override the ones below.) 218071d4279SBram Moolenaarsyn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo 2191514667aSBram Moolenaar" the ! can't be preceded by another !, 220071d4279SBram Moolenaar" and must be followed by at least one 221071d4279SBram Moolenaar" character other than ! or =, or immediately 222071d4279SBram Moolenaar" by the end-of-line 223071d4279SBram Moolenaarsyn match sqrComment /^!=.*/ contains=sqrTodo 224071d4279SBram Moolenaarsyn match sqrComment /^!!.*/ contains=sqrTodo 225071d4279SBram Moolenaarsyn match sqrError /^\s\+\zs!=.*/ 2261514667aSBram Moolenaar" it's an error to have "!=" preceded by 227071d4279SBram Moolenaar" just whitespace on the line ("!=" 2281514667aSBram Moolenaar" preceded by non-whitespace is treated 229071d4279SBram Moolenaar" as neither a comment nor an error, since 230071d4279SBram Moolenaar" it is often correct, i.e. 231071d4279SBram Moolenaar" if #count != 7 232071d4279SBram Moolenaarsyn match sqrError /.\+\zs!!.*/ 233071d4279SBram Moolenaar" a "!!" anywhere but at the beginning of 234071d4279SBram Moolenaar" the line is always an error 235071d4279SBram Moolenaar 236071d4279SBram Moolenaar 237071d4279SBram Moolenaar" Define the default highlighting. 23889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet. 239071d4279SBram Moolenaar 240*f37506f6SBram Moolenaarhi def link sqrSection Statement 241*f37506f6SBram Moolenaarhi def link sqrParagraph Statement 242*f37506f6SBram Moolenaarhi def link sqrReserved Statement 243*f37506f6SBram Moolenaarhi def link sqrParameter Statement 244*f37506f6SBram Moolenaarhi def link sqrPreProc PreProc 245*f37506f6SBram Moolenaarhi def link sqrSubstVar PreProc 246*f37506f6SBram Moolenaarhi def link sqrCommand Statement 247*f37506f6SBram Moolenaarhi def link sqrParam Type 248*f37506f6SBram Moolenaarhi def link sqrFunction Special 249071d4279SBram Moolenaar 250*f37506f6SBram Moolenaarhi def link sqrString String 251*f37506f6SBram Moolenaarhi def link sqrStrOpen Todo 252*f37506f6SBram Moolenaarhi def link sqrNumber Number 253*f37506f6SBram Moolenaarhi def link sqrVariable Identifier 254071d4279SBram Moolenaar 255*f37506f6SBram Moolenaarhi def link sqrComment Comment 256*f37506f6SBram Moolenaarhi def link sqrTodo Todo 257*f37506f6SBram Moolenaarhi def link sqrError Error 258071d4279SBram Moolenaar 259071d4279SBram Moolenaar 260071d4279SBram Moolenaarlet b:current_syntax = "sqr" 261071d4279SBram Moolenaar 262071d4279SBram Moolenaar" vim: ts=8 sw=2 263