/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . translations . reference Ċ Ċ import Ġcom . de mon wav . mc dev . translations . Translation Files Ċ import Ġcom . intellij . find . Find Model Ċ import Ġcom . intellij . find . impl . Find In Project Util Ċ import Ġcom . intellij . openapi . application . run Read Action Ċ import Ġcom . intellij . psi . Psi Reference Ċ import Ġcom . intellij . psi . search . sear ches . References Search Ċ import Ġcom . intellij . us ages . Find Usage s Process Presentation Ċ import Ġcom . intellij . us ages . Usage View Presentation Ċ import Ġcom . intellij . util . Processor Ċ import Ġcom . intellij . util . Query Executor Ċ Ċ class ĠTranslation Reference Search Ġ: ĠQuery Executor < Psi Reference , ĠReferences Search . Search Parameters > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute ( parameters : ĠReferences Search . Search Parameters , Ġconsumer : ĠProcessor < in ĠPsi Reference >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= Ġparameters . element To Search ĊĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġrun Read Action Ġ{ ĠTranslation Files . to Translation ( entry )?. key Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ< A > Ġpower ( start : ĠList < A >): ĠSet < List < A >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtail rec Ġfun Ġp wr ( s : ĠList < A >, Ġacc : ĠSet < List < A >> ): ĠSet < List < A >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp wr ( s . take Last ( s . size Ġ- Ġ 1 ), Ġacc Ġ+ Ġacc . map Ġ{ Ġit Ġ+ Ġs . first () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp wr ( start , Ġset Of ( emptyList ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠFind Model () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . custom Scope Ġ= Ġparameters . effective Search Scope ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . is Case Sensitive Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . search Context Ġ= ĠFind Model . Search Context . IN _ STRING _ LITERAL S ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . is RegularExpressions Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnables Ġcustom Ġtranslations Ġfunctions Ġ( for Ġauto - prefix ing Ġcalls , Ġfor Ġinstance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . string To Find Ġ= Ġpower ( key . split ('. ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . join ToString (".") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("| ") Ġ{ Ġ" (${ Regex . escape ( it )}) " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFind In Project Util . find Usage s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters . project , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . file Ġ!= Ġnull Ġ&& Ġit . element Ġ!= Ġnull Ġ&& Ġit . range In Element Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhighlighted Ġ= Ġit . file ?. findElement At ( it . range In Element !!. start Offset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġref Ġ= Ġhighlighted ?. parent ?. references ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . find Ġ{ Ġref Ġ-> Ġref Ġis ĠTranslation Reference Ġ} Ġas ĠTranslation Reference ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ref ?. key ?. full Ġ== Ġkey ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsumer . process ( ref ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFind Usage s Process Presentation ( Usage View Presentation ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ