package Ġorg . jetbrains . dok ka . base . render ers Ċ Ċ import Ġorg . jetbrains . dok ka . base . D ok ka Base Ċ import Ġorg . jetbrains . dok ka . links . DR I Ċ import Ġorg . jetbrains . dok ka . links . parent Ċ import Ġorg . jetbrains . dok ka . pages .* Ċ import Ġorg . jetbrains . dok ka . plug ability . D ok ka Context Ċ import Ġorg . jetbrains . dok ka . plug ability . plugin Ċ import Ġorg . jetbrains . dok ka . plug ability . query Single Ċ import Ġorg . jetbrains . kotlin . utils . addTo Std lib . safe As Ċ Ċ class ĠPackage List Service ( val Ġcontext : ĠD ok ka Context ) Ġ{ ĊĊĠĠĠ Ġfun Ġformat Package List ( module : ĠRoot Page Node , Ġformat : ĠString , Ġlink Extension : ĠString ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpackages Ġ= Ġmutable Set Of < String >() ĊĠĠĠĠĠĠĠ Ġval Ġnon Standard Locations Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocation Provider Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . plugin < D ok ka Base >(). query Single Ġ{ Ġlocation Provider Factory Ġ}. getLocation Provider ( module ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġvisit ( node : ĠPage Node , Ġparent D ris : ĠSet < DR I >) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node Ġis ĠPackage Page ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take Unless Ġ{ Ġname Ġ-> Ġname . startsWith ("[ ") Ġ&& Ġname . endsWith (" ]") Ġ} Ġ// ĠDo Ġnot Ġinclude Ġthe Ġpackage Ġname Ġfor Ġdeclarations Ġwithout Ġone ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġpackages . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Page Ġ= Ġnode . safe As < Content Page >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Page ?. d ri ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent D ris . isNotEmpty () Ġ&& Ġit . parent Ġ! in Ġparent D ris ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Provider . resolve ( node ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġnode Location Ġ-> Ġnon Standard Locations [ it . toString ()] Ġ= Ġnode Location Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġcontext . logger . error (" Cannot Ġresolve Ġpath Ġfor Ġ${ node . name } !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode . children . forEach Ġ{ Ġvisit ( it , Ġcontent Page ?. d ri Ġ?: Ġset Of ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvisit ( module , Ġset Of ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ("$ DO K KA _ PARAM _ PREFIX . format :${ format }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line ("$ DO K KA _ PARAM _ PREFIX . link Extension :${ link Extension }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Standard Locations . map Ġ{ Ġ( signature , Ġlocation ) Ġ-> Ġ"$ DO K KA _ PARAM _ PREFIX . location :$ signature \ u 0 0 1 f $ location " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted (). join To ( this , Ġseparator Ġ= Ġ"\ n ", Ġpostfix Ġ= Ġ"\ n ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackages . sorted (). join To ( this , Ġseparator Ġ= Ġ"\ n ", Ġpostfix Ġ= Ġ"\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠD OK KA _ PARAM _ PREFIX Ġ= Ġ"\ $ dok ka " ĊĠĠĠ Ġ} Ċ } Ċ