// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġorg . jetbrains . plugins . gradle . service . resolve Ċ Ċ import Ġcom . intellij . model . Symbol Ċ import Ġcom . intellij . model . psi . Psi External Reference Host Ċ import Ġcom . intellij . model . psi . Psi Symbol Reference Ċ import Ġcom . intellij . model . psi . Psi Symbol Reference Hints Ċ import Ġcom . intellij . model . psi . Psi Symbol Reference Provider Ċ import Ġcom . intellij . model . search . Search Request Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Element Manip ulators Ċ import Ġcom . intellij . util . Smart List Ċ import Ġorg . jetbrains . annotations . Api Status . Internal Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . api . statements . arguments . Gr ArgumentList Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . api . statements . expressions . literals . Gr Literal Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . patterns . Gro ovy MethodCall Pattern Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . patterns . Gro ovy Patterns Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . patterns . groovy Element Ċ import Ġorg . jetbrains . plugins . groovy . lang . psi . patterns . psi Method Ċ Ċ @ Internal Ċ class ĠGradle Project Reference Provider Ġ: ĠPsi Symbol Reference Provider Ġ{ ĊĊĠ Ġprivate Ġval Ġmy Pattern Ġ= ĠGro ovy Patterns . string Literal (). with Parent ( ĊĠĠĠ Ġgro ovy Element < Gr ArgumentList >(). with Parent ( ĊĠĠĠĠĠ ĠGro ovy MethodCall Pattern . resolves To ( psi Method ( Gradle Common ClassNames . GRAD LE _ API _ PROJECT , Ġ" project ")) ĊĠĠĠ Ġ) ĊĠ Ġ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠHand led Ġby Ġ[ Gradle Project Reference Searcher ]. ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġget Search Requests ( project : ĠProject , Ġtarget : ĠSymbol ): ĠCollection < Search Request > Ġ= Ġempty List () ĊĊĠ Ġoverride Ġfun Ġget References ( element : ĠPsi External Reference Host , Ġhints : ĠPsi Symbol Reference Hints ): ĠCollection < Psi Symbol Reference > Ġ{ ĊĠĠĠ Ġif Ġ( element Ġ! is ĠGr Literal Ġ|| Ġ! my Pattern . accept s ( element )) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġescap er Ġ= Ġelement . create Literal Text Esc aper () ĊĠĠĠ Ġval Ġmanip ulator Ġ= ĠElement Manip ulators . get Manip ulator ( element ) ĊĠĠĠ Ġval Ġvalue Ġ= ĠStringBuilder () ĊĠĠĠ Ġval Ġrange In Host Ġ= Ġmanip ulator . get Range In Element ( element ) ĊĠĠĠ Ġif Ġ(! es cap er . decode ( range In Host , Ġvalue )) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(! value . startsWith (" :" )) Ġ{ ĊĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġpath Ġ= Ġvalue . split (": ") ĊĠĠĠ Ġval Ġresult Ġ= ĠSmart List < Psi Symbol Reference >() ĊĠĠĠ Ġval Ġsub Path Ġ= ĠArrayList < String >() ĊĠĠĠ Ġvar Ġcurrent Offset In Path Ġ= Ġ 0 ĊĠĠĠ Ġfor Ġ( part Ġin Ġpath ) Ġ{ ĊĠĠĠĠĠ Ġsub Path . add ( part ) ĊĠĠĠĠĠ Ġval Ġpart Start Ġ= Ġescap er . get Offset In Host ( current Offset In Path , Ġrange In Host ) ĊĠĠĠĠĠ Ġcurrent Offset In Path Ġ+= Ġpart . length ĊĠĠĠĠĠ Ġval Ġpart End Ġ= Ġescap er . get Offset In Host ( current Offset In Path , Ġrange In Host ) ĊĠĠĠĠĠ Ġcurrent Offset In Path Ġ+= Ġ 1 Ġ// Ġ":" ĊĠĠĠĠĠ Ġif Ġ( part Start Ġ< Ġ 0 Ġ|| Ġpart End Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġresult Ġ+= ĠGradle Project Reference ( element , ĠText Range ( part Start , Ġpart End ), ĠArrayList ( sub Path )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult ĊĠ Ġ} Ċ } Ċ