/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ @ file : Jvm Name (" Reference Utils ") Ċ Ċ package Ġorg . jetbrains . kotlin . test . util Ċ Ċ import Ġcom . intellij . navigation . Navigation Item Ċ import Ġcom . intellij . psi . Psi Anonymous Class Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Package Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġorg . jetbrains . kotlin . idea . util . module Ċ import Ġorg . jetbrains . kotlin . psi . Kt Class Ċ import Ġorg . jetbrains . kotlin . psi . Kt Object Declaration Ċ import Ġorg . jetbrains . kotlin . psi . Kt String Template Expression Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . plain Content Ċ import Ġorg . junit . Assert Ċ Ċ @ Jvm Over loads Ċ fun ĠPsi Element . render As G oto Implementation ( render Module : ĠBoolean Ġ= Ġfalse ): ĠString Ġ{ ĊĠĠĠ Ġval Ġnavigation Element Ġ= Ġnavigation Element ĊĊĠĠĠ Ġif Ġ( navigation Element Ġis ĠK t Object Declaration Ġ&& Ġnavigation Element . is Companion ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// default Ġpresenter Ġreturn Ġnull Ġfor Ġcompanion Ġobject ĊĠĠĠĠĠĠĠ Ġval Ġcontaining Class Ġ= ĠPsi Tree Util . getParent OfType ( navigation Element , ĠK t Class :: class . java ) !! ĊĠĠĠĠĠĠĠ Ġreturn Ġ" comp anion Ġobject Ġof Ġ" Ġ+ Ġcontaining Class . render As G oto Implementation ( render Module ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( navigation Element Ġis ĠK t String Template Expression ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnavigation Element . plain Content ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠAssert . assertTrue ( navigation Element Ġis ĠNavigation Item ) ĊĠĠĠ Ġval Ġpresentation Ġ= Ġ( navigation Element Ġas ĠNavigation Item ). presentation ĊĊĠĠĠ Ġif Ġ( presentation Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Text Ġ?: Ġnavigation Element . text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpresent able Text Ġ= Ġpresentation . present able Text ĊĠĠĠ Ġvar Ġlocation String Ġ= Ġpresentation . location String ĊĠĠĠ Ġif Ġ( location String Ġ== Ġnull Ġ&& Ġparent Ġis ĠPsi Anonymous Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocation String Ġ= Ġ"< anonymous >" ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( render Module ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocation String Ġ= Ġ"[ ${ navigation Element . module ?. name Ġ?: Ġ"" }] Ġ$ location String " ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġif Ġ( location String Ġ== Ġnull Ġ|| Ġnavigation Element Ġis ĠPsi Package ) ĊĠĠĠĠĠĠĠ Ġpresent able Text !! ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġlocation String Ġ+ Ġ"." Ġ+ Ġpresent able Text // Ġfor ĠPsi Package , Ġpresent able Text Ġis ĠF Q Ġname Ġof Ġcurrent Ġpackage Ċ }