aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/sas.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-07-11 04:05:51 +0000
committerJustin M. Keyes <justinkz@gmail.com>2014-07-29 02:12:31 +0000
commita98a6996c291b3e300d27b791eded9eed333d677 (patch)
tree51d92f6cac128f938cd0aaa9a8dd0ce7a83d63a9 /runtime/syntax/sas.vim
parent66bc13163398786c88e20b7cdd61c66978b4d3fb (diff)
downloadrneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.gz
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.bz2
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.zip
re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
Diffstat (limited to 'runtime/syntax/sas.vim')
-rw-r--r--runtime/syntax/sas.vim284
1 files changed, 284 insertions, 0 deletions
diff --git a/runtime/syntax/sas.vim b/runtime/syntax/sas.vim
new file mode 100644
index 0000000000..dc70e1fd90
--- /dev/null
+++ b/runtime/syntax/sas.vim
@@ -0,0 +1,284 @@
+" Vim syntax file
+" Language: SAS
+" Maintainer: James Kidd <james.kidd@covance.com>
+" Last Change: 2012 Apr 20
+" Corrected bug causing some keywords to appear as strings instead
+" 18 Jul 2008 by Paulo Tanimoto <ptanimoto@gmail.com>
+" Fixed comments with * taking multiple lines.
+" Fixed highlighting of macro keywords.
+" Added words to cases that didn't fit anywhere.
+" 02 Jun 2003
+" Added highlighting for additional keywords and such;
+" Attempted to match SAS default syntax colors;
+" Changed syncing so it doesn't lose colors on large blocks;
+" Much thanks to Bob Heckel for knowledgeable tweaking.
+" 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
+
+syn case ignore
+
+syn region sasString start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn region sasString start=+'+ skip=+\\\\\|\\"+ end=+'+
+
+" Want region from 'cards;' to ';' to be captured (Bob Heckel)
+syn region sasCards start="^\s*CARDS.*" end="^\s*;\s*$"
+syn region sasCards start="^\s*DATALINES.*" end="^\s*;\s*$"
+
+syn match sasNumber "-\=\<\d*\.\=[0-9_]\>"
+
+" Block comment
+syn region sasComment start="/\*" end="\*/" contains=sasTodo
+
+" Ignore misleading //JCL SYNTAX... (Bob Heckel)
+syn region sasComment start="[^/][^/]/\*" end="\*/" contains=sasTodo
+
+" Previous code for comments was written by Bob Heckel
+" Comments with * may take multiple lines (Paulo Tanimoto)
+syn region sasComment start=";\s*\*"hs=s+1 end=";" contains=sasTodo
+
+" Comments with * starting after a semicolon (Paulo Tanimoto)
+syn region sasComment start="^\s*\*" end=";" contains=sasTodo
+
+" This line defines macro variables in code. HiLink at end of file
+" defines the color scheme. Begin region with ampersand and end with
+" any non-word character offset by -1; put ampersand in the skip list
+" just in case it is used to concatenate macro variable values.
+
+" Thanks to ronald höllwarth for this fix to an intra-versioning
+" problem with this little feature
+
+if version < 600
+ syn region sasMacroVar start="\&" skip="[_&]" end="\W"he=e-1
+else " for the older Vim's just do it their way ...
+ syn region sasMacroVar start="&" skip="[_&]" end="\W"he=e-1
+endif
+
+
+" I dont think specific PROCs need to be listed if use this line (Bob Heckel).
+syn match sasProc "^\s*PROC \w\+"
+syn keyword sasStep RUN QUIT DATA
+
+
+" Base SAS Procs - version 8.1
+
+syn keyword sasConditional DO ELSE END IF THEN UNTIL WHILE
+
+syn keyword sasStatement ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME
+syn keyword sasStatement CONTINUE DATALINES DATALINES4 DELETE DISPLAY
+syn keyword sasStatement DM DROP ENDSAS ERROR FILE FILENAME FOOTNOTE
+syn keyword sasStatement FORMAT GOTO INFILE INFORMAT INPUT KEEP
+syn keyword sasStatement LABEL LEAVE LENGTH LIBNAME LINK LIST LOSTCARD
+syn keyword sasStatement MERGE MISSING MODIFY OPTIONS OUTPUT PAGE
+syn keyword sasStatement PUT REDIRECT REMOVE RENAME REPLACE RETAIN
+syn keyword sasStatement RETURN SELECT SET SKIP STARTSAS STOP TITLE
+syn keyword sasStatement UPDATE WAITSAS WHERE WINDOW X SYSTASK
+
+" Keywords that are used in Proc SQL
+" I left them as statements because SAS's enhanced editor highlights
+" them the same as normal statements used in data steps (Jim Kidd)
+
+syn keyword sasStatement ADD AND ALTER AS CASCADE CHECK CREATE
+syn keyword sasStatement DELETE DESCRIBE DISTINCT DROP FOREIGN
+syn keyword sasStatement FROM GROUP HAVING INDEX INSERT INTO IN
+syn keyword sasStatement KEY LIKE MESSAGE MODIFY MSGTYPE NOT
+syn keyword sasStatement NULL ON OR ORDER PRIMARY REFERENCES
+syn keyword sasStatement RESET RESTRICT SELECT SET TABLE
+syn keyword sasStatement UNIQUE UPDATE VALIDATE VIEW WHERE
+
+" Match declarations have to appear one per line (Paulo Tanimoto)
+syn match sasStatement "FOOTNOTE\d"
+syn match sasStatement "TITLE\d"
+
+" Match declarations have to appear one per line (Paulo Tanimoto)
+syn match sasMacro "%BQUOTE"
+syn match sasMacro "%NRBQUOTE"
+syn match sasMacro "%CMPRES"
+syn match sasMacro "%QCMPRES"
+syn match sasMacro "%COMPSTOR"
+syn match sasMacro "%DATATYP"
+syn match sasMacro "%DISPLAY"
+syn match sasMacro "%DO"
+syn match sasMacro "%ELSE"
+syn match sasMacro "%END"
+syn match sasMacro "%EVAL"
+syn match sasMacro "%GLOBAL"
+syn match sasMacro "%GOTO"
+syn match sasMacro "%IF"
+syn match sasMacro "%INDEX"
+syn match sasMacro "%INPUT"
+syn match sasMacro "%KEYDEF"
+syn match sasMacro "%LABEL"
+syn match sasMacro "%LEFT"
+syn match sasMacro "%LENGTH"
+syn match sasMacro "%LET"
+syn match sasMacro "%LOCAL"
+syn match sasMacro "%LOWCASE"
+syn match sasMacro "%MACRO"
+syn match sasMacro "%MEND"
+syn match sasMacro "%NRBQUOTE"
+syn match sasMacro "%NRQUOTE"
+syn match sasMacro "%NRSTR"
+syn match sasMacro "%PUT"
+syn match sasMacro "%QCMPRES"
+syn match sasMacro "%QLEFT"
+syn match sasMacro "%QLOWCASE"
+syn match sasMacro "%QSCAN"
+syn match sasMacro "%QSUBSTR"
+syn match sasMacro "%QSYSFUNC"
+syn match sasMacro "%QTRIM"
+syn match sasMacro "%QUOTE"
+syn match sasMacro "%QUPCASE"
+syn match sasMacro "%SCAN"
+syn match sasMacro "%STR"
+syn match sasMacro "%SUBSTR"
+syn match sasMacro "%SUPERQ"
+syn match sasMacro "%SYSCALL"
+syn match sasMacro "%SYSEVALF"
+syn match sasMacro "%SYSEXEC"
+syn match sasMacro "%SYSFUNC"
+syn match sasMacro "%SYSGET"
+syn match sasMacro "%SYSLPUT"
+syn match sasMacro "%SYSPROD"
+syn match sasMacro "%SYSRC"
+syn match sasMacro "%SYSRPUT"
+syn match sasMacro "%THEN"
+syn match sasMacro "%TO"
+syn match sasMacro "%TRIM"
+syn match sasMacro "%UNQUOTE"
+syn match sasMacro "%UNTIL"
+syn match sasMacro "%UPCASE"
+syn match sasMacro "%VERIFY"
+syn match sasMacro "%WHILE"
+syn match sasMacro "%WINDOW"
+
+" SAS Functions
+
+syn keyword sasFunction ABS ADDR AIRY ARCOS ARSIN ATAN ATTRC ATTRN
+syn keyword sasFunction BAND BETAINV BLSHIFT BNOT BOR BRSHIFT BXOR
+syn keyword sasFunction BYTE CDF CEIL CEXIST CINV CLOSE CNONCT COLLATE
+syn keyword sasFunction COMPBL COMPOUND COMPRESS COS COSH CSS CUROBS
+syn keyword sasFunction CV DACCDB DACCDBSL DACCSL DACCSYD DACCTAB
+syn keyword sasFunction DAIRY DATE DATEJUL DATEPART DATETIME DAY
+syn keyword sasFunction DCLOSE DEPDB DEPDBSL DEPDBSL DEPSL DEPSL
+syn keyword sasFunction DEPSYD DEPSYD DEPTAB DEPTAB DEQUOTE DHMS
+syn keyword sasFunction DIF DIGAMMA DIM DINFO DNUM DOPEN DOPTNAME
+syn keyword sasFunction DOPTNUM DREAD DROPNOTE DSNAME ERF ERFC EXIST
+syn keyword sasFunction EXP FAPPEND FCLOSE FCOL FDELETE FETCH FETCHOBS
+syn keyword sasFunction FEXIST FGET FILEEXIST FILENAME FILEREF FINFO
+syn keyword sasFunction FINV FIPNAME FIPNAMEL FIPSTATE FLOOR FNONCT
+syn keyword sasFunction FNOTE FOPEN FOPTNAME FOPTNUM FPOINT FPOS
+syn keyword sasFunction FPUT FREAD FREWIND FRLEN FSEP FUZZ FWRITE
+syn keyword sasFunction GAMINV GAMMA GETOPTION GETVARC GETVARN HBOUND
+syn keyword sasFunction HMS HOSTHELP HOUR IBESSEL INDEX INDEXC
+syn keyword sasFunction INDEXW INPUT INPUTC INPUTN INT INTCK INTNX
+syn keyword sasFunction INTRR IRR JBESSEL JULDATE KURTOSIS LAG LBOUND
+syn keyword sasFunction LEFT LENGTH LGAMMA LIBNAME LIBREF LOG LOG10
+syn keyword sasFunction LOG2 LOGPDF LOGPMF LOGSDF LOWCASE MAX MDY
+syn keyword sasFunction MEAN MIN MINUTE MOD MONTH MOPEN MORT N
+syn keyword sasFunction NETPV NMISS NORMAL NOTE NPV OPEN ORDINAL
+syn keyword sasFunction PATHNAME PDF PEEK PEEKC PMF POINT POISSON POKE
+syn keyword sasFunction PROBBETA PROBBNML PROBCHI PROBF PROBGAM
+syn keyword sasFunction PROBHYPR PROBIT PROBNEGB PROBNORM PROBT PUT
+syn keyword sasFunction PUTC PUTN QTR QUOTE RANBIN RANCAU RANEXP
+syn keyword sasFunction RANGAM RANGE RANK RANNOR RANPOI RANTBL RANTRI
+syn keyword sasFunction RANUNI REPEAT RESOLVE REVERSE REWIND RIGHT
+syn keyword sasFunction ROUND SAVING SCAN SDF SECOND SIGN SIN SINH
+syn keyword sasFunction SKEWNESS SOUNDEX SPEDIS SQRT STD STDERR STFIPS
+syn keyword sasFunction STNAME STNAMEL SUBSTR SUM SYMGET SYSGET SYSMSG
+syn keyword sasFunction SYSPROD SYSRC SYSTEM TAN TANH TIME TIMEPART
+syn keyword sasFunction TINV TNONCT TODAY TRANSLATE TRANWRD TRIGAMMA
+syn keyword sasFunction TRIM TRIMN TRUNC UNIFORM UPCASE USS VAR
+syn keyword sasFunction VARFMT VARINFMT VARLABEL VARLEN VARNAME
+syn keyword sasFunction VARNUM VARRAY VARRAYX VARTYPE VERIFY VFORMAT
+syn keyword sasFunction VFORMATD VFORMATDX VFORMATN VFORMATNX VFORMATW
+syn keyword sasFunction VFORMATWX VFORMATX VINARRAY VINARRAYX VINFORMAT
+syn keyword sasFunction VINFORMATD VINFORMATDX VINFORMATN VINFORMATNX
+syn keyword sasFunction VINFORMATW VINFORMATWX VINFORMATX VLABEL
+syn keyword sasFunction VLABELX VLENGTH VLENGTHX VNAME VNAMEX VTYPE
+syn keyword sasFunction VTYPEX WEEKDAY YEAR YYQ ZIPFIPS ZIPNAME ZIPNAMEL
+syn keyword sasFunction ZIPSTATE
+
+" Handy settings for using vim with log files
+syn keyword sasLogMsg NOTE
+syn keyword sasWarnMsg WARNING
+syn keyword sasErrMsg ERROR
+
+" Always contained in a comment (Bob Heckel)
+syn keyword sasTodo TODO TBD FIXME contained
+
+" These don't fit anywhere else (Bob Heckel).
+" Added others that were missing.
+syn keyword sasUnderscore _ALL_ _AUTOMATIC_ _CHARACTER_ _INFILE_ _N_ _NAME_ _NULL_ _NUMERIC_ _USER_ _WEBOUT_
+
+" End of SAS Functions
+
+" 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 highlighting yet
+
+if version >= 508 || !exists("did_sas_syntax_inits")
+ if version < 508
+ let did_sas_syntax_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ " Default sas enhanced editor color syntax
+ hi sComment term=bold cterm=NONE ctermfg=Green ctermbg=Black gui=NONE guifg=DarkGreen guibg=White
+ hi sCard term=bold cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=Black guibg=LightYellow
+ hi sDate_Time term=NONE cterm=bold ctermfg=Green ctermbg=Black gui=bold guifg=SeaGreen guibg=White
+ hi sKeyword term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=NONE guifg=Blue guibg=White
+ hi sFmtInfmt term=NONE cterm=NONE ctermfg=LightGreen ctermbg=Black gui=NONE guifg=SeaGreen guibg=White
+ hi sString term=NONE cterm=NONE ctermfg=Magenta ctermbg=Black gui=NONE guifg=Purple guibg=White
+ hi sText term=NONE cterm=NONE ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
+ hi sNumber term=NONE cterm=bold ctermfg=Green ctermbg=Black gui=bold guifg=SeaGreen guibg=White
+ hi sProc term=NONE cterm=bold ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
+ hi sSection term=NONE cterm=bold ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
+ hi mDefine term=NONE cterm=bold ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
+ hi mKeyword term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=NONE guifg=Blue guibg=White
+ hi mReference term=NONE cterm=bold ctermfg=White ctermbg=Black gui=bold guifg=Blue guibg=White
+ hi mSection term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
+ hi mText term=NONE cterm=NONE ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
+
+" Colors that closely match SAS log colors for default color scheme
+ hi lError term=NONE cterm=NONE ctermfg=Red ctermbg=Black gui=none guifg=Red guibg=White
+ hi lWarning term=NONE cterm=NONE ctermfg=Green ctermbg=Black gui=none guifg=Green guibg=White
+ hi lNote term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black gui=none guifg=Blue guibg=White
+
+
+ " Special hilighting for the SAS proc section
+
+ HiLink sasComment sComment
+ HiLink sasConditional sKeyword
+ HiLink sasStep sSection
+ HiLink sasFunction sKeyword
+ HiLink sasMacro mKeyword
+ HiLink sasMacroVar NonText
+ HiLink sasNumber sNumber
+ HiLink sasStatement sKeyword
+ HiLink sasString sString
+ HiLink sasProc sProc
+ " (Bob Heckel)
+ HiLink sasTodo Todo
+ HiLink sasErrMsg lError
+ HiLink sasWarnMsg lWarning
+ HiLink sasLogMsg lNote
+ HiLink sasCards sCard
+ " (Bob Heckel)
+ HiLink sasUnderscore PreProc
+ delcommand HiLink
+endif
+
+" Syncronize from beginning to keep large blocks from losing
+" syntax coloring while moving through code.
+syn sync fromstart
+
+let b:current_syntax = "sas"
+
+" vim: ts=8