package Ġio . github . facility api . intellij . reference Ċ Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Builder Ċ import Ġcom . intellij . openapi . util . Icon Loader Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Element Resolve Result Ċ import Ġcom . intellij . psi . Psi Reference Base Ċ import Ġio . github . facility api . intellij . find Type Definitions Ċ import Ġio . github . facility api . intellij . psi . F sd Data Spec Ċ import Ġio . github . facility api . intellij . psi . F sd Enum Spec Ċ import Ġio . github . facility api . intellij . psi . F sd Error Set Spec Ċ import Ġio . github . facility api . intellij . psi . F sd Method Spec Ċ Ċ class ĠF sd Reference ( element : ĠPsi Element , Ġtext Range : ĠText Range ) Ġ: ĠPsi Reference Base < Psi Element >( element , Ġtext Range ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġidentifier Ġ= Ġelement . text . substring ( text Range . start Offset , Ġtext Range . end Offset ) ĊĊĠĠĠ Ġoverride Ġfun Ġresolve (): ĠPsi Element ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind Type Definitions ( my Element . project , Ġidentifier ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map (:: Psi Element Resolve Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Psi Element Resolve Result :: getElement ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Variants (): ĠArray < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind Type Definitions ( my Element . project ). map NotNull Ġ{ Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type . parent Ġis ĠF sd Method Spec ) Ġreturn @ map NotNull Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġwhen Ġ( type . parent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF sd Data Spec Ġ-> ĠIcon Loader . get Icon ("/ icons / data . svg ", ĠF sd Data Spec :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF sd Enum Spec Ġ-> ĠIcon Loader . get Icon ("/ icons / enum . svg ", ĠF sd Enum Spec :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF sd Error Set Spec Ġ-> ĠIcon Loader . get Icon ("/ icons / error - set . svg ", ĠF sd Error Set Spec :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLookup Element Builder . create ( type ). with Icon ( icon ) ĊĠĠĠĠĠĠĠ Ġ}. toList (). to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Element Rename ( new ElementName : ĠString ): ĠPsi Element Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Type Reference Ġ= Ġcreate Type Reference ( my Element . project , Ġnew ElementName ) ĊĠĠĠĠĠĠĠ Ġmy Element . parent . node . replace Child ( my Element . node , Ġnew Type Reference . node ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmy Element ĊĠĠĠ Ġ} Ċ } Ċ