package Ġarrow . meta . ide . plugins . quotes . system Ċ Ċ import Ġarrow . meta . ide . plugins . quotes . cache . Quote Cache Ċ import Ġarrow . meta . quotes . Quote Ċ import Ġarrow . meta . quotes . Scope Ċ import Ġarrow . meta . quotes . Transform Ċ import Ġcom . intellij . openapi . progress . D umb Progress Indicator Ċ import Ġcom . intellij . openapi . progress . Progress Indicator Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . util . Alarm Ċ import Ġcom . intellij . util . concurrency . App Executor Util Ċ import Ġcom . intellij . util . ui . update . Mer ging Update Queue Ċ import Ġorg . jetbrains . kotlin . psi . Kt Element Ċ import Ġorg . jetbrains . kotlin . psi . Kt File Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . concurrent . ExecutorService Ċ Ċ /** Ċ Ġ* ĠWhere as Ġthe Ġ[ Quote Cache ] Ġpers ists Ġquote Ġtransformations , Ċ Ġ* Ġthe Ġ[ Quote System Service ] Ġis Ġresponsible Ġfor Ġtransform ing ĠK t Files Ġunder Ġa Ġgiven Ġ[ context ]. Ċ Ġ*/ Ċ interface ĠQuote System Service Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġcomputational Ġcontext Ġof Ġ[ Quote System Service ]. ĊĠĠ Ġ*/ ĊĠ Ġinterface ĠC tx Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġpool Ġexecutes Ġquote Ġsystem Ġtransformations . ĊĠĠĠĠ Ġ* Ġ[ ExecutorService ] Ġis Ġthe Ġcomputational Ġcontext Ġif Ġ[ Cache Strategy . background Task ] Ġ== Ġtrue ĊĠĠĠĠ Ġ* Ġ@ see Ġcompute Refresh Cache Ġdefault Ġimplementation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcache Exec : ĠExecutor Service ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġpool Ġexecutes Ġnon - blocking Ġread Ġactions Ġfor Ġdocument Ġupdates . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdoc Exec : ĠExecutor Service ĊĊĠĠĠ Ġ// Ġfix me Ġfind Ġa Ġgood Ġvalue Ġfor Ġtimeout Ġ( milliseconds ) ĊĠĠĠ Ġval Ġeditor Queue : ĠMer ging Update Queue ĊĠ Ġ} ĊĊĠ Ġval Ġcontext : ĠC tx ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġthis Ġextension Ġapplies Ġthe Ġquotes Ġin Ġthe ĠIde Ġfor Ġa Ġgiven Ġ[ file ]. ĊĠĠ Ġ* ĠCurrently Ġh ij ack ing Ġthe ĠQuote System Service Ġand Ġoverriding Ġthis Ġfunction Ġwill Ġsole ly Ġreflect Ġin ĊĠĠ Ġ* ĠIde Ġrelated Ġchanges . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġ< K Ġ: ĠK t Element , ĠP Ġ: ĠK t Element , ĠS Ġ: ĠScope < K >> Ġprocess Kt File ( ĊĠĠĠ Ġfile : ĠK t File , ĊĠĠĠ Ġon : ĠClass < K >, ĊĠĠĠ Ġquote Factory : ĠQuote . Factory < P , ĠK , ĠS >, ĊĠĠĠ Ġmatch : ĠK . () Ġ-> ĠBoolean , ĊĠĠĠ Ġmap : ĠS .( K ) Ġ-> ĠTransform < K > ĊĠ Ġ): ĠPair < Kt File , ĠList < Transform < K >>> ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġdefault Ctx ( project : ĠProject ): ĠC tx Ġ= ĊĠĠĠĠĠ Ġobject Ġ: ĠC tx Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġsingle Ġthread Ġpool Ġavoids Ġconcurrent Ġupdates Ġto Ġthe Ġcache . Ġ// Ġ<- Ġput Ġthis Ġin Ġthe Ġimplementation ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġpool Ġhas Ġto Ġbe Ġshutdown , Ġwhen Ġthe Ġproject Ġcloses . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcache Exec : ĠExecutor Service Ġ= ĠApp Executor Util . create Bounded Application Pool Executor (" arrow Ġworker ", Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdoc Exec : ĠExecutor Service Ġ= ĠApp Executor Util . create Bounded Application Pool Executor (" arrow Ġdoc Ġworker ", Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġeditor Queue : ĠMer ging Update Queue Ġ= ĊĠĠĠĠĠĠĠĠĠ ĠMer ging Update Queue (" arrow Ġdoc Ġevents ", Ġ 5 0 0 , Ġtrue , Ġnull , Ġproject , Ġnull , ĠAlarm . Thread ToUse . PO O LED _ THREAD ) ĊĠĠĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġcomplement s Ġthe Ġquote Ġservice Ġwith Ġa Ġcache Ġstrategy Ċ Ġ* ĠIt Ġaggreg ates Ġthe Ġconfigs Ġof Ġcaching Ġquote Ġtransformations Ċ Ġ*/ Ċ interface ĠCache Strategy Ġ{ ĊĠ Ġval Ġreset Cache : ĠBoolean ĊĠ Ġval Ġindicator : ĠProgress Indicator Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġdefault Ġstrategy Ġresets Ġthe Ġquote Ġcache Ġand Ġuses Ġthe ĠD umb Progress Indicator Ċ Ġ* Ġ@ param Ġreset Cache Ġdefines Ġif Ġall Ġprevious Ġtransformations Ġshould Ġbe Ġremoved Ġor Ġnot . ĠPass Ġfalse Ġfor Ġincremental Ġupdates . Ċ Ġ*/ Ċ fun Ġcache Strategy ( ĊĠ Ġreset Cache : ĠBoolean Ġ= Ġtrue , ĊĠ Ġindicator : ĠProgress Indicator Ġ= ĠD umb Progress Indicator . INSTANCE Ċ ): ĠCache Strategy Ġ= ĊĠ Ġobject Ġ: ĠCache Strategy Ġ{ ĊĠĠĠ Ġoverride Ġval Ġreset Cache : ĠBoolean Ġ= Ġreset Cache ĊĠĠĠ Ġoverride Ġval Ġindicator : ĠProgress Indicator Ġ= Ġindicator ĊĠ Ġ} Ċ