/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 5 - 2 0 1 9 ĠV lad im ir ĠSch ne ider Ġ< vl ad im ir . sch ne ider @ gmail . com >, Ġall Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠThis Ġcode Ġis Ġprivate Ġproperty Ġof Ġthe Ġcopyright Ġholder Ġand Ġcannot Ġbe Ġused Ġwithout Ċ Ġ* Ġhaving Ġobtained Ġa Ġlicense Ġor Ġprior Ġwritten Ġpermission Ġof Ġthe Ġcopyright Ġholder . Ċ Ġ* Ċ Ġ* Ġ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 . vl ad sch . plugin . util . ui . highlight Ċ Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . editor . colors . Text Attributes Key Ċ import Ġcom . intellij . openapi . editor . ex . Range Highlight er Ex Ċ import Ġcom . intellij . openapi . editor . markup . Highlight er Layer Ċ import Ġcom . intellij . openapi . editor . markup . Highlight er Target Area Ċ import Ġcom . intellij . openapi . editor . markup . Range Highlight er Ċ import Ġcom . intellij . openapi . editor . markup . Text Attributes Ċ import Ġcom . vl ad sch . plugin . util . range Limit Ċ Ċ class ĠEditor Range Highlight er Set ( val Ġeditor : ĠEditor ) Ġ: ĠMutable Set < Range Highlight er Ex > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġrange Highlight ers Ġ= ĠLinked HashSet < Range Highlight er Ex >() ĊĊĠĠĠ Ġprivate Ġfun Ġremove Highlight er ( element : ĠRange Highlight er ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( range Highlight ers . contains ( element )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . markup Model . remove Highlight er ( element ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġadd Range Highlight er ( start Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġend Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġattributes Key : ĠText Attributes Key , ĊĠĠĠĠĠĠĠ Ġhighlighter Layer : ĠInt Ġ= ĠHighlight er Layer . ELEMENT _ UNDER _ C ARE T , ĊĠĠĠĠĠĠĠ Ġtarget Area : ĠHighlight er Target Area Ġ= ĠHighlight er Target Area . EX ACT _ RANGE ĊĠĠĠ Ġ): ĠRange Highlight er Ex Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= Ġeditor . colors Scheme . getAttributes ( attributes Key ) ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Range Highlight er ( start Offset , Ġend Offset , Ġattributes , Ġhighlighter Layer , Ġtarget Area ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġadd Range Highlight er ( start Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġend Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġattributes : ĠText Attributes , ĊĠĠĠĠĠĠĠ Ġhighlighter Layer : ĠInt Ġ= ĠHighlight er Layer . ELEMENT _ UNDER _ C ARE T , ĊĠĠĠĠĠĠĠ Ġtarget Area : ĠHighlight er Target Area Ġ= ĠHighlight er Target Area . EX ACT _ RANGE ĊĠĠĠ Ġ): ĠRange Highlight er Ex Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange Highlight er Ġ= Ġeditor . markup Model . add Range Highlight er ( start Offset , Ġend Offset . range Limit ( 0 , Ġeditor . document . text Length ), Ġhighlighter Layer , Ġattributes , Ġtarget Area ) ĊĠĠĠĠĠĠĠ Ġrange Highlight ers . add ( range Highlight er Ġas ĠRange Highlight er Ex ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight er ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( element : ĠRange Highlight er Ex ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd All ( elements : ĠCollection < Range Highlight er Ex >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġrange Highlight ers . forEach Ġ{ Ġremove Highlight er ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġrange Highlight ers . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠMutable Iterator < Range Highlight er Ex > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight ers . iterator () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove ( element : ĠRange Highlight er Ex ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Highlight er ( element ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight ers . remove ( element ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove All ( elements : ĠCollection < Range Highlight er Ex >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġelements . forEach Ġ{ Ġremove Highlight er ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight ers . removeAll ( elements ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretain All ( elements : ĠCollection < Range Highlight er Ex >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġto Remove Ġ= Ġrange Highlight ers . filter Ġ{ Ġelements . contains ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġremove All ( to Remove ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrange Highlight ers . size ĊĊĠĠĠ Ġoverride Ġfun Ġcontains ( element : ĠRange Highlight er Ex ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight ers . contains ( element ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcontains All ( elements : ĠCollection < Range Highlight er Ex >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight ers . contains All ( elements ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrange Highlight ers . isEmpty () ĊĠĠĠ Ġ} Ċ } Ċ