package Ġcom . github . sh y iko . kt lint . reporter . plain Ċ Ċ import Ġcom . github . sh y iko . kt lint . core . Lint Error Ċ import Ġcom . github . sh y iko . kt lint . core . Reporter Ċ import Ġcom . github . sh y iko . kt lint . reporter . plain . internal . Color Ċ import Ġcom . github . sh y iko . kt lint . reporter . plain . internal . color Ċ import Ġjava . io . File Ċ import Ġjava . io . Print Stream Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ class ĠPlain Reporter ( ĊĠĠĠ Ġval Ġout : ĠPrint Stream , ĊĠĠĠ Ġval Ġverbose : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġgroup By File : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġcolor : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġpad : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠReport er Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġacc Ġ= ĠConcurrent HashMap < String , ĠMutable List < Lint Error >>() ĊĊĠĠĠ Ġoverride Ġfun Ġon Lint Error ( file : ĠString , Ġerr : ĠL int Error , Ġcorrected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! corrected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( groupBy File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc . get Or Put ( file ) Ġ{ ĠArrayList < Lint Error >() Ġ}. add ( err ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout . println ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ color FileName ( file )} ${ ": ". gray ()} ${ err . line }${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": ${ "${ err . col } :" . let Ġ{ Ġif Ġ( pad ) ĠString . format ("% - 4 s ", Ġit ) Ġelse Ġit }} ". gray () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ${ err . detail }${ if Ġ( verbose ) Ġ" Ġ(${ err . rule Id }) ". gray () Ġelse Ġ"" }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter ( file : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( groupBy File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerr List Ġ= Ġacc [ file ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . println ( color FileName ( file )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( line , Ġcol , Ġrule Id , Ġdetail ) Ġin Ġerr List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout . println ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ$ line ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": ${ if Ġ( pad ) ĠString . format ("% - 3 s ", Ġcol ) Ġelse Ġ"$ col "} ". gray () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ$ detail ${ if Ġ( verbose ) Ġ" Ġ($ rule Id ) ". gray () Ġelse Ġ"" }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcolor FileName ( fileName : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= ĠfileName . substring After Last ( File . separator ) ĊĠĠĠĠĠĠĠ Ġreturn ĠfileName . substring ( 0 , ĠfileName . length Ġ- Ġname . length ). gray () Ġ+ Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠString . gray () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( color ) Ġthis . color ( Color . DARK _ GRAY ) Ġelse Ġthis Ċ } Ċ