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="(<<?|>>?&?!?)" />
<!-- handle &, &&, | and || -->
<RegExpr attribute="Control" context="#stay" String="([|&])\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="\\[;"\\'$`{}()|&<>* ]" />
<!--? <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/):;$`'"]|$))" />
<!-- 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=""" />
<Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
<Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1=""" />
</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="$(<" />-->
<!--? <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="([|&=><])\1"/>
<RegExpr attribute="Expression" context="#stay" String="[|^&><+\-*/%!~]"/>
<RegExpr attribute="Expression" context="#stay" String="([!=]~|[!><]=)"/>
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;|&]))" endRegion="expression" />
<RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&]))" 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="[^]})|;`&><]" />
</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=""" />
<RegExpr attribute="String Escape" context="#stay" String="\\[`"\\$\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 )