package Ġcom . github . sy uch an 1 0 0 5 . image comment Ċ Ċ import Ġcom . intellij . openapi . roots . Project File Index Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġjava . io . IOException Ċ import Ġjava . util . regex . Pattern Ċ Ċ object ĠComment Util Ġ{ ĊĠĠĠ Ġprivate Ġval Ġimage Comment Pattern Ġ= ĠPattern . compile (" ! \\ [( .*? )] \\ (( .* ?) \\ )") ĊĊĠĠĠ Ġfun Ġget Match Data ( text : ĠString ): ĠList < Match Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġimage Comment Pattern . matcher ( text ) ĊĠĠĠĠĠĠĠ Ġval Ġmatches : ĠMutable List < Match Data > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( matcher . find ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatches . add ( Match Data ( matcher . group (), Ġmatcher . start ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmatches ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetImage ByteArray ( element : ĠPsi Element , Ġpath : ĠString ): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent File Ġ= Ġelement . containing File . virtual File Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġfolder Ġ= Ġif Ġ( path . startsWith ("/ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject File Index Ġ= ĠProject File Index . getInstance ( element . project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject File Index . getContent Root For File ( current File ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent File . parent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġfolder ?. find File By RelativePath ( path ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . contents To ByteArray () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMatch Data ( val Ġtext : ĠString , Ġval Ġstart Offset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalt : ĠString Ġ= Ġtext . substring ( 2 , Ġtext . indexOf (' (' ) Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġpath : ĠString Ġ= Ġtext . substring ( text . indexOf (' (' ) Ġ+ Ġ 1 , Ġtext . length Ġ- Ġ 1 ) ĊĠĠĠ Ġ} Ċ } Ċ