package Ġorg . l uk as j . idea . tor ques cript . psi . impl Ċ Ċ import Ġcom . intellij . ext api . psi . AST Wrapper Psi Element Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Reference Ċ import Ġcom . intellij . psi . util . elementType Ċ import Ġcom . intellij . psi . util . siblings Ċ import Ġcom . intellij . refactor ing . suggest ed . start Offset Ċ import Ġorg . l uk as j . idea . tor ques cript . psi .* Ċ import Ġorg . l uk as j . idea . tor ques cript . reference . TS Function Call Reference Ċ import Ġorg . l uk as j . idea . tor ques cript . reference . TS Function Reference Ċ import Ġorg . l uk as j . idea . tor ques cript . reference . TS Object Reference Ċ Ċ abstract Ġclass ĠTS Function Call Expression Element Impl ( node : ĠAST Node ) Ġ: ĠAST Wrapper Psi Element ( node ), ĊĠĠĠ ĠTS Named Element Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġget Call Accessor (): ĠTS Call Accessor ĊĠĠĠ Ġabstract Ġfun Ġget Expression (): ĠTS Expression ĊĊĠĠĠ Ġoverride Ġfun ĠgetName Identifier (): ĠPsi Element ? Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( function Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . METHOD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Expression () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠTS Ident Expression Impl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . GLOBAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Child ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . GLOBAL _ NS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Expression () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠTS Ident Expression Impl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġname Identifier ?. text ĊĊĠĠĠ Ġoverride Ġfun ĠsetName ( name : ĠString ): ĠPsi Element Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġidentifier Ġ= Ġname Identifier Ġ?: Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġif Ġ( name Identifier Ġis ĠTS Ident Expression ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= Ġname Identifier ?. last Child !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġidentifier . replace ( T SE lement Factory . create Simple < TS Ident Expression Impl >( project , Ġname )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfunction Type : ĠTS FunctionType ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpression Ġ= Ġget Expression () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( expression . elementType Ġ== ĠT ST ypes . IDENT _ EXPRESSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( expression . node . find Child ByType ( T ST ypes . COL ON _ COL ON ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . GLOBAL _ NS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . GLOBAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt 's Ġan Ġexpression , Ġwe Ġhave Ġno Ġway Ġof Ġknowing Ġwhat Ġit Ġmight Ġevaluate Ġto .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTS FunctionType . METHOD ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Reference (): ĠPsi Reference ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġidentifier Ġ= Ġname Identifier Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( function Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . GLOBAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTS Function Reference ( this , Ġidentifier . text Range In Parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . GLOBAL _ NS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTS Function Reference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Expression (). text Range In Parent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTS FunctionType . METHOD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTS Function Reference ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Expression (). text Range In Parent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget References (): ĠArray < Psi Reference > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġidentifier Ġ= Ġname Identifier Ġ?: Ġreturn ĠarrayOf () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( identifier . firstChild Ġ!= Ġidentifier . last Child ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Expression (). references ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( reference !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ