1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
Changes:
Version 1.5 (2015-04-29) by Igor Zhuravlov
- language/@kateversion upgraded from "2.4" to "3.4"
Version 1.4 (2015-04-20) by Igor Zhuravlov
- merge versions 1.2 and 1.3
- removed not used def and defc entities
- approached color scheme to JQt
- separated out color scheme to j14.katehlcolor file
- dropped ExpArg: n. m. u. v. x. y.
- reformatted a bit
Version 1.3 (2014-05-26) by greg heil
- based on version 1.1
- add Foldable feature
- change color scheme
- add def and defc entities
- split long lines
Version 1.2 (2013-09-29) by Igor Zhuravlov
- fix Adverb regexp's pattern
- fix Verb regexp's pattern
Version 1.1 (2013-03-18) by Igor Zhuravlov
- fix enum entity's exponent definition
- rework String regexp's pattern
- use entities in Number regexp's pattern
- use entities in Control regexp's pattern
Version 1.0 (2012-03-21) by Igor Zhuravlov
- initial release
-->
<!DOCTYPE language
[
<!ENTITY unum "\d+"> <!-- Unsigned integer number -->
<!ENTITY anum "[a-z\d]+"> <!-- Non-10-based unsigned integer number, e.g. 1a -->
<!ENTITY bnum "\b&unum;b_?&anum;(\.&anum;)\b"> <!-- Based integer number, e.g. 36b_1a.z2 -->
<!ENTITY inum "_?&unum;"> <!-- Integer number -->
<!ENTITY xnum "\b&inum;x\b"> <!-- Extended precision integer number, e.g. _123x -->
<!ENTITY rnum "\b&inum;r&inum;\b"> <!-- Rational number, e.g. _1r23 -->
<!ENTITY fnum "&inum;(\.&unum;)?"> <!-- Floating point number, e.g. 1.23 -->
<!ENTITY enum "(&fnum;(e&inum;)?|_?_|_\.)"> <!-- Exponential (scientific) notation, e.g. 1.2e_3 -->
<!ENTITY cnum "&enum;((j|a[dr])&enum;)?"> <!-- Complex number, e.g. 1.2e3j4.5e_6 -->
<!ENTITY pnum "\b&cnum;([px]&cnum;)?(?![a-z\d_.])"> <!-- Number based on pi or e, e.g. 1j2p3j4 -->
<!ENTITY name "[a-zA-Z][a-zA-Z\d_]*"> <!-- Name -->
<!ENTITY lname "\b&name;_(&name;)?_\b"> <!-- Locative, a__ means a_base_ -->
<!ENTITY ilname "\b&name;__&name;\b"> <!-- Indirect locative -->
]>
<!--
j.xml syntax highlighting for J programming language under Kate
J is a modern, high-level, general-purpose, high-performance, portable programming language
http://www.jsoftware.com
Kate is a KDE Advanced Text Editor
http://kate.kde.org/
-->
<language name="J"
section="Scripts"
version="5"
kateversion="5.0"
extensions="*.ijs;*.ijt;*.IJS;*.IJT"
mimetype="text/x-j;text/x-jsrc"
author="Igor Zhuravlov (zhuravlov.ip@ya.ru), greg heil (gheil.j@gmail.com)"
indenter="normal"
license="GPL">
<highlighting>
<contexts>
<context attribute="Sentence" lineEndContext="#pop" name="sentence">
<DetectSpaces/>
<RegExpr attribute="Foldable" context="#stay" String=":\s*0|\bdefine\b" beginRegion="Fold"/>
<LineContinue attribute="Foldable" context="#stay" char=")" endRegion="Fold" column="0"/>
<StringDetect attribute="Comment" context="#stay" String="NB.(" beginRegion="Fold"/>
<StringDetect attribute="Comment" context="#stay" String="NB.)" endRegion="Fold"/>
<StringDetect attribute="Comment" context="comment line" String="NB."/>
<RegExpr attribute="String" context="#stay" String="'([^']|'')*'"/>
<RegExpr attribute="Adverb" context="#stay" String="([/\\]\.|\b[bfMt]\.|\bt:|[~/\\}])(?![.:])"/>
<RegExpr attribute="Verb" context="#stay" String="(_?\d:|p\.\.|[ACeEIjLor]\.|[_/\\iqsux]:|\{::|[=!\]]|[-<>+*%$|,#\{][.:]?|[;\[]:?|[~}"ip][.:]|[?^]\.?)(?![.:])"/>
<RegExpr attribute="Number" context="#stay" String="&bnum;|&xnum;|&rnum;|&pnum;"/>
<AnyChar attribute="Parens" context="#stay" String="()"/>
<RegExpr attribute="Conjunction" context="#stay" String="("|[@&][.:]?|[.:][.:]?|[!D][.:]|&\.:|[;dHT]\.|`:?|[LS^]:)(?![.:])"/>
<RegExpr attribute="Control" context="#stay" String="\b(assert|break|f?case|catch[dt]?|continue|do|else(if)?|end|for(_&name;)?|(goto|label)_&name;|if|return|select|throw|try|whil(e|st))\.(?![.:])"/>
<Detect2Chars attribute="Copulae Global" context="#stay" char="=" char1=":"/>
<Detect2Chars attribute="Copulae Local" context="#stay" char="=" char1="."/>
<RegExpr attribute="ExpArg" context="#stay" String="\b[nmuvxy](?![\w:.])"/>
<RegExpr attribute="Noun" context="#stay" String="\ba[.:](?![.:])"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="comment line">
<DetectSpaces />
<IncludeRules context="##Comments"/>
</context>
</contexts>
<itemDatas>
<itemData name="Sentence" defStyleNum="dsNormal"/>
<itemData name="Adverb" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
<itemData name="Conjunction" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Control" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Copulae Global" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Copulae Local" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="ExpArg" defStyleNum="dsKeyword" spellChecking="false" italic="true"/>
<itemData name="Foldable" defStyleNum="dsRegionMarker" spellChecking="false"/>
<itemData name="Noun" defStyleNum="dsKeyword" spellChecking="false" bold="true"/>
<itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
<itemData name="Parens" defStyleNum="dsRegionMarker" spellChecking="false"/>
<itemData name="String" defStyleNum="dsString" spellChecking="false"/>
<itemData name="Verb" defStyleNum="dsKeyword" spellChecking="false"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="multiLine" start="NB.(" end="NB.)" region="Fold"/>
<comment name="singleLine" start="NB."/>
</comments>
<folding indentationsensitive="true"/>
</general>
</language>
<!-- kate: replace-tabs on; indent-width 2; -->
|