blob: 87494477922646f35276ed5b7b376067f4635839 [file] [log] [blame]
" Vim syntax file
" Language: Structured Query Report Writer (SQR)
" Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com)
" URL: http://www.ontko.com/sqr/#editor_config_files
"
" Modification History:
" 2002-Apr-12: Updated for SQR v6.x
" 2002-Jul-30: Added { and } to iskeyword definition
" 2003-Oct-15: Allow "." in variable names
" highlight entire open '... literal when it contains
" "''" inside it (e.g. "'I can''t say" is treated
" as one open string, not one terminated and one open)
" {} variables can occur inside of '...' literals
"
" Thanks to the previous maintainer of this file, Jeff Lanzarotta:
" http://lanzarotta.tripod.com/vim.html
" jefflanzarotta at yahoo dot com
" For version 5.x, clear all syntax items.
" For version 6.x, quit when a syntax file was already loaded.
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
if version >= 600
setlocal iskeyword=@,48-57,_,-,#,$,{,}
else
set iskeyword=@,48-57,_,-,#,$,{,}
endif
syn case ignore
" BEGIN GENERATED SECTION ============================================
" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04
" (based on the UltraEdit syntax file for SQR 6.1.4
" found at http://www.ontko.com/sqr/#editor_config_files )
syn keyword sqrSection begin-footing begin-heading begin-procedure
syn keyword sqrSection begin-program begin-report begin-setup
syn keyword sqrSection end-footing end-heading end-procedure
syn keyword sqrSection end-program end-report end-setup
syn keyword sqrParagraph alter-color-map alter-conection
syn keyword sqrParagraph alter-locale alter-printer alter-report
syn keyword sqrParagraph begin-document begin-execute begin-select
syn keyword sqrParagraph begin-sql declare-chart declare-image
syn keyword sqrParagraph declare-color-map declare-conection
syn keyword sqrParagraph declare-layout declare-printer
syn keyword sqrParagraph declare-report declare-procedure
syn keyword sqrParagraph declare-toc declare-variable end-declare
syn keyword sqrParagraph end-document end-select exit-select end-sql
syn keyword sqrParagraph load-lookup
syn keyword sqrReserved #current-column #current-date #current-line
syn keyword sqrReserved #end-file #page-count #return-status
syn keyword sqrReserved #sql-count #sql-status #sqr-max-columns
syn keyword sqrReserved #sqr-max-lines #sqr-pid #sqr-toc-level
syn keyword sqrReserved #sqr-toc-page $sqr-database {sqr-database}
syn keyword sqrReserved $sqr-dbcs {sqr-dbcs} $sqr-encoding
syn keyword sqrReserved {sqr-encoding} $sqr-encoding-console
syn keyword sqrReserved {sqr-encoding-console}
syn keyword sqrReserved $sqr-encoding-database
syn keyword sqrReserved {sqr-encoding-database}
syn keyword sqrReserved $sqr-encoding-file-input
syn keyword sqrReserved {sqr-encoding-file-input}
syn keyword sqrReserved $sqr-encoding-file-output
syn keyword sqrReserved {sqr-encoding-file-output}
syn keyword sqrReserved $sqr-encoding-report-input
syn keyword sqrReserved {sqr-encoding-report-input}
syn keyword sqrReserved $sqr-encoding-report-output
syn keyword sqrReserved {sqr-encoding-report-output}
syn keyword sqrReserved $sqr-encoding-source {sqr-encoding-source}
syn keyword sqrReserved $sql-error $sqr-hostname {sqr-hostname}
syn keyword sqrReserved $sqr-locale $sqr-platform {sqr-platform}
syn keyword sqrReserved $sqr-program $sqr-report $sqr-toc-text
syn keyword sqrReserved $sqr-ver $username
syn keyword sqrPreProc #define #else #end-if #endif #if #ifdef
syn keyword sqrPreProc #ifndef #include
syn keyword sqrCommand add array-add array-divide array-multiply
syn keyword sqrCommand array-subtract ask break call clear-array
syn keyword sqrCommand close columns commit concat connect
syn keyword sqrCommand create-array create-color-palette date-time
syn keyword sqrCommand display divide do dollar-symbol else encode
syn keyword sqrCommand end-evaluate end-if end-while evaluate
syn keyword sqrCommand execute extract find get get-color goto
syn keyword sqrCommand graphic if input last-page let lookup
syn keyword sqrCommand lowercase mbtosbs money-symbol move
syn keyword sqrCommand multiply new-page new-report next-column
syn keyword sqrCommand next-listing no-formfeed open page-number
syn keyword sqrCommand page-size position print print-bar-code
syn keyword sqrCommand print-chart print-direct print-image
syn keyword sqrCommand printer-deinit printer-init put read
syn keyword sqrCommand rollback security set-color set-delay-print
syn keyword sqrCommand set-generations set-levels set-members
syn keyword sqrCommand sbtombs show stop string subtract toc-entry
syn keyword sqrCommand unstring uppercase use use-column
syn keyword sqrCommand use-printer-type use-procedure use-report
syn keyword sqrCommand while write
syn keyword sqrParam 3d-effects after after-bold after-page
syn keyword sqrParam after-report after-toc and as at-end before
syn keyword sqrParam background batch-mode beep before-bold
syn keyword sqrParam before-page before-report before-toc blink
syn keyword sqrParam bold border bottom-margin box break by
syn keyword sqrParam caption center char char-size char-width
syn keyword sqrParam chars-inch chart-size checksum cl
syn keyword sqrParam clear-line clear-screen color color-palette
syn keyword sqrParam cs color_ data-array
syn keyword sqrParam data-array-column-count
syn keyword sqrParam data-array-column-labels
syn keyword sqrParam data-array-row-count data-labels date
syn keyword sqrParam date-edit-mask date-seperator
syn keyword sqrParam day-of-week-case day-of-week-full
syn keyword sqrParam day-of-week-short decimal decimal-seperator
syn keyword sqrParam default-numeric delay distinct dot-leader
syn keyword sqrParam edit-option-ad edit-option-am
syn keyword sqrParam edit-option-bc edit-option-na
syn keyword sqrParam edit-option-pm encoding entry erase-page
syn keyword sqrParam extent field fill fixed fixed_nolf float
syn keyword sqrParam font font-style font-type footing
syn keyword sqrParam footing-size foreground for-append
syn keyword sqrParam for-reading for-reports for-tocs
syn keyword sqrParam for-writing format formfeed from goto-top
syn keyword sqrParam group having heading heading-size height
syn keyword sqrParam horz-line image-size in indentation
syn keyword sqrParam init-string input-date-edit-mask insert
syn keyword sqrParam integer into item-color item-size key
syn keyword sqrParam layout left-margin legend legend-placement
syn keyword sqrParam legend-presentation legend-title level
syn keyword sqrParam line-height line-size line-width lines-inch
syn keyword sqrParam local locale loops max-columns max-lines
syn keyword sqrParam maxlen money money-edit-mask money-sign
syn keyword sqrParam money-sign-location months-case months-full
syn keyword sqrParam months-short name need newline newpage
syn keyword sqrParam no-advance nolf noline noprompt normal not
syn keyword sqrParam nowait number number-edit-mask on-break
syn keyword sqrParam on-error or order orientation page-depth
syn keyword sqrParam paper-size pie-segment-explode
syn keyword sqrParam pie-segment-percent-display
syn keyword sqrParam pie-segment-quantity-display pitch
syn keyword sqrParam point-markers point-size printer
syn keyword sqrParam printer-type quiet record reset-string
syn keyword sqrParam return_value reverse right-margin rows save
syn keyword sqrParam select size skip skiplines sort source
syn keyword sqrParam sqr-database sqr-platform startup-file
syn keyword sqrParam status stop sub-title symbol-set system
syn keyword sqrParam table text thousand-seperator
syn keyword sqrParam time-seperator times title to toc
syn keyword sqrParam top-margin type underline update using
syn keyword sqrParam value vary vert-line wait warn when
syn keyword sqrParam when-other where with x-axis-grid
syn keyword sqrParam x-axis-label x-axis-major-increment
syn keyword sqrParam x-axis-major-tick-marks x-axis-max-value
syn keyword sqrParam x-axis-min-value x-axis-minor-increment
syn keyword sqrParam x-axis-minor-tick-marks x-axis-rotate
syn keyword sqrParam x-axis-scale x-axis-tick-mark-placement xor
syn keyword sqrParam y-axis-grid y-axis-label
syn keyword sqrParam y-axis-major-increment
syn keyword sqrParam y-axis-major-tick-marks y-axis-max-value
syn keyword sqrParam y-axis-min-value y-axis-minor-increment
syn keyword sqrParam y-axis-minor-tick-marks y-axis-scale
syn keyword sqrParam y-axis-tick-mark-placement y2-type
syn keyword sqrParam y2-data-array y2-data-array-row-count
syn keyword sqrParam y2-data-array-column-count
syn keyword sqrParam y2-data-array-column-labels
syn keyword sqrParam y2-axis-color-palette y2-axis-label
syn keyword sqrParam y2-axis-major-increment
syn keyword sqrParam y2-axis-major-tick-marks y2-axis-max-value
syn keyword sqrParam y2-axis-min-value y2-axis-minor-increment
syn keyword sqrParam y2-axis-minor-tick-marks y2-axis-scale
syn keyword sqrFunction abs acos asin atan array ascii asciic ceil
syn keyword sqrFunction cos cosh chr cond deg delete dateadd
syn keyword sqrFunction datediff datenow datetostr e10 exp edit
syn keyword sqrFunction exists floor getenv instr instrb isblank
syn keyword sqrFunction isnull log log10 length lengthb lengthp
syn keyword sqrFunction lengtht lower lpad ltrim mod nvl power rad
syn keyword sqrFunction round range replace roman rpad rtrim rename
syn keyword sqrFunction sign sin sinh sqrt substr substrb substrp
syn keyword sqrFunction substrt strtodate tan tanh trunc to_char
syn keyword sqrFunction to_multi_byte to_number to_single_byte
syn keyword sqrFunction transform translate unicode upper wrapdepth
" END GENERATED SECTION ==============================================
" Variables
syn match sqrVariable /\(\$\|#\|&\)\(\k\|\.\)*/
" Debug compiler directives
syn match sqrPreProc /\s*#debug\a\=\(\s\|$\)/
syn match sqrSubstVar /{\k*}/
" Strings
" Note: if an undoubled ! is found, this is not a valid string
" (SQR will treat the end of the line as a comment)
syn match sqrString /'\(!!\|[^!']\)*'/ contains=sqrSubstVar
syn match sqrStrOpen /'\(!!\|''\|[^!']\)*$/
" If we find a ' followed by an unmatched ! before a matching ',
" flag the error.
syn match sqrError /'\(!!\|[^'!]\)*![^!]/me=e-1
syn match sqrError /'\(!!\|[^'!]\)*!$/
" Numbers:
syn match sqrNumber /-\=\<\d*\.\=[0-9_]\>/
" Comments:
" Handle comments that start with "!=" specially; they are only valid
" in the first column of the source line. Also, "!!" is only treated
" as a start-comment if there is only whitespace ahead of it on the line.
syn keyword sqrTodo TODO FIXME XXX DEBUG NOTE ###
syn match sqrTodo /???/
if version >= 600
" See also the sqrString section above for handling of ! characters
" inside of strings. (Those patterns override the ones below.)
syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
" the ! can't be preceeded by another !,
" and must be followed by at least one
" character other than ! or =, or immediately
" by the end-of-line
syn match sqrComment /^!=.*/ contains=sqrTodo
syn match sqrComment /^!!.*/ contains=sqrTodo
syn match sqrError /^\s\+\zs!=.*/
" it's an error to have "!=" preceeded by
" just whitespace on the line ("!="
" preceeded by non-whitespace is treated
" as neither a comment nor an error, since
" it is often correct, i.e.
" if #count != 7
syn match sqrError /.\+\zs!!.*/
" a "!!" anywhere but at the beginning of
" the line is always an error
else "For versions before 6.0, same idea as above but we are limited
"to simple patterns only. Also, the sqrString patterns above
"don't seem to take precedence in v5 as they do in v6, so
"we split the last rule to ignore comments found inside of
"string literals.
syn match sqrComment /!\([^!=].*\|$\)/ contains=sqrTodo
syn match sqrComment /^!=.*/ contains=sqrTodo
syn match sqrComment /^!!.*/ contains=sqrTodo
syn match sqrError /^\s\+!=.*/
syn match sqrError /^[^'!]\+!!/
" flag !! on lines that don't have ! or '
syn match sqrError /^\([^!']*'[^']*'[^!']*\)\+!!/
" flag !! found after matched ' ' chars
" (that aren't also commented)
endif
" Define the default highlighting.
" For version 5.7 and earlier, only when not done already.
" For version 5.8 and later, only when an item doesn;t have hightlighting yet.
if version >= 508 || !exists("did_sqr_syn_inits")
if version < 508
let did_sqr_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink sqrSection Statement
HiLink sqrParagraph Statement
HiLink sqrReserved Statement
HiLink sqrParameter Statement
HiLink sqrPreProc PreProc
HiLink sqrSubstVar PreProc
HiLink sqrCommand Statement
HiLink sqrParam Type
HiLink sqrFunction Special
HiLink sqrString String
HiLink sqrStrOpen Todo
HiLink sqrNumber Number
HiLink sqrVariable Identifier
HiLink sqrComment Comment
HiLink sqrTodo Todo
HiLink sqrError Error
delcommand HiLink
endif
let b:current_syntax = "sqr"
" vim: ts=8 sw=2