Created
February 14, 2022 16:25
-
-
Save capezotte/a4860d03ba8aec917fc0d0c41c5f588d to your computer and use it in GitHub Desktop.
Kate Syntax for JQ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE language SYSTEM "language.dtd"> | |
<language name="jq" section="Scripts" extensions="*.jq" mimetype="" version="2" kateversion="5.0" author="oc1024" license="LGPL" indenter="python"> | |
<highlighting> | |
<list name="builtins"> | |
<item>not</item> | |
<item>length</item> | |
<item>utf8bytelength</item> | |
<item>keys</item> | |
<item>has</item> | |
<item>in</item> | |
<item>map</item> | |
<item>path</item> | |
<item>del</item> | |
<item>getpath</item> | |
<item>setpath</item> | |
<item>delpaths</item> | |
<item>to_entries</item> | |
<item>from_entries</item> | |
<item>with_entries</item> | |
<item>select</item> | |
<item>arrays</item> | |
<item>empty</item> | |
<item>error</item> | |
<item>halt</item> | |
<item>halt</item> | |
<item>paths</item> | |
<item>add</item> | |
<item>any</item> | |
<item>all</item> | |
<item>flatten</item> | |
<item>range</item> | |
<item>floor</item> | |
<item>sqrt</item> | |
<item>tonumber</item> | |
<item>tostring</item> | |
<item>type</item> | |
<item>infinite</item> | |
<item>sort</item> | |
<item>group</item> | |
<item>min</item> | |
<item>unique</item> | |
<item>reverse</item> | |
<item>contains</item> | |
<item>indices</item> | |
<item>index</item> | |
<item>inside</item> | |
<item>startswith</item> | |
<item>endswith</item> | |
<item>combinations</item> | |
<item>ltrimstr</item> | |
<item>rtrimstr</item> | |
<item>explode</item> | |
<item>implode</item> | |
<item>split</item> | |
<item>join</item> | |
<item>ascii_downcase</item> | |
<item>ascii_upcase</item> | |
<item>while</item> | |
<item>until</item> | |
<item>recurse</item> | |
<item>recurse_down</item> | |
<item>walk</item> | |
<item>transpose</item> | |
<item>bsearch</item> | |
<item>builtins</item> | |
<!-- Dates --> | |
<item>fromdateiso8601</item> | |
<item>todateiso8601</item> | |
<item>fromdate</item> | |
<item>todate</item> | |
<item>strptime</item> | |
<item>strftime</item> | |
<item>strflocaltime</item> | |
<item>mktime</item> | |
<item>gmtime</item> | |
<item>localtime</item> | |
<!-- SQL --> | |
<item>INDEX</item> | |
<item>JOIN</item> | |
<item>IN</item> | |
<!-- Regex --> | |
<item>test</item> | |
<item>match</item> | |
<item>capture</item> | |
<item>scan</item> | |
<item>split</item> | |
<item>splits</item> | |
<item>sub</item> | |
<item>gsub</item> | |
<!-- I/O --> | |
<item>input</item> | |
<item>inputs</item> | |
<item>debug</item> | |
<item>stderr</item> | |
<item>input_filename</item> | |
<item>input_line_number</item> | |
<!-- Stream --> | |
<item>truncate_stream</item> | |
<item>fromstream</item> | |
<item>tostream</item> | |
<!-- Extra --> | |
<item>isempty</item> | |
<item>first</item> | |
<item>last</item> | |
<item>nth</item> | |
<item>limit</item> | |
<!-- Math --> | |
<item>acos</item> | |
<item>acosh</item> | |
<item>asin</item> | |
<item>asinh</item> | |
<item>atan</item> | |
<item>atanh</item> | |
<item>cbrt</item> | |
<item>ceil</item> | |
<item>cos</item> | |
<item>cosh</item> | |
<item>erf</item> | |
<item>erfc</item> | |
<item>exp</item> | |
<item>exp10</item> | |
<item>exp2</item> | |
<item>expm1</item> | |
<item>fabs</item> | |
<item>floor</item> | |
<item>gamma</item> | |
<item>j0</item> | |
<item>j1</item> | |
<item>lgamma</item> | |
<item>log</item> | |
<item>log10</item> | |
<item>log1p</item> | |
<item>log2</item> | |
<item>logb</item> | |
<item>nearbyint</item> | |
<item>pow10</item> | |
<item>rint</item> | |
<item>round</item> | |
<item>significand</item> | |
<item>sin</item> | |
<item>sinh</item> | |
<item>sqrt</item> | |
<item>tan</item> | |
<item>tanh</item> | |
<item>tgamma</item> | |
<item>trunc</item> | |
<item>y0</item> | |
<item>y1</item> | |
<item>atan2</item> | |
<item>copysign</item> | |
<item>drem</item> | |
<item>fdim</item> | |
<item>fmax</item> | |
<item>fmin</item> | |
<item>fmod</item> | |
<item>frexp</item> | |
<item>hypot</item> | |
<item>jn</item> | |
<item>ldexp</item> | |
<item>modf</item> | |
<item>nextafter</item> | |
<item>nexttoward</item> | |
<item>pow</item> | |
<item>remainder</item> | |
<item>scalb</item> | |
<item>scalbln</item> | |
<item>yn</item> | |
<item>fma</item> | |
</list> | |
<list name="keywords"> | |
<item>and</item> | |
<item>or</item> | |
<item>as</item> | |
<!-- def: inside context main to trigger context funcdef --> | |
</list> | |
<list name="builtvars"> | |
<item>null</item> | |
<item>true</item> | |
<item>false</item> | |
</list> | |
<list name="cf"> | |
<item>if</item> | |
<item>elif</item> | |
<item>then</item> | |
<item>else</item> | |
<item>end</item> | |
<item>reduce</item> | |
<item>foreach</item> | |
<item>try</item> | |
<item>catch</item> | |
<item>label</item> | |
</list> | |
<list name="strattr"> | |
<item>@base64d</item> | |
<item>@base64</item> | |
<item>@csv</item> | |
<item>@html</item> | |
<item>@json</item> | |
<item>@netsoc</item> | |
<item>@sh</item> | |
<item>@text</item> | |
<item>@tsv</item> | |
<item>@uri</item> | |
</list> | |
<list name="library"> | |
<item>import</item> | |
<item>include</item> | |
<item>module</item> | |
<item>modulemeta</item> | |
</list> | |
<contexts> | |
<context name="main" attribute="Normal Text" lineEndContext="#stay"> | |
<IncludeRules context="common" /> | |
<WordDetect String="def" attribute="Keyword" context="funcdef" /> | |
<DetectChar char=";" endRegion="func"/> | |
</context> | |
<context name="common" attribute="Normal Text" lineEndContext="#stay"> | |
<keyword String="cf" attribute="ControlFlow" /> | |
<keyword String="builtins" attribute="BuiltIn" /> | |
<keyword String="keywords" attribute="Keyword" /> | |
<keyword String="builtvars" attribute="Variable" /> | |
<keyword String="library" attribute="Import" /> | |
<RegExpr String="@[a-z0-9]*" attribute="Attr" /> | |
<WordDetect String="|" attribute="ControlFlow" /> | |
<RegExpr String="\$[a-zA-Z_][a-zA-Z_0-9]*" attribute="Variable" /> | |
<Float attribute="Float" /> | |
<Int attribute="Int" /> | |
<!-- prevent .[] and stuff from getting interpreted as functions/filters --> | |
<RegExpr String="\.[a-zA-Z_][a-zA-Z_0-9]*" attribute="Normal Text" /> | |
<RegExpr String="(?<!\.)[a-zA-Z_][a-zA-Z_0-9]*" attribute="Function" /> | |
<DetectChar attribute="String" context="str" char='"'/> | |
<DetectChar attribute="Comment" context="comment" char='#'/> | |
<DetectChar char="(" beginRegion="loop" context="paren" /> | |
</context> | |
<!-- Broadly same as main, but do not detect function end --> | |
<context name="paren" attribute="Normal Text" lineEndContext="#stay"> | |
<IncludeRules context="common" /> | |
<DetectChar char=")" endRegion="loop" context="#pop" /> | |
<Float attribute="Float" /> | |
<Int attribute="Int" /> | |
</context> | |
<context name="funcdef" attribute="Function" lineEndContext="#stay" > | |
<AnyChar String="(),;" attribute="Normal Text" /> | |
<!-- as $ shorthand --> | |
<RegExpr String="\$[a-zA-Z_][a-zA-Z_0-9]*" attribute="Variable" /> | |
<DetectChar char=":" beginRegion="func" context="#pop"/> | |
</context> | |
<context name="str" attribute="String" lineEndContext="#stay"> | |
<HlCStringChar attribute="Escape" /> | |
<DetectChar attribute="String" context="#pop" char='"'/> | |
</context> | |
<context name="comment" attribute="Comment" lineEndContext="#pop"> | |
<IncludeRules context="##Comments"/> | |
</context> | |
</contexts> | |
<itemDatas> | |
<itemData name="Normal Text" defStyleNum="dsNormal"/> | |
<itemData name="BuiltIn" defStyleNum="dsBuiltIn" /> | |
<itemData name="Keyword" defStyleNum="dsKeyword" /> | |
<itemData name="Function" defStyleNum="dsFunction" /> | |
<itemData name="ControlFlow" defStyleNum="dsControlFlow" /> | |
<itemData name="Attr" defStyleNum="dsAttribute" /> | |
<itemData name="Import" defStyleNum="dsImport" /> | |
<itemData name="Variable" defStyleNum="dsVariable" /> | |
<itemData name="String" defStyleNum="dsString"/> | |
<itemData name="Escape" defStyleNum="dsSpecialChar"/> | |
<itemData name="Int" defStyleNum="dsDecVal" /> | |
<itemData name="Float" defStyleNum="dsFloat" /> | |
<itemData name="Comment" defStyleNum="dsComment" /> | |
</itemDatas> | |
</highlighting> | |
<general> | |
<comments> | |
<comment name="singleLine" start="#" /> | |
</comments> | |
</general> | |
</language> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment