/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 . Ġtang zx ( love . tang zx @ qq . com ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . tang . intellij . lua . editor Ċ Ċ import Ġcom . intellij . code Highlighting . Rain bow Highlight er Ċ import Ġcom . intellij . openapi . editor . colors . Text Attributes Key Ċ import Ġcom . intellij . openapi . file Types . Syntax Highlight er Ċ import Ġcom . intellij . openapi . file Types . Syntax Highlight er Factory Ċ import Ġcom . intellij . openapi . options . colors . Attributes Descriptor Ċ import Ġcom . intellij . openapi . options . colors . Color Descriptor Ċ import Ġcom . intellij . openapi . options . colors . Color Settings Page Ċ import Ġcom . tang . intellij . lua . highlight ing . Lua Highlighting Data Ċ import Ġcom . tang . intellij . lua . lang . Lua Icons Ċ import Ġcom . tang . intellij . lua . lang . Lua Language Ċ import Ġorg . jetbrains . annotations . Non N ls Ċ import Ġjavax . swing . Icon Ċ Ċ /** Ċ Ġ* ĠColor ĠSettings ĠPage Ċ Ġ* ĠCreated Ġby ĠT ang ZX Ġon Ġ 2 0 1 7 / 1 / 9 . Ċ Ġ*/ Ċ class ĠLua Color Settings Page Ġ: ĠColor Settings Page Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Icon (): ĠIcon Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLua Icons . FILE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Highlight er (): ĠSyntax Highlight er Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSyntax Highlight er Factory . get Syntax Highlight er ( Lua Language . INSTANCE , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Demo Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- @ class Ġ< doc ClassName > Em my </ doc ClassName > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Ġ< localVar > var </ localVar > Ġ= Ġ{} Ġ-- Ġa Ġshort Ġcomment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Ġ< localVar > a </ localVar >, Ġ< localVar > b </ localVar >, Ġ< localVar > c </ localVar > Ġ= Ġ< primitive > true </ primitive >, Ġ< primitive > false </ primitive >, Ġ< primitive > nil </ primitive > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< region Header >-- region </ region Header > Ġ< region Desc > my Ġclass Ġmembers Ġregion </ region Desc > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- @ alias Ġ< doc Type Alias > My Type </ doc Type Alias > Ġ< doc ClassName Ref > Em my </ doc ClassName Ref > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- Ġdoc Ġcomment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- @ param Ġ< doc Tag Value > par 1 </ doc Tag Value > Ġ< doc ClassName Ref > Par 1 Type </ doc ClassName Ref > Ġ@ comments ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Ġvar :< method > fun </ method >(< parameter > par 1 </ parameter >, Ġ< parameter > par 2 </ parameter >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< std > print </ std >(' hello ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ< self > self </ self >.< field > len </ field > Ġ+ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- @ overload Ġ< doc Keyword > fun </ doc Keyword >( name :< doc ClassName Ref > string </ doc ClassName Ref >): < doc ClassName Ref > Em my </ doc ClassName Ref > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Ġvar .< static Method > static Fun </ static Method >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< region Header >-- endregion </ region Header > Ġ< region Desc > end Ġmy Ġclass Ġmembers Ġregion </ region Desc > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- @ return Ġ< doc ClassName Ref > Em my </ doc ClassName Ref > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Ġ< global Function > find Em my </ global Function >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" string " Ġ.. Ġ< up Value > var </ up Value > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< global Var > global Var </ global Var > Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< field > property </ field > Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Additional Highlighting Tag To Descriptor Map (): ĠMap < String , ĠText Attributes Key > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġour Tags ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Attribute Descriptors (): ĠArray < Attributes Descriptor > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġour Attribute Descriptors ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Color Descriptors (): ĠArray < Color Descriptor > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġempty Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget DisplayName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Lua " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġour Attribute Descriptors Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Keywords ", ĠLua Highlighting Data . KEYWORD ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" self ", ĠLua Highlighting Data . SELF ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" String ", ĠLua Highlighting Data . STRING ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" nil / true / false ", ĠLua Highlighting Data . PR IMIT IVE _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Number ", ĠLua Highlighting Data . NUMBER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Operators ", ĠLua Highlighting Data . OPER ATORS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Br ackets ", ĠLua Highlighting Data . BRACK ETS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Br aces ", ĠLua Highlighting Data . BR ACES ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Parent heses ", ĠLua Highlighting Data . PARENT HE SES ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Sem icolon ", ĠLua Highlighting Data . SE MIC OL ON ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Comma ", ĠLua Highlighting Data . COMMA ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Br aces Ġand ĠOperators // Dot ", ĠLua Highlighting Data . DOT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Variables // Parameter ", ĠLua Highlighting Data . PARAMETER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Variables // Local Ġvariable ", ĠLua Highlighting Data . LOCAL _ VAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Variables // Global Ġvariable ", ĠLua Highlighting Data . GLOBAL _ VAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Variables // Global Ġfunction ", ĠLua Highlighting Data . GLOBAL _ FUNCTION ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Variables // Up Ġvalue ", ĠLua Highlighting Data . UP _ VALUE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Line Ġcomment ", ĠLua Highlighting Data . LINE _ COMMENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Doc Ġcomment ", ĠLua Highlighting Data . DOC _ COMMENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Em my Doc // Tag ", ĠLua Highlighting Data . DOC _ COMMENT _ TAG ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Em my Doc // Tag Ġvalue ", ĠLua Highlighting Data . DOC _ COMMENT _ TAG _ VALUE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Em my Doc // Class Ġname ", ĠLua Highlighting Data . CLASS _ NAME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Em my Doc // Class Ġname Ġreference ", ĠLua Highlighting Data . CLASS _ REFERENCE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Em my Doc // Type Ġalias ", ĠLua Highlighting Data . TYPE _ ALIAS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Comments // Em my Doc // Keyword ", ĠLua Highlighting Data . DOC _ KEYWORD ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Region // Region ĠHeader ", ĠLua Highlighting Data . REGION _ HEADER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Region // Region ĠDescription ", ĠLua Highlighting Data . REGION _ DESC ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Class ĠMembers // Field ", ĠLua Highlighting Data . FIELD ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Class ĠMembers // Instance Ġmethod ", ĠLua Highlighting Data . INSTANCE _ METHOD ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Class ĠMembers // Static Ġmethod ", ĠLua Highlighting Data . STATIC _ METHOD ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttributes Descriptor (" Std Ġapi ", ĠLua Highlighting Data . STD _ API )) ĊĊĠĠĠĠĠĠĠ Ġ@ Non N ls ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġour Tags : ĠMutable Map < String , ĠText Attributes Key > Ġ= ĠR ain bow Highlight er . create Rain bow HL M () ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" parameter "] Ġ= ĠLua Highlighting Data . PARAMETER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" doc Tag "] Ġ= ĠLua Highlighting Data . DOC _ COMMENT _ TAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" doc Tag Value "] Ġ= ĠLua Highlighting Data . DOC _ COMMENT _ TAG _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" doc ClassName "] Ġ= ĠLua Highlighting Data . CLASS _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" doc ClassName Ref "] Ġ= ĠLua Highlighting Data . CLASS _ REFERENCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" doc Type Alias "] Ġ= ĠLua Highlighting Data . TYPE _ ALIAS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" doc Keyword "] Ġ= ĠLua Highlighting Data . DOC _ KEYWORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" localVar "] Ġ= ĠLua Highlighting Data . LOCAL _ VAR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" global Var "] Ġ= ĠLua Highlighting Data . GLOBAL _ VAR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" global Function "] Ġ= ĠLua Highlighting Data . GLOBAL _ FUNCTION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" field "] Ġ= ĠLua Highlighting Data . FIELD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" method "] Ġ= ĠLua Highlighting Data . INSTANCE _ METHOD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" static Method "] Ġ= ĠLua Highlighting Data . STATIC _ METHOD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" up Value "] Ġ= ĠLua Highlighting Data . UP _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" std "] Ġ= ĠLua Highlighting Data . STD _ API ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" self "] Ġ= ĠLua Highlighting Data . SELF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" primitive "] Ġ= ĠLua Highlighting Data . PR IMIT IVE _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" region Header "] Ġ= ĠLua Highlighting Data . REGION _ HEADER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġour Tags [" region Desc "] Ġ= ĠLua Highlighting Data . REGION _ DESC ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ