package Ġorg . jetbrains . dok ka . base . trans l ators . psi . parsers Ċ Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . psi . javadoc . Psi Doc Comment Ċ import Ġcom . intellij . psi . javadoc . Psi Doc Tag Ċ import Ġorg . jetbrains . dok ka . analysis . from Ċ import Ġorg . jetbrains . dok ka . base . trans l ators . psi . find Super Methods OrEmpty Array Ċ import Ġorg . jetbrains . dok ka . links . DR I Ċ import Ġorg . jetbrains . dok ka . utilities . D ok ka Logger Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . idea . k doc . find K Doc Ċ import Ġorg . jetbrains . kotlin . idea . refactor ing . fq Name . get Kotlin Fq Name Ċ import Ġorg . jetbrains . kotlin . idea . search . us ages Search . descriptor Ċ import Ġorg . jetbrains . kotlin . k doc . psi . impl . K Doc Tag Ċ import Ġorg . jetbrains . kotlin . psi . Kt Declaration Ċ import Ġorg . jetbrains . kotlin . psi . Kt Element Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor To Source Utils Ċ import Ġorg . jetbrains . kotlin . utils . addTo Std lib . first Is Instance OrNull Ċ Ċ internal Ġinterface ĠDoc Comment Ġ{ ĊĠĠĠ Ġfun Ġhas Tag ( tag : ĠJ avadoc Tag ): ĠBoolean ĊĠĠĠ Ġfun Ġhas Tag With Exception OfType ( tag : ĠJ avadoc Tag , Ġexception Fq Name : ĠString ): ĠBoolean ĊĠĠĠ Ġfun Ġtags ByName ( tag : ĠJ avadoc Tag , Ġparam : ĠString ? Ġ= Ġnull ): ĠList < Documentation Content > Ċ } Ċ Ċ internal Ġdata Ġclass ĠJava Doc Comment ( val Ġcomment : ĠPsi Doc Comment ) Ġ: ĠDoc Comment Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġhas Tag ( tag : ĠJ avadoc Tag ): ĠBoolean Ġ= Ġcomment . has Tag ( tag ) ĊĠĠĠ Ġoverride Ġfun Ġhas Tag With Exception OfType ( tag : ĠJ avadoc Tag , Ġexception Fq Name : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġcomment . has Tag ( tag ) Ġ&& Ġcomment . tags ByName ( tag ). first Is Instance OrNull < Psi Doc Tag >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . resolve To Element () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Kotlin Fq Name ()?. asString () Ġ== Ġexception Fq Name ĊĊĠĠĠ Ġoverride Ġfun Ġtags ByName ( tag : ĠJ avadoc Tag , Ġparam : ĠString ?): ĠList < Documentation Content > Ġ= ĊĠĠĠĠĠĠĠ Ġcomment . tags ByName ( tag ). map Ġ{ ĠPsi Documentation Content ( it , Ġtag ) Ġ} Ċ } Ċ Ċ internal Ġdata Ġclass ĠKotlin Doc Comment ( val Ġcomment : ĠK Doc Tag , Ġval Ġdescriptor : ĠDeclaration Descriptor ) Ġ: ĠDoc Comment Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġhas Tag ( tag : ĠJ avadoc Tag ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( tag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ avadoc Tag . DESCRIPTION Ġ-> Ġcomment . getContent (). isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtags With Content . any Ġ{ Ġit . text . startsWith ("@ $ tag ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Tag With Exception OfType ( tag : ĠJ avadoc Tag , Ġexception Fq Name : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtags With Content . any Ġ{ Ġit . has Exception WithName ( tag , Ġexception Fq Name ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtags ByName ( tag : ĠJ avadoc Tag , Ġparam : ĠString ?): ĠList < Documentation Content > Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( tag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ avadoc Tag . DESCRIPTION Ġ-> ĠlistOf ( Descriptor Documentation Content ( descriptor , Ġcomment , Ġtag )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcomment . children . map NotNull Ġ{ Ġ( it Ġas ? ĠK Doc Tag ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . name Ġ== Ġ"$ tag " Ġ&& Ġparam ?. let Ġ{ Ġparam Ġ-> Ġit . has Exception WithName ( param ) Ġ} Ġ!= Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠDescriptor Documentation Content ( descriptor , Ġit , Ġtag ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtags With Content : ĠList < K Doc Tag > Ġ= Ġcomment . children . map NotNull Ġ{ Ġ( it Ġas ? ĠK Doc Tag ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠK Doc Tag . has Exception WithName ( tag : ĠJ avadoc Tag , Ġexception Fq Name : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġtext . startsWith ("@ $ tag ") Ġ&& Ġhas Exception WithName ( exception Fq Name ) ĊĊĠĠĠ Ġprivate Ġfun ĠK Doc Tag . has Exception WithName ( exception Fq Name : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġget Subject Name () Ġ== Ġexception Fq Name Ċ } Ċ Ċ internal Ġinterface ĠDocumentation Content Ġ{ ĊĠĠĠ Ġval Ġtag : ĠJ avadoc Tag Ċ } Ċ Ċ internal Ġdata Ġclass ĠPsi Documentation Content ( val Ġpsi Element : ĠPsi Element , Ġoverride Ġval Ġtag : ĠJ avadoc Tag ) Ġ: ĊĠĠĠ ĠDocumentation Content Ċ Ċ internal Ġdata Ġclass ĠDescriptor Documentation Content ( ĊĠĠĠ Ġval Ġdescriptor : ĠDeclaration Descriptor , ĊĠĠĠ Ġval Ġelement : ĠK Doc Tag , ĊĠĠĠ Ġoverride Ġval Ġtag : ĠJ avadoc Tag Ċ ) Ġ: ĠDocumentation Content Ċ Ċ internal Ġfun ĠPsi Doc Comment . has Tag ( tag : ĠJ avadoc Tag ): ĠBoolean Ġ= ĊĠĠĠ Ġwhen Ġ( tag ) Ġ{ ĊĠĠĠĠĠĠĠ ĠJ avadoc Tag . DESCRIPTION Ġ-> Ġdescription Elements . isNotEmpty () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfind Tag ByName ( tag . toString ()) Ġ!= Ġnull ĊĠĠĠ Ġ} Ċ Ċ internal Ġfun ĠPsi Doc Comment . tags ByName ( tag : ĠJ avadoc Tag ): ĠList < Psi Element > Ġ= ĊĠĠĠ Ġwhen Ġ( tag ) Ġ{ ĊĠĠĠĠĠĠĠ ĠJ avadoc Tag . DESCRIPTION Ġ-> Ġdescription Elements . toList () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfind Tags ByName ( tag . toString ()). toList () ĊĠĠĠ Ġ} Ċ Ċ internal Ġfun Ġfind Closest Doc Comment ( element : ĠPsi Named Element , Ġlogger : ĠD ok ka Logger ): ĠDoc Comment ? Ġ{ ĊĠĠĠ Ġ( element Ġas ? ĠPsi Doc Comment Owner )?. doc Comment ?. run Ġ{ Ġreturn ĠJava Doc Comment ( this ) Ġ} ĊĠĠĠ Ġelement . to K doc Comment ()?. run Ġ{ Ġreturn Ġthis Ġ} ĊĊĠĠĠ Ġif Ġ( element Ġis ĠPsi Method ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsuper Methods Ġ= Ġelement . find Super Methods OrEmpty Array ( logger ) ĊĠĠĠĠĠĠĠ Ġif Ġ( super Methods . isEmpty ()) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( super Methods . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfind Closest Doc Comment ( super Methods . single (), Ġlogger ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsuper Method Documentation Ġ= Ġsuper Methods . map Ġ{ Ġmethod Ġ-> Ġfind Closest Doc Comment ( method , Ġlogger ) Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( super Method Documentation . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper Method Documentation . single () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlogger . debug ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Conflict ing Ġdocumentation Ġfor Ġ${ DR I . from ( element )}" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ super Methods . map Ġ{ ĠDRI . from ( it ) Ġ}}" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĠPri or it ize Ġsuper Ġclass Ġover Ġinterface Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠindexOf Super Class Ġ= Ġsuper Methods . indexOf First Ġ{ Ġmethod Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġmethod . parent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Ġis ĠPsi Class ) Ġ! parent . is Interface ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( indexOf Super Class Ġ>= Ġ 0 ) Ġsuper Method Documentation [ indexOf Super Class ] ĊĠĠĠĠĠĠĠ Ġelse Ġsuper Method Documentation . first () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġelement . children . first Is Instance OrNull < Psi Doc Comment >() ?. let Ġ{ ĠJava Doc Comment ( it ) Ġ} Ċ } Ċ Ċ internal Ġfun ĠPsi Named Element . to K doc Comment (): ĠKotlin Doc Comment ? Ġ= ĊĠĠĠ Ġ( navigation Element Ġas ? ĠK t Element )?. find K Doc Ġ{ ĠDescriptor To Source Utils . descriptor To Declaration ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ? . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( this @ to K doc Comment . navigation Element Ġas ? ĠK t Declaration )?. descriptor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Doc Comment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ internal Ġfun ĠPsi Doc Tag . content Elements With Sibling IfNeeded (): ĠList < Psi Element > Ġ= Ġif Ġ( data Elements . isNotEmpty ()) Ġ{ ĊĠĠĠ ĠlistOf NotNull ( ĊĠĠĠĠĠĠĠ Ġdata Elements [ 0 ], ĊĠĠĠĠĠĠĠ Ġdata Elements [ 0 ]. next Sibling ?. take If Ġ{ Ġit . text Ġ!= Ġdata Elements . drop ( 1 ). first OrNull ()?. text Ġ}, ĊĠĠĠĠĠĠĠ Ġ* data Elements . drop ( 1 ). to Typed Array () ĊĠĠĠ Ġ) Ċ } Ġelse Ġ{ ĊĠĠĠ Ġempty List () Ċ } Ċ Ċ internal Ġfun ĠPsi Doc Tag . resolve To Element (): ĠPsi Element ? Ġ= ĊĠĠĠ Ġdata Elements . first OrNull ()?. firstChild ?. reference Element Or Self ()?. resolve To Get D ri ()