package Ġcoverage Ċ Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . file Editor . File Editor Manager Ċ import Ġcom . intellij . openapi . file Editor . Text Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġjava . util .* Ċ Ċ class ĠDisplay Handler ( private Ġval Ġproject : ĠProject ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmap Ġ= ĠHashMap < Virtual File , ĠCoverage Display >() ĊĊĠĠĠ Ġfun Ġinitialize Map () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( file Ġin ĠFile Editor Manager . getInstance ( project ). open Files ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġeditor : ĠEditor ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( file Editor Ġin ĠFile Editor Manager . getInstance ( project ). get Editors ( file )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file Editor Ġis ĠText Editor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor Ġ= Ġfile Editor . editor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( editor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Display For Editor ( editor , Ġfile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Display s () Ġ{ ĊĠĠĠĠĠĠĠ Ġmap . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . value . redraw File ( it . key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Display For Editor ( editor : ĠEditor , Ġfile : ĠVirtual File ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( file . path . contains (" spec ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġremove Display For File ( file ) ĊĠĠĠĠĠĠĠ Ġval Ġdisplay Ġ= ĠCoverage Display ( editor ) ĊĠĠĠĠĠĠĠ Ġeditor . document . add Document Listener ( display ) ĊĠĠĠĠĠĠĠ Ġdisplay . redraw File ( file ) ĊĠĠĠĠĠĠĠ Ġthis . map [ file ] Ġ= Ġdisplay ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Display For File ( file : ĠVirtual File ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . map [ file ]?. clear () ĊĠĠĠĠĠĠĠ Ġthis . map . remove ( file ) ĊĠĠĠ Ġ} Ċ }