package Ġcom . her os l ender . h mf . intellij . insight Ċ Ċ import Ġcom . intellij . code Insight . daemon .* Ċ import Ġcom . intellij . icons . All Icons Ċ import Ġcom . intellij . openapi . editor . markup . G utter Icon Renderer Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . util . Psi Editor Util Ċ import Ġcom . intellij . util . Function Util Ċ import Ġcom . intellij . util . ui . Color Icon Ċ import Ġcom . intellij . util . ui . Colors Icon Ċ import Ġjava . awt . Color Ċ import Ġjavax . swing . Icon Ċ Ċ class ĠColor Line Marker Provider Ġ: ĠLine Marker Provider Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Line Marker Info ( element : ĠPsi Element ): ĠLine Marker Info < *> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġelement . find Color Ġ{ Ġchosen Ġ-> ĠColor Info ( element , Ġchosen . color ) Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigate Action . set Navigate Action ( info , Ġ" Change Ġcolor ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġclass ĠColor Info Ġ: ĠMerge able Line Marker Info < Psi Element > Ġ{ ĊĠĠĠĠĠĠĠ Ġprotected Ġval Ġcolor : ĠColor ĊĊĠĠĠĠĠĠĠ Ġconstructor ( element : ĠPsi Element , Ġcolor : ĠColor ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement . text Range , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor Icon ( 1 2 , Ġcolor ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFunction Util . null Constant < Any , ĠString >(), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG utter Icon Navigation Handler Ġhandler @{ Ġ_, Ġpsi Element Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! psi Element . is Writable Ġ|| Ġ! element . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ handler ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= ĠPsi Editor Util . find Editor ( element ) Ġ?: Ġreturn @ handler ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Clicked Ġon Ġthe Ġcolor !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpicker Ġ= ĠColor Picker ( editor . component ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Color Ġ= Ġpicker . show Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Color Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement . setColor ( new Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG utter Icon Renderer . Alignment . RIGHT ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Merge With ( info : ĠMerge able Line Marker Info <* >) Ġ= Ġinfo Ġis ĠColor Info ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Common Icon Alignment ( infos : ĠList < Merge able Line Marker Info <* >>) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG utter Icon Renderer . Alignment . RIGHT ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Common Icon ( infos : ĠList < Merge able Line Marker Info <* >> ): ĠIcon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( infos . size Ġ== Ġ 2 Ġ&& Ġinfos [ 0 ] Ġis ĠColor Info Ġ&& Ġinfos [ 1 ] Ġis ĠColor Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠColors Icon ( 1 2 , Ġ( infos [ 0 ] Ġas ĠColor Info ). color , Ġ( infos [ 1 ] Ġas ĠColor Info ). color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAll Icons . G utter . Colors ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Common Tooltip ( infos : ĠList < Merge able Line Marker Info <* >>) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFunction Util . null Constant < Psi Element , ĠString >() ĊĠĠĠ Ġ} Ċ }