package Ġorg . elixir _ lang . annot ator Ċ Ċ import Ġcom . intellij . lang . annotation . Annotation Holder Ċ import Ġcom . intellij . lang . annotation . Annot ator Ċ import Ġcom . intellij . openapi . editor . colors . Text Attributes Key Ċ import Ġcom . intellij . openapi . project . D umb Aware Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Recursive Element Visitor Ċ import Ġorg . elixir _ lang . Elixir Syntax Highlight er Ċ import Ġorg . elixir _ lang . psi . Elixir Map Arguments Ċ import Ġorg . elixir _ lang . psi . Elixir Map Operation Ċ import Ġorg . elixir _ lang . psi . Elixir Struct Operation Ċ Ċ /** Ċ Ġ* ĠAnnot ates Ġmaps Ġand Ġstructs Ċ Ġ*/ Ċ class ĠMap Ġ: ĠAnnot ator , ĠD umb Aware Ġ{ ĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠPublic ĠInstance ĠMethods ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAnnot ates Ġthe Ġspecified ĠP SI Ġelement . ĊĠĠĠĠ Ġ* ĠIt Ġis Ġguaranteed Ġto Ġbe Ġexecuted Ġin Ġnon - re entrant Ġfashion . ĊĠĠĠĠ Ġ* ĠI . e Ġthere Ġwill Ġbe Ġno Ġcall Ġof Ġthis Ġmethod Ġfor Ġthis Ġinstance Ġbefore Ġprevious Ġcall Ġget Ġcompleted . ĊĠĠĠĠ Ġ* ĠMultiple Ġinstances Ġof Ġthe Ġannot ator Ġmight Ġexist Ġsimultaneously , Ġthough . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġto Ġannotate . ĊĠĠĠĠ Ġ* Ġ@ param Ġholder Ġ Ġthe Ġcontainer Ġwhich Ġreceives Ġannotations Ġcreated Ġby Ġthe Ġplugin . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġannotate ( element : ĠPsi Element , Ġholder : ĠAnnotation Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġelement . accept ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠPsi Recursive Element Visitor () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠPublic ĠInstance ĠMethods ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Element ( element : ĠPsi Element ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( element Ġis ĠE lixir Map Operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Map Operation ( element ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( element Ġis ĠE lixir Struct Operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Struct Operation ( element ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠPrivate ĠInstance ĠMethods ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun Ġvisit Map Operation ( map Operation : ĠE lixir Map Operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight ( holder , Ġmap Operation . map Prefix Operator , ĠE lixir Syntax Highlight er . MAP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight ( holder , Ġmap Operation . map Arguments , ĠE lixir Syntax Highlight er . MAP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun Ġvisit Struct Operation ( struct Operation : ĠE lixir Struct Operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight ( holder , Ġstruct Operation . map Prefix Operator , ĠE lixir Syntax Highlight er . STRUCT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠDO ĠNOT Ġhighlight Ġmap Expression . Ġ ĠIt Ġwill Ġbe Ġhighlighted Ġas Ġeither Ġan Ġalias Ġor Ġmodule ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute , Ġwhich Ġare Ġmore Ġspecific Ġand Ġuseful . Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight ( holder , Ġstruct Operation . map Arguments , ĠE lixir Syntax Highlight er . STRUCT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠPrivate ĠInstance ĠMethods ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġhighlight ( annotation Holder : ĠAnnotation Holder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Arguments : ĠE lixir Map Arguments , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Attributes Key : ĠText Attributes Key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbr aces Ġ= Ġmap Arguments . node . getChildren ( Elixir Syntax Highlight er . BR ACES _ TOKEN _ SET ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( brace Ġin Ġbr aces ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHighlight er . highlight ( annotation Holder , Ġbr ace , Ġtext Attributes Key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhighlight ( annotation Holder : ĠAnnotation Holder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement : ĠPsi Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Attributes Key : ĠText Attributes Key ) Ġ{ ĊĠĠĠĠĠĠĠ ĠHighlight er . highlight ( annotation Holder , Ġelement , Ġtext Attributes Key ) ĊĠĠĠ Ġ} Ċ } Ċ