" Vim syntax file " Language: rosi SQL 4GL by Halstenbach ACT (www.halstenbach.de) " Maintainer: Klaus Muth , Matthias Reich " Gerald Schnabel " Last change: 2008 Nov 18 " URL: http://www.hampft.de/vim/syntax/rosisql.vim " Remove any old syntax stuff hanging around syn clear syn case ignore " Keywords: lots of! syn keyword rosiStatement abort abortstatus absolute actions after and syn keyword rosiStatement arg argcount attribute auto bell blankfill syn keyword rosiStatement blink break call case catoffset catstatus syn keyword rosiStatement cattable catuser chain chaoffset coldim syn keyword rosiStatement coloff colpos comment constant continue syn keyword rosiStatement current database date else end enter exception syn keyword rosiStatement export fatal field fillchar form goto help if syn keyword rosiStatement import init lastcolpos left length let syn keyword rosiStatement like lindim line linoff menu module move syn keyword rosiStatement need next not null off on otherwise syn keyword rosiStatement parameter path pause perform phycoldim syn keyword rosiStatement picture pos position proc procedure syn keyword rosiStatement range read refresh removed required retry syn keyword rosiStatement return returning reverse right scrcoldim screen syn keyword rosiStatement screndcol scrlindim scrlinoff scroll syn keyword rosiStatement secret shell sqlerror sqlstatus stop switch syn keyword rosiStatement syserror syskey sysstatus system use syn keyword rosiStatement write syn keyword rosiPrintStatement print skip nextpage syn match rosiPrintStatement "\(\\|\\|\\|\\|\\)\s\+\" syn keyword rosiPrintVars linecounter pagenumber syn match rosiPrintVars "\" syn match rosiLabel "^\k\+:" syn region rosiPreProc start="^\s*#\s*\(include\>\|if\>\|ifdef\>\|ifndef\>\|elseif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rosiComment,rosiString,rosicNumber syn keyword rosiConditional switch case otherwise syn keyword rosiRepeat for to step syn keyword rosiRepeat repeat until while syn keyword rosiFunction clipped getchar instring matches picture strlen syn keyword rosiFunction cexpand downshift getstr putchar putfield putstr syn keyword rosiFunction upshift sysdate systime abs compute int is syn keyword rosiFunction range round breakpoint environment gettime syn keyword rosiFunction pause bell on off inkey syn keyword rosiTodo contained TODO syn match rosiScreenTag "[<(][^<>()]*[>)]" contained syn region rosiScreen start="^screen" end="\" contains=rosiScreenTag " Reports: syn match rosiReport "\" syn match rosiReport "\" syn match rosiReportStatement "\" syn match rosiReportStatement "\" syn match rosiReportStatement "\" syn match rosiReportStatement "\" syn match rosiReportStatement "\(\\|\\)\s\+\" syn match rosiReportStatement "\(\\|\\)\s\+\" syn match rosiSpecial +\\[A-Z\\]+ contained "syn match rosiSpecial +\\"[^#]*"+he=s+1 contained syn region rosiString start=+"+ end=+"+ contains=rosiSpecial "keepend skip=+\\\\\|\\"+ syn match rosiIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>" syn match rosiDelimiter "[()]" syn match rosiNumber "-\=\<[0-9]\+\>" syn match rosiFunction "\(\\|\\|\\|\\|\\)\(.*\>\)\=.*\\(.*\\|\\)\=\(.*\\)\=" syn match rosiFunction "\(\\)\(.*\\)\=.*\(\\|\\|\\|\\|\\|\\|\\)\=" syn match rosiFunction "\(\\|\\|\\|\\|\\)\(.*\\)\(.*\\)\=\(.*\\)\=\(.*\\|\\|\\)\=\(.*\\|\\)\=" syn match rosiFunction "\(\\|\\|\\|\\|\\|\\)\(.*\(\\|\\)\=\).*\" syn match rosiFunction "\(\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\)\(.*\\)" syn match rosiError +\\$+ contained syn region rosiComment start="/\*" end="\*/" contains=rosiTodo syn region rosiComment start="//" end="$" contains=rosiTodo,rosiError syn include @Sql :p:h/../syntax/sql.vim syn match rosiSqlHash "[#$]\S\+" contained "syn keyword rosiSqlDelimiter sql end syn region rosiSql start=+\+hs=e+1 end=+\+he=s-1 contains=@Sql,rosiSqlHash keepend syn match rosiOperator "group[ \t]\+value" syn match rosiOperator "status[ \t]\+\(enter\|cursor\)" syn match rosiOperator "query[ \t]\+from" syn match rosiOperator "status[ \t]\+query[ \t]\+\(from\|form\)" syn match rosiOperator "status[ \t]\+concat\(enate\)\=[ \t]\+file" syn match rosiStatement "\" " Errors in *.err Files are marked with ".FEHLER" in the first column syn case match syn match rosiError "^\.FEHLER .*" syn case ignore syn keyword rosiType char integer smallint smallfloat float date decimal syn keyword rosiType value money null table database constant data syn keyword rosiType datetime interval " there are quite a lot of keywords, so hold syncing tight! syn sync ccomment rosiComment minlines=25 maxlines=100 if !exists("did_rosisql_syntax_inits") let did_rosisql_syntax_inits = 1 " The default methods for highlighting. Can be overridden later hi link rosiStatement Statement hi link rosiPrintStatement rosiStatement hi link rosiPrintVars rosiStatement hi link rosiReport Statement hi link rosiReportStatement rosiReport hi link rosiPreProc PreProc hi link rosiLabel Label hi link rosiConditional Conditional hi link rosiRepeat Repeat hi link rosiTodo Todo hi link rosiSql Normal hi link rosiSqlHash Identifier hi link rosiSqlDelimiter Statement hi link rosiSpecial Special hi link rosiString String hi link rosiNumber Number hi link rosiByte Number hi link rosiOperator Operator hi link rosiFunction Function hi link rosiType Type hi link rosiComment Comment hi link rosiError Error hi link rosiScreenTag Special hi link rosiScreen Constant "optional highlighting "hi link rosiDelimiter Identifier "hi link rosiIdentifier Identifier endif let b:current_syntax = "rosisql" " vim: ts=8