Syntax-Kamelon

 view release on metacpan or  search on metacpan

lib/Syntax/Kamelon/XML/tcsh.xml  view on Meta::CPAN

      <item> builtins </item>
      <item> bye </item>
      <item> cd </item>
      <item> chdir </item>
      <item> complete </item>
      <item> continue </item>
      <item> dirs </item>
      <item> echo </item>
      <item> echotc </item>
      <item> eval </item>
      <item> exec </item>
      <item> exit </item>
      <item> fg </item>
      <item> filetest </item>
      <item> glob </item>
      <item> hashstat </item>
      <item> history </item>
      <item> hup </item>
      <item> inlib </item>
      <item> jobs </item>
      <item> kill </item>
      <item> limit </item>
      <item> log </item>
      <item> login </item>
      <item> logout </item>
      <item> ls-F </item>
      <item> migrate </item>
      <item> newgrp </item>
      <item> nice </item>
      <item> nohup </item>
      <item> notify </item>
      <item> onintr </item>
      <item> popd </item>
      <item> printenv </item>
      <item> pushd </item>
      <item> rehash </item>
      <item> repeat </item>
      <item> sched </item>
      <item> settc </item>
      <item> setty </item>
      <item> shift </item>
      <item> source </item>
      <item> stop </item>
      <item> suspend </item>
      <item> telltc </item>
      <item> time </item>
      <item> umask </item>
      <item> unalias </item>
      <item> uncomplete </item>
      <item> unhash </item>
      <item> unlimit </item>
      <item> ver </item>
      <item> wait </item>
      <item> watchlog </item>
      <item> where </item>
      <item> which </item>
    </list>

    <list name="builtins_var">
      <item> unset </item>
      <item> unsetenv </item>
    </list>

    <list name="unixcommands">
      <!-- /bin -->
      <item> arch </item>
      <item> awk </item>
      <item> bash </item>
      <item> bunzip2 </item>
      <item> bzcat </item>
      <item> bzcmp </item>
      <item> bzdiff </item>
      <item> bzegrep </item>
      <item> bzfgrep </item>
      <item> bzgrep </item>
      <item> bzip2 </item>
      <item> bzip2recover </item>
      <item> bzless </item>
      <item> bzmore </item>
      <item> cat </item>
      <item> chattr </item>
      <item> chgrp </item>
      <item> chmod </item>
      <item> chown </item>
      <item> chvt </item>
      <item> cp </item>
      <item> date </item>
      <item> dd </item>
      <item> deallocvt </item>
      <item> df </item>
      <item> dir </item>
      <item> dircolors </item>
      <item> dmesg </item>
      <item> dnsdomainname </item>
      <item> domainname </item>
      <item> du </item>
      <item> dumpkeys </item>
      <item> echo </item>
      <item> ed </item>
      <item> egrep </item>
      <item> false </item>
      <item> fgconsole </item>
      <item> fgrep </item>
      <item> fuser </item>
      <item> gawk </item>
      <item> getkeycodes </item>
      <item> gocr </item>
      <item> grep </item>
      <item> groff </item>
      <item> groups </item>
      <item> gunzip </item>
      <item> gzexe </item>
      <item> gzip </item>
      <item> hostname </item>
      <item> igawk </item>
      <item> install </item>
      <item> kbd_mode </item>
      <item> kbdrate </item>
      <item> killall </item>
      <item> last </item>
      <item> lastb </item>

lib/Syntax/Kamelon/XML/tcsh.xml  view on Meta::CPAN

      <item> xmodmap </item>
      <item> xset </item>
    </list>


    <contexts>
      <context attribute="Normal Text" lineEndContext="#stay" name="Start">
        <IncludeRules context="FindAll" />
      </context>

<!-- ====== The following rulessets are meant to be included ======== -->
      <!-- FindAll tries to interpret everything -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
        <IncludeRules context="FindComments" />
        <IncludeRules context="FindCommands" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <IncludeRules context="FindOthers" />
      </context>

      <!-- FindMost tries to interpret anything except commands -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
        <IncludeRules context="FindComments" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <IncludeRules context="FindOthers" />
      </context>


      <!-- FindComments consumes shell comments till EOL -->
      <context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
        <DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
        <RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
      </context>
      <context attribute="Comment" lineEndContext="#pop" name="Comment">
        <IncludeRules context="##Alerts" />
      </context>

      <!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
        <DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
        <RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
      </context>
      <context attribute="Comment" lineEndContext="#pop" name="CommentParen">
        <RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
        <IncludeRules context="##Alerts" />
      </context>

      <!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
        <DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
        <RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
      </context>
      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
        <RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
        <IncludeRules context="##Alerts" />
      </context>


      <!-- breaksw case default if else end endif endsw foreach goto
           set setenv switch while -->

      <!-- FindCommands matches many items that can be expected outside strings, substitutions etc. -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
        <!-- start expression in double parentheses -->
<!--!--><Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />
        <!-- start expression in double brackets -->
<!--!--><RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[&eos;" beginRegion="expression" column="0"/>
<!--!--><RegExpr attribute="Keyword" context="ExprDblBracket" String="\s\[\[&eos;" beginRegion="expression" />
        <!-- start expression in single brackets -->
<!--!--><RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression" column="0"/>
<!--!--><RegExpr attribute="Builtin" context="ExprBracket" String="\s\[&eos;" beginRegion="expression" />
        <!-- start a group command with { -->
<!--!--><RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />
        <!-- start a subshell -->
<!--!--><DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
        <!-- match do and if blocks -->
<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bdo&noword;" beginRegion="do" />
<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bdone&noword;" endRegion="do" />
<!--!--><RegExpr attribute="Keyword" context="#stay" String="\belse\s+if&noword;" />
<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bif&noword;" beginRegion="if" />
<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bendif&noword;" endRegion="if" />
        <!-- handle switch as a special case -->
<!--!--><RegExpr attribute="Keyword" context="Switch" String="\bswitch&noword;" beginRegion="switch" />
        <!-- handle command line options -->
        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9][A-Za-z0-9_]*" />
        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
        <!-- handle variable assignments -->
<!--R--><RegExpr attribute="Keyword" context="#stay" String="\b@\s" />
<!--R--><RegExpr attribute="Keyword" context="#stay" String="\bset\s" />
        <RegExpr attribute="Keyword" context="CmdSetEnv" String="\bsetenv\s" />
        <!-- handle functions with function keyword before keywords -->
<!--!--><StringDetect attribute="Function" context="#stay" String=":()" />
<!--!--><RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
        <!-- handle keywords -->
        <keyword attribute="Keyword" context="#stay" String="keywords" />
        <keyword attribute="Builtin" context="#stay" String="builtins" />
        <keyword attribute="Command" context="#stay" String="unixcommands" />
        <!-- handle commands that have variable names as argument -->
        <keyword attribute="Builtin" context="VarName" String="builtins_var" />
        <!-- handle redirection -->
        <RegExpr attribute="Redirection" context="#stay" String="(&lt;&lt;?|&gt;&gt;?&amp;?!?)" />
        <!-- handle &, &&, | and || -->
        <RegExpr attribute="Control" context="#stay" String="([|&amp;])\1?" />
        <!-- mark function definitions without function keyword -->
        <RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
      </context>

      <!-- FindOthers contains various rules to mark different shell input -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">
        <RegExpr attribute="Escape" context="#stay" String="\\[;&quot;\\'$`{}()|&amp;&lt;&gt;* ]" />
<!--?   <RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />-->
        <RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />
        <RegExpr attribute="Path" context="#stay" String="~\w*" />
        <RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />
        <!-- TODO: shell globs -->
      </context>

      <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
        <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
        <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
        <Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1="&quot;" />
      </context>

      <!-- FindSubstitutions goes after anything starting with $ and ` and their escapes -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
        <RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />
        <RegExpr attribute="Variable" context="#stay" String="\$&varname;" />
        <RegExpr attribute="Variable" context="#stay" String="\$[*@#?$!_0-9-]" />
        <RegExpr attribute="Variable" context="#stay" String="\$\{[*@#?$!_0-9-]\}" />
        <RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;\}" />
        <RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;\*?\}" />
        <RegExpr attribute="Variable" context="VarBrace" String="\$\{&varname;" />
        <RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/])" />
        <StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />
<!--?   <StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />-->
<!--?   <StringDetect attribute="Variable" context="SubstCommand" String="$(" />-->
        <DetectChar attribute="Backquote" context="SubstBackq" char="`" />
        <RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />
      </context>

      <!-- FindTests finds operators valid in tests -->
      <context attribute="Normal Text" lineEndContext="#stay" name="FindTests">
        <RegExpr attribute="Expression" context="#stay" String="-[rwxXeozsfdlbcpSugktRLDIFNZ](?=\s)"/>
        <RegExpr attribute="Expression" context="#stay" String="-[AMCUG]:?(?=\s)"/>
        <RegExpr attribute="Expression" context="#stay" String="-P[0-7]{,3}:?(?=\s)"/>
        <RegExpr attribute="Expression" context="#stay" String="([|&amp;=&gt;&lt;])\1"/>
        <RegExpr attribute="Expression" context="#stay" String="[|^&amp;&gt;&lt;+\-*/%!~]"/>
        <RegExpr attribute="Expression" context="#stay" String="([!=]~|[!&gt;&lt;]=)"/>

lib/Syntax/Kamelon/XML/tcsh.xml  view on Meta::CPAN

      <!-- ExprDblBracket consumes an expression till ]] -->
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket">
        <RegExpr attribute="Keyword" context="#pop" String="\s\]\](?=($|[\s;|&amp;]))" endRegion="expression" />
        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
        <IncludeRules context="FindTests" />
        <IncludeRules context="FindMost" />
      </context>

      <!-- Group consumes shell input till } -->
      <context attribute="Normal Text" lineEndContext="#stay" name="Group">
        <DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />
        <IncludeRules context="FindAll" />
      </context>

      <!-- SubShell consumes shell input till ) -->
      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell">
        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
        <IncludeRules context="FindAll" />
      </context>

      <!-- Assign consumes an expression till EOL or whitespace -->
      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">
        <DetectChar attribute="Variable" context="AssignArray" char="(" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <IncludeRules context="FindOthers" />
        <RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]+" />
      </context>

      <!-- AssignArray consumes everything till ), marking assignments -->
      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">
        <DetectChar attribute="Variable" context="#pop" char=")" />
        <DetectChar attribute="Variable" context="Subscript" char="[" />
        <DetectChar attribute="Variable" context="Assign" char="=" />
        <IncludeRules context="FindMost" />
      </context>

      <!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->
      <context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">
        <DetectChar attribute="Variable" context="Subscript" char="[" />
        <DetectChar attribute="Variable" context="Assign" char="=" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <IncludeRules context="FindOthers" />
      </context>

      <!-- Subscript consumes anything till ], marks as Variable -->
      <context attribute="Variable" lineEndContext="#stay" name="Subscript">
        <DetectChar attribute="Variable" context="#pop" char="]" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <IncludeRules context="FindOthers" />
      </context>

      <!-- FunctionDef consumes a name, possibly with (), marks as Function -->
      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">
        <RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />
      </context>

      <!-- CmdSetEnv handles the name part of setenv -->
      <context attribute="Normal Text" lineEndContext="#pop" name="CmdSetEnv" fallthrough="true" fallthroughContext="#pop">
        <!-- handle command line options -->
        <RegExpr attribute="Variable" context="#pop" String="\b&varname;" />
        <DetectChar attribute="Variable" context="Assign" char="\s" />
        <IncludeRules context="FindMost" />
      </context>

      <!-- VarName consumes spare variable names and assignments -->
      <context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">
        <!-- handle command line options -->
        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+" />
        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
        <RegExpr attribute="Variable" context="#stay" String="\b&varname;" />
        <DetectChar attribute="Variable" context="Subscript" char="[" />
        <DetectChar attribute="Variable" context="Assign" char="=" />
        <IncludeRules context="FindMost" />
        <!-- stay here in spaces and other safe characters -->
        <RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />
      </context>

      <!-- ProcessSubst handles <(command) and >(command) -->
      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">
        <DetectChar attribute="Redirection" context="#pop" char=")" />
        <IncludeRules context="FindCommentsParen" />
        <IncludeRules context="FindCommands" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <IncludeRules context="FindOthers" />
      </context>

      <!-- StringSQ consumes anything till ' -->
      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
      </context>

      <!-- StringDQ consumes anything till ", substitutes vars and expressions -->
      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;" />
        <RegExpr attribute="String Escape" context="#stay" String="\\[`&quot;\\$\n]" />
        <IncludeRules context="FindSubstitutions" />
      </context>

      <!-- StringEsc eats till ', but escaping many characters -->
      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
        <RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']" />
        <RegExpr attribute="String Escape" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
      </context>

      <!-- VarBrace is called as soon as ${xxx is encoutered -->
      <context attribute="Variable" lineEndContext="#stay" name="VarBrace">
        <DetectChar attribute="Variable" context="#pop" char="}" />
        <DetectChar attribute="Variable" context="Subscript" char="[" />
        <IncludeRules context="FindStrings" />
        <IncludeRules context="FindSubstitutions" />
        <!-- TODO: highlight various special parameter expansions } -->
      </context>

      <!-- SubstFile is called after a <( or >( is encoutered -->
      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">



( run in 0.960 second using v1.01-cache-2.11-cpan-140bd7fdf52 )