Menu

SAS Syntax Highlighting

2007-01-03
2012-11-14
  • Nobody/Anonymous

    Hello!
    I used the User Define Dialog to create something that at least somewhat resembles SAS Enhanced Editor's highlighting for SAS BASE language.
    Then my company provided me with a new computer (oh, joy!).
    But I lost the highlighting (read, half an hour down the drain)

    I would like to create a REAL plugin for the SAS BASE language highlighting that can survive between re-installs.
    How do I do that?
    I'm sure, no, I know for sure there are people out there that search for a good SAS savvy editor.
    Please help me to help you!

    Regards
    witecat

     
    • Nobody/Anonymous

      you can reach me at marina.malinova@citigroup.com

       
    • Nobody/Anonymous

      Your user defined languages are easily transportable.  They are stored in an XML file in your Documents and Settings Folder. (C:\Documents and Settings\[YOUR NAME}\Application Data\Notepad++\UserDefineLang.xml).  I agree it would be great if a nice definition was built in.  Until that time here is mine.  It is somewhat incomplete but has been "good enougth" for me.  We should collaborate here to create a quality syntax definition.

      <NotepadPlus>
          <UserLang name="SAS" ext="sas SAS">
              <Settings>
                  <Global caseIgnored="yes" />
                  <TreatAsSymbol comment="no" commentLine="no" />
                  <Prefix words1="no" words2="no" words3="yes" words4="yes" />
              </Settings>
              <KeywordLists>
                  <Keywords name="Delimiters">&quot;&apos;0&quot;&apos;0</Keywords>
                  <Keywords name="Folder+">PROC proc DATA data</Keywords>
                  <Keywords name="Folder-">run RUN</Keywords>
                  <Keywords name="Operators">( ) , . ; + &lt; = &gt;</Keywords>
                  <Keywords name="Comment">1/* 2*/ 0</Keywords>
                  <Keywords name="Words1">FORMAT Format format quit FREQ freq PRINT print MEANS</Keywords>
                  <Keywords name="Words2">INPUT input value VALUE Value IF if THEN then DO do END end ELSE else AND and&#x0D;&#x0A;truncover recfm lrecl filename libname %let ODS Ods ods html HTML CLOSE close listing LISTNG missing norow nocol TABLES table TABLE tables BY by ID id sum SUM SUMBY sumby var VAR nopercent retain infile options file FILE TITLE1 TITLE2 TITLE3 TITLE4 FOOTNOTE rtf RTF</Keywords>
                  <Keywords name="Words3">@ $char $ebcdic s370ff $ $EBCDIC S370FF z Z S370FPD</Keywords>
                  <Keywords name="Words4">%</Keywords>
              </KeywordLists>
              <Styles>
                  <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
                  <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                  <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                  <WordsStyle name="KEYWORD1" styleID="5" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                  <WordsStyle name="KEYWORD2" styleID="6" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" />
                  <WordsStyle name="KEYWORD3" styleID="7" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                  <WordsStyle name="KEYWORD4" styleID="8" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                  <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="Courier New" fontStyle="2" fontSize="10" />
                  <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="Courier New" fontStyle="2" />
                  <WordsStyle name="NUMBER" styleID="4" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                  <WordsStyle name="OPERATOR" styleID="10" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
                  <WordsStyle name="DELIMINER1" styleID="14" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                  <WordsStyle name="DELIMINER2" styleID="15" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                  <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
              </Styles>
          </UserLang>
      </NotepadPlus>

       
    • Nobody/Anonymous

      Where I can download plugin SAS Syntax for Notepad ++ ?

      I'm waiting a reply in my e-mail "web.lino@gmail.com", please!!

      I'm speak little English.

      Thanks.

       
    • Nobody/Anonymous

      Hi, Anonymous (nobody) - 2007-01-05 18:02!
      This works great, I'm going to look into it asap and put the results here.

      Greetings
      witecat

       
      • Nobody/Anonymous

        Here is a hopefully better definition of SAS syntax (if not better then it is bigger)

           <UserLang name="SAS" ext="sas SAS">
                <Settings>
                    <Global caseIgnored="yes" />
                    <TreatAsSymbol comment="yes" commentLine="no" />
                    <Prefix words1="no" words2="no" words3="yes" words4="yes" />
                </Settings>
                <KeywordLists>
                    <Keywords name="Delimiters">&quot;&apos;0&quot;&apos;0</Keywords>
                    <Keywords name="Folder+">proc data</Keywords>
                    <Keywords name="Folder-">run RUN</Keywords>
                    <Keywords name="Operators">&apos; - ! &quot; &amp; ( ) , . : ; ? @ [ \ ] ^ ` { | } ~ + &lt; &gt;</Keywords>
                    <Keywords name="Comment">1/* 2*/ 0</Keywords>
                    <Keywords name="Words1">append&#x0D;&#x0A;bmdp&#x0D;&#x0A;calendar catalog chart cimport compare contents convert copy corr cport&#x0D;&#x0A;datasets&#x0D;&#x0A;format forms freq&#x0D;&#x0A;glm gplot&#x0D;&#x0A;logistic&#x0D;&#x0A;means&#x0D;&#x0A;npar1way&#x0D;&#x0A;options&#x0D;&#x0A;pds plot pmenu print printto&#x0D;&#x0A;rank release&#x0D;&#x0A;sort source spell sql standard summary&#x0D;&#x0A;tabulate tapecopy tapelabel timeplot transpose ttest&#x0D;&#x0A;univariate&#x0D;&#x0A;v5tov6</Keywords>
                    <Keywords name="Words2">$include&#x0D;&#x0A;_all_ _character_ _cmd_ _error_ _freq_ _i_ _infile_ _last_ _msg_ _n_&#x0D;&#x0A;_null_ _numeric_ _temporary_ _type_&#x0D;&#x0A;abort addr adjrsq alpha alter altlog altprint array attrib authserver&#x0D;&#x0A;autoexec awscontrol awsdef awsmenu awsmenumerge awstitle&#x0D;&#x0A;backward base blocksize bufno bufsize by byerr byline&#x0D;&#x0A;call cards cards4 catcache cbufno center change chisq class cleanup&#x0D;&#x0A;cntllev codegen col collin column comamid comaux1 comaux2 comdef config&#x0D;&#x0A;continue cpuid create&#x0D;&#x0A;datalines datalines4 dbcslang dbcstype ddm delete delimiter&#x0D;&#x0A;descending device dflang display distinct dkricond dkrocond dlm do drop&#x0D;&#x0A;dsnferr&#x0D;&#x0A;echo else emaildlg emailid emailpw emailserver emailsys encrypt end&#x0D;&#x0A;endsas engine eof eov error errorcheck errors&#x0D;&#x0A;feedback file fileclose filefmt filevar first first. firstobs fmterr&#x0D;&#x0A;fmtsearch font fontalias footnote footnote1 footnote2 footnote3&#x0D;&#x0A;footnote4 footnote5 footnote6 footnote7 footnote8 footnote9 force&#x0D;&#x0A;formatted formchar formdelim formdlim forward from&#x0D;&#x0A;go goto group gwindow&#x0D;&#x0A;hbar helpenv helploc honorappearance hostprint hpct html hvar&#x0D;&#x0A;ibr id if infile informat initcmd initstmt inr into invaliddata is&#x0D;&#x0A;join&#x0D;&#x0A;keep kentb&#x0D;&#x0A;label last last. leave lib library line linesize link list lostcard&#x0D;&#x0A;lrecl ls&#x0D;&#x0A;macro macrogen maps mautosource maxdec maxr measures median memtype&#x0D;&#x0A;merge merror missing missover mlogic mode model modify mprint mrecall&#x0D;&#x0A;msglevel msymtabmax mvarsize myy&#x0D;&#x0A;new news no nobatch nobs nocol nocaps nocardimage nocenter nocharcode&#x0D;&#x0A;nocmdmac&#x0D;&#x0A;nocum nodate nodbcs nodetails nodmr nodms nodmsbatch nodup nodupkey&#x0D;&#x0A;noduplicates noechoauto noequals noerrorabend noexitwindows&#x0D;&#x0A;nofullstimer&#x0D;&#x0A;noicon noimplmac noint nolist noloadlist nomiss nomlogic nomprint&#x0D;&#x0A;nomrecall nomsgcase nomstored nomultenvappl nonotes nonumber noobs&#x0D;&#x0A;noovp&#x0D;&#x0A;nopad noprint noprintinit norow norsasuser nosetinit nosource2 nosplash&#x0D;&#x0A;nosymbolgen notes notitle notitles notsorted noverbose noxsync noxwait&#x0D;&#x0A;number numkeys nummousekeys nway&#x0D;&#x0A;obs ods option order otherwise out outp= output over ovp&#x0D;&#x0A;pad pad2 page pageno pagesize paired parm parmcards path pathdll pfkey&#x0D;&#x0A;position printer probsig procleave prt ps pw pwreq&#x0D;&#x0A;quit&#x0D;&#x0A;r ranks read recfm reg register regr remote remove rename replace&#x0D;&#x0A;retain&#x0D;&#x0A;return reuse rsquare rtf rtrace rtraceloc&#x0D;&#x0A;s s2 samploc sasautos sascontrol sasfrscr sashelp sasmsg sasmstore&#x0D;&#x0A;sasscript sasuser select selection separated seq serror set setcomm&#x0D;&#x0A;simple siteinfo skip sle sls sortedby sortpgm sortseq sortsize source2&#x0D;&#x0A;splashlocation split spool start stdin stimer stop stopover sumwgt&#x0D;&#x0A;symbol symbolgen sysin sysleave sysparm sysprint sysprintfont&#x0D;&#x0A;t table tables tapeclose tbufsize terminal test then title title1&#x0D;&#x0A;title2&#x0D;&#x0A;title3 title4 title5 title6 title7 title8 title9 to tol tooldef trantab truncover&#x0D;&#x0A;type&#x0D;&#x0A;unformatted union until update user usericon&#x0D;&#x0A;validate value var varray varrayx vformat vformatd vformatdx vformatn&#x0D;&#x0A;vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat&#x0D;&#x0A;vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx&#x0D;&#x0A;vinformatx vlabel vlabelx vlength vlengthx vname vnamex vnferr vtype&#x0D;&#x0A;vtypex&#x0D;&#x0A;weight when where while wincharset window work workinit workterm write&#x0D;&#x0A;x xsync xwait&#x0D;&#x0A;yearcutoff yes&#x0D;&#x0A;&#x0D;&#x0A;abs airy arcos arsin atan attrc attrn&#x0D;&#x0A;band betainv blshift bnot bor brshift bxor byte&#x0D;&#x0A;cdf ceil cexist cinv close cnonct collate compbl compound compress cos&#x0D;&#x0A;cosh css curobs cv&#x0D;&#x0A;daccdb daccdbsl daccsl daccsyd dacctab dairy date datejul datepart&#x0D;&#x0A;datetime day dclose depdb depdbsl depsl depsyd deptab dequote dhms dif&#x0D;&#x0A;digamma dim dinfo dnum dopen doptname doptnum dread dropnote dsname&#x0D;&#x0A;erf erfc exist exp&#x0D;&#x0A;fappend fclose fcol fdelete fetch fetchobs fexist fget fileexist&#x0D;&#x0A;filename fileref finfo finv fipname fipnamel fipstate floor fnonct&#x0D;&#x0A;fnote&#x0D;&#x0A;fopen foptname foptnum fpoint fpos fput fread frewind frlen fsep fuzz&#x0D;&#x0A;fwrite&#x0D;&#x0A;gaminv gamma getoption getvarc getvarn&#x0D;&#x0A;hbound hms hosthelp hour&#x0D;&#x0A;ibessel index indexc indexw input inputc inputn int intck intnx intrr&#x0D;&#x0A;irr&#x0D;&#x0A;jbessel juldate&#x0D;&#x0A;kurtosis&#x0D;&#x0A;lag lbound left length lgamma libname libref log log10 log2 logpdf&#x0D;&#x0A;logpmf logsdf lowcase&#x0D;&#x0A;max mdy mean min minute mod month mopen mort&#x0D;&#x0A;n netpv nmiss normal note npv&#x0D;&#x0A;open ordinal&#x0D;&#x0A;pathname pdf peek peekc pmf point poisson poke probbeta probbnml&#x0D;&#x0A;probchi&#x0D;&#x0A;probf probgam probhypr probit probnegb probnorm probt put putc putn&#x0D;&#x0A;qtr quote&#x0D;&#x0A;ranbin rancau ranexp rangam range rannor ranpoi rantbl rantri ranuni&#x0D;&#x0A;repeat resolve reverse rewind right round&#x0D;&#x0A;saving scan sdf second sign sin sinh skewness soundex spedis sqrt std&#x0D;&#x0A;stderr stfips stname stnamel substr sum symget symput sysget sysmsg&#x0D;&#x0A;sysprod sysrc system&#x0D;&#x0A;tan tanh time timepart tinv tnonct today translate tranwrd trigamma&#x0D;&#x0A;trim&#x0D;&#x0A;trimn trunc&#x0D;&#x0A;uniform upcase uss&#x0D;&#x0A;varfmt varinfmt varlabel varlen varname varnum vartype verify&#x0D;&#x0A;weekday&#x0D;&#x0A;year yyq&#x0D;&#x0A;zipfips zipname zipnamel zipstate&#x0D;&#x0A;/C6&quot;SUDAAN for SAS&quot;&#x0D;&#x0A;crosstab&#x0D;&#x0A;descript design=&#x0D;&#x0A;levels&#x0D;&#x0A;nest&#x0D;&#x0A;setot subgroup subpopn&#x0D;&#x0A;totper&#x0D;&#x0A;wsum</Keywords>
                    <Keywords name="Words3">%bquote %do %else %end %eval %global %goto %if %inc %include %index&#x0D;&#x0A;%input %length %let %list %local %macro %mend %nrbquote %nrquote %nrstr&#x0D;&#x0A;%put %qscan %qsysfunc %quote %run %substr %syscall %sysevalf %sysexec&#x0D;&#x0A;%sysfunc %sysrc %then %to %until %while %window&#x0D;&#x0A;/C4&quot;Informats &amp; Formats&quot;&#x0D;&#x0A;$1 $2 $3 $4 $5 $6 $7 $8 $9 $ascii $binary $cb $char $charzb $ebcdic $hex $kanji $kanjix $msgcase&#x0D;&#x0A;$octal $phex $quote $reverj $revers $upcase $varying&#x0D;&#x0A;best binary bits bz&#x0D;&#x0A;cb char comma commax&#x0D;&#x0A;dateampm ddmmyy dollar dollarx downame&#x0D;&#x0A;eurdfdd eurdfde eurdfdn eurdfdt eurdfdwn eurdfmn eurdfmy eurdfwdx&#x0D;&#x0A;eurdfwkx&#x0D;&#x0A;float fract&#x0D;&#x0A;hex hhmm&#x0D;&#x0A;ib ieee&#x0D;&#x0A;julday julian&#x0D;&#x0A;minguo mmddyy mmss mmyy monname monyy msec&#x0D;&#x0A;negparen nengo numx&#x0D;&#x0A;octal&#x0D;&#x0A;pd pdjulg pdjuli pdtime percent pib pk punch pvalue&#x0D;&#x0A;qtrr&#x0D;&#x0A;rb rmfdur rmfstamp roman row&#x0D;&#x0A;s370ff s370fib s370fibu s370fpd s370fpdu s370fpib s370frb s370fzd&#x0D;&#x0A;s370fzdl s370fzds s370fzdt s370fzdu smfstamp&#x0D;&#x0A;timeampm tod tu&#x0D;&#x0A;vaxrb&#x0D;&#x0A;weekdate weekdatx worddate worddatx wordf words&#x0D;&#x0A;yen yymm yymmdd yymon yyqr&#x0D;&#x0A;z zd zdb zdv&#x0D;&#x0A;</Keywords>
                    <Keywords name="Words4">data=</Keywords>
                </KeywordLists>
                <Styles>
                    <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                    <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                    <WordsStyle name="KEYWORD1" styleID="5" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                    <WordsStyle name="KEYWORD2" styleID="6" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="KEYWORD3" styleID="7" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="KEYWORD4" styleID="8" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="Courier New" fontStyle="2" fontSize="10" />
                    <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="Courier New" fontStyle="2" />
                    <WordsStyle name="NUMBER" styleID="4" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="1" />
                    <WordsStyle name="OPERATOR" styleID="10" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="DELIMINER1" styleID="14" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="DELIMINER2" styleID="15" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                    <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
                </Styles>
            </UserLang>

         
MongoDB Logo MongoDB