/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . idea . perf . util Ċ Ċ import Ġcom . intellij . code Insight . daemon . impl . Highlight Info Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . application . run Write Action Ċ import Ġcom . intellij . openapi . editor . Editor Factory Ċ import Ġcom . intellij . openapi . file Editor . File Document Manager Ċ import Ġcom . intellij . openapi . file Editor . File Editor Manager Ċ import Ġcom . intellij . openapi . project . D umb Service Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . project . ex . Project Manager Ex Ċ import Ġcom . intellij . openapi . project Roots . Java Sdk Ċ import Ġcom . intellij . openapi . project Roots . Sdk Ċ import Ġcom . intellij . openapi . project Roots . impl . Java Aware Project J dk Table Impl Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . Psi Document Manager Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . psi . Psi Manager Ċ import Ġcom . intellij . psi . impl . Psi Document Manager Base Ċ import Ġcom . intellij . test Framework .* Ċ import Ġcom . intellij . test Framework . fixtures . impl . Code Insight TestFixture Impl Ċ import Ġcom . intellij . util . Array Util Rt Ċ import Ġcom . intellij . util . Throwable Runnable Ċ import Ġcom . intellij . util . containers . toArray Ċ import Ġcom . intellij . util . indexing . Un indexed Files Updater Ċ import Ġorg . jetbrains . kotlin . idea . core . script . Script Configuration Manager Ċ import Ġorg . jetbrains . kotlin . idea . framework . Kotlin Sdk Type Ċ import Ġorg . jetbrains . kotlin . idea . perf . Project Builder Ċ import Ġorg . jetbrains . kotlin . idea . perf . Stats Ċ import Ġorg . jetbrains . kotlin . idea . perf . Stats . Companion . run And Measure Ċ import Ġorg . jetbrains . kotlin . idea . perf . performance Test Ċ import Ġorg . jetbrains . kotlin . idea . perf . profil ers . Profiler Config Ċ import Ġorg . jetbrains . kotlin . idea . perf . util . Profile Tools . Companion . disable All Ins pe ctions Ċ import Ġorg . jetbrains . kotlin . idea . perf . util . Profile Tools . Companion . enable All Ins pe ctions Ċ import Ġorg . jetbrains . kotlin . idea . perf . util . Profile Tools . Companion . enable Ins pe ctions Ċ import Ġorg . jetbrains . kotlin . idea . perf . util . Profile Tools . Companion . enable Single Inspection Ċ import Ġorg . jetbrains . kotlin . idea . perf . util . Profile Tools . Companion . init Default Profile Ċ import Ġorg . jetbrains . kotlin . idea . test . invalidate Library Cache Ċ import Ġorg . jetbrains . kotlin . idea . test Framework .* Ċ import Ġorg . jetbrains . kotlin . idea . test Framework . Test Application Manager Ċ import Ġorg . jetbrains . kotlin . idea . util . getProject J dk Table Safe Ċ import Ġjava . io . File Ċ Ċ class ĠPerformance Suite Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġsuite ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstats : ĠStats Scope , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock : Ġ( Stats Scope ) Ġ-> ĠUnit ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTeam City . suite ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats . stats . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock ( stats ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠPsi File . highlight File ( to Ignore : ĠInt Array Ġ= ĠArray Util Rt . EMPTY _ INT _ ARRAY ): ĠList < Highlight Info > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= ĠFile Document Manager . getInstance (). getDocument ( virtual File ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= ĠEditor Factory . getInstance (). get Editors ( document ). first () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPsi Document Manager . getInstance ( project ). commit All Documents () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCode Insight TestFixture Impl . instantiate And Run ( this , Ġeditor , Ġto Ignore , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġrollback Changes ( var arg Ġfile : ĠVirtual File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Document Manager Ġ= ĠFile Document Manager . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun In Ed t And Wait Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Document Manager . reload Files (* file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Manager Ex . getInstance Ex (). open Projects . forEach Ġ{ Ġproject Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpsi Document Manager Base Ġ= ĠPsi Document Manager . getInstance ( project ) Ġas ĠPsi Document Manager Base ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun In Ed t And Wait Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Document Manager Base . clear Un committed Documents () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Document Manager Base . commit All Documents () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠStats Scope ( val Ġconfig : ĠStats Scope Config , Ġval Ġstats : ĠStats , Ġval Ġroot Disposable : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġapp ( f : ĠApplication Scope . () Ġ-> ĠUnit ) Ġ= ĠApplication Scope ( root Disposable , Ġthis ). use ( f ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġmeasure ( name : ĠString , Ġf : ĠMeasurement Scope < T >. () Ġ-> ĠUnit ): ĠList < T ?> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMeasurement Scope < T >( name , Ġstats , Ġconfig ). apply ( f ). run () ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġmeasure ( name : ĠString , Ġf : ĠMeasurement Scope < T >. () Ġ-> ĠUnit , Ġafter : Ġ(() Ġ-> ĠUnit )? ): ĠList < T ?> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMeasurement Scope < T >( name , Ġstats , Ġconfig , Ġafter Ġ= Ġafter ). apply ( f ). run () ĊĊĠĠĠĠĠĠĠ Ġfun Ġlog Stat Value ( name : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlogMessage Ġ{ Ġ" build Statistic Value Ġkey =' ${ stats . name }: Ġ$ name ' Ġvalue ='$ value '" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTeam City . stat Value ("${ stats . name }: Ġ$ name ", Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠTyp ing Config ( ĊĠĠĠĠĠĠĠ Ġval Ġfixture : ĠFix ture , ĊĠĠĠĠĠĠĠ Ġval Ġmarker : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġinsert String : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġsur round Items : ĠString Ġ= Ġ"\ n ", ĊĠĠĠĠĠĠĠ Ġval Ġtype After Marker : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġnote : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġval Ġdelay Ms : ĠLong ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ: ĠAuto Closeable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMeasurement Scope < T >( ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġstats : ĠStats , ĊĠĠĠĠĠĠĠ Ġval Ġconfig : ĠStats Scope Config , ĊĠĠĠĠĠĠĠ Ġvar Ġbefore : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠĠĠĠĠ Ġvar Ġtest : Ġ(() Ġ-> ĠT ? )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġafter : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġrun (): ĠList < T ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġtest Ġ?: Ġerror (" test Ġprocedure Ġisn 't Ġset ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġmutable ListOf < T ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperformance Test < Unit , ĠT > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats ( stats ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwarm Up Iterations ( config . warm up ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiterations ( config . iterations ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbefore () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . add ( t . invoke ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtearDown Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġafter ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofiler Config ( config . profiler Config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠApplication Scope ( val Ġroot Disposable : ĠDis posable , Ġval Ġstats : ĠStats Scope ) Ġ: ĠAuto Closeable Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġinit App ( root Disposable ) ĊĠĠĠĠĠĠĠ Ġval Ġj dk : ĠS dk Ġ= Ġinit Sdk ( root Disposable ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġproject ( external Project : ĠExternal Project , Ġrefresh : ĠBoolean Ġ= Ġfalse , Ġblock : ĠProject Scope . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Scope ( Project Scope Config ( external Project , Ġrefresh ), Ġthis ). use ( block ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġproject ( block : ĠProject With Descriptor Scope . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject With Descriptor Scope ( this ). use ( block ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġproject ( path : ĠString , Ġopen With : ĠProject Open Action Ġ= ĠProject Open Action . EXIST ING _ IDE A _ PROJECT , Ġblock : ĠProject Scope . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Scope ( Project Scope Config ( path , Ġopen With ), Ġthis ). use ( block ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġgradle Project ( path : ĠString , Ġrefresh : ĠBoolean Ġ= Ġfalse , Ġblock : ĠProject Scope . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Scope ( Project Scope Config ( path , ĠProject Open Action . GRAD LE _ PROJECT , Ġrefresh ), Ġthis ). use ( block ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġwarm Up Project () Ġ= Ġproject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname (" hello World ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin File (" Hello Main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Function (" main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam (" args ", Ġ" Array < String >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody (""" println (" Hello ĠWorld !") """) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture (" src / Hello Main . kt "). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . setData Provider ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinit App ( root Disposable : ĠDis posable ): ĠTest Application Manager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= ĠTest Application Manager . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Process Output Interceptor . install ( root Disposable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġapplication ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinit Sdk ( root Disposable : ĠDis posable ): ĠS dk Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrun Write Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj dk Table Impl Ġ= ĠJava Aware Project J dk Table Impl . getInstance Ex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhome Path Ġ= Ġif Ġ( jdk Table Impl . internal J dk . home Directory !!. name Ġ== Ġ" jre ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk Table Impl . internal J dk . home Directory !!. parent . path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk Table Impl . internal J dk . home Path !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Sdk Ġ= ĠJava Sdk . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj dk Ġ= Ġjava Sdk . create J dk (" 1 . 8 ", Ġhome Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinternal Ġ= Ġjava Sdk . create J dk (" IDE A Ġj dk ", Ġhome Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgradle Ġ= Ġjava Sdk . create J dk ( GRAD LE _ JDK _ NAME , Ġhome Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj dk Table Ġ= Ġget Project J dk Table Safe () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk Table . add J dk ( jdk , Ġroot Disposable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk Table . add J dk ( internal , Ġroot Disposable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk Table . add J dk ( gradle , Ġroot Disposable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Sdk Type . setUp IfNeeded () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠStats Scope Config ( var Ġname : ĠString ? Ġ= Ġnull , Ġvar Ġwarm up : ĠInt Ġ= Ġ 2 , Ġvar Ġiterations : ĠInt Ġ= Ġ 5 , Ġvar Ġprofiler Config : ĠProfiler Config Ġ= ĠProfiler Config ()) ĊĊĠĠĠ Ġclass ĠProject Scope Config ( val Ġpath : ĠString , Ġval Ġopen With : ĠProject Open Action , Ġval Ġrefresh : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString Ġ= Ġpath . last Path Segment () ĊĊĠĠĠĠĠĠĠ Ġconstructor ( external Project : ĠExternal Project , Ġrefresh : ĠBoolean ) Ġ: Ġthis ( external Project . path , Ġexternal Project . open With , Ġrefresh ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠAbstract Project Scope ( val Ġapp : ĠApplication Scope ) Ġ: ĠAuto Closeable Ġ{ ĊĠĠĠĠĠĠĠ Ġabstract Ġval Ġproject : ĠProject ĊĠĠĠĠĠĠĠ Ġval Ġopen Files Ġ= Ġmutable ListOf < Virtual File >() ĊĊĠĠĠĠĠĠĠ Ġfun Ġprofile ( profile : ĠProject Profile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( profile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEmpty Profile Ġ-> Ġproject . disable All Ins pe ctions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Profile Ġ-> Ġproject . init Default Profile () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFull Profile Ġ-> Ġproject . enable All Ins pe ctions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCustom Profile Ġ-> Ġproject . enable Ins pe ctions (* profile . inspection Names . toArray ( empty Array ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġhighlight ( fixture : ĠFix ture ) Ġ= Ġhighlight ( fixture . psi File ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġhighlight ( editor File : ĠPsi File ?, Ġto Ignore : ĠInt Array Ġ= ĠArray Util Rt . EMPTY _ INT _ ARRAY ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor File ?. highlight File ( to Ignore ) Ġ?: Ġerror (" editor Ġisn 't Ġready Ġfor Ġhighlight ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġmove Cursor ( config : ĠTyp ing Config ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfixture Ġ= Ġconfig . fixture ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġfixture . editor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Script Dependencies IfNeeded ( fixture ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmarker Ġ= Ġconfig . marker ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtasks Idx Ġ= Ġfixture . text . indexOf ( marker ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( tasks Idx Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" marker Ġ'$ marker ' Ġnot Ġfound Ġin Ġ${ fixture . fileName }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( config . type After Marker ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . caret Model . moveTo Offset ( tasks Idx Ġ+ Ġmarker . length Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . caret Model . moveTo Offset ( tasks Idx Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( sur round Item Ġin Ġconfig . sur round Items ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor TestUtil . perform Typing Action ( editor , Ġsur round Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . caret Model . moveTo Offset ( editor . caret Model . offset Ġ- Ġif Ġ( config . type After Marker ) Ġ 1 Ġelse Ġ 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! config . type After Marker ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( sur round Item Ġin Ġconfig . sur round Items ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor TestUtil . perform Typing Action ( editor , Ġsur round Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . caret Model . moveTo Offset ( editor . caret Model . offset Ġ- Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtype And Highlight ( config : ĠTyp ing Config ): ĠList < Highlight Info > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Ġ= Ġconfig . insert String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstring . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . fixture . type ( string [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . delay Ms ?. let Ġ{ Ġd Ġ-> ĠThread . sleep ( d ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconfig . fixture . do Highlighting () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate Script Dependencies IfNeeded ( fixture : ĠFix ture ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġfixture . v File . path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Fixture . is AK otlin Script File ( path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun And Measure (" update Ġscript Ġdependencies Ġfor Ġ$ path ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Configuration Manager . update Script Dependencies S ynchronously ( fixture . psi File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġenable Single Inspection ( inspection Name : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . project . enable Single Inspection ( inspection Name ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġenable All Ins pe ctions () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . project . enable All Ins pe ctions () ĊĊĠĠĠĠĠĠĠ Ġfun Ġeditor ( path : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFix ture . open File In Editor ( project , Ġpath ). psi File . also Ġ{ Ġopen Files . add ( it . virtual File ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfixture ( path : ĠString ): ĠFix ture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfixture Ġ= ĠFix ture . open Fixture ( project , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Files . add ( fixture . v File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Fixture . is AK otlin Script File ( path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Configuration Manager . update Script Dependencies S ynchronously ( fixture . psi File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfixture ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġrollback Changes () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrollback Changes (* open Files . to Typed Array ()) ĊĊĠĠĠĠĠĠĠ Ġfun Ġclose ( editor File : ĠPsi File ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommit All Documents () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor File ?. virtual File ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Editor Manager . getInstance ( project ). close File ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġmeasure ( var arg Ġname : ĠString , Ġf : ĠMeasurement Scope < T >. () Ġ-> ĠUnit ): ĠList < T ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġafter Ġ= Ġ{ ĠPsi Manager . getInstance ( project ). drop Psi Caches () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġapp . stats . measure ( name . join ToString ("- "), Ġf , Ġafter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġmeasure ( var arg Ġname : ĠString , Ġfixture : ĠFix ture , Ġf : ĠMeasurement Scope < T >. () Ġ-> ĠUnit ): ĠList < T ?> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure ("${ name . join ToString ("- ")} Ġ${ fixture . fileName }", Ġf Ġ= Ġf ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRun All ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThrowable Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . let Ġ{ Ġpr j Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . application . close Project ( prj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). run () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠProject With Descriptor Scope ( app : ĠApplication Scope ) Ġ: ĠAbstract Project Scope ( app ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdescriptor : ĠProject Builder ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġproject : ĠProject Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġdescriptor Ġ?: Ġerror (" project Ġis Ġnot Ġconfigured ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen Project Ġ= Ġbuilder . open Project Operation () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Project . open Project (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Project . post Open Project ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdescriptor ( descriptor : ĠProject Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . descriptor Ġ= ĠProject Builder (). apply ( descriptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠProject Scope ( config : ĠProject Scope Config , Ġapp : ĠApplication Scope ) Ġ: ĠAbstract Project Scope ( app ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġproject : ĠProject Ġ= Ġinit Project ( config , Ġapp ) ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinit Project ( config : ĠProject Scope Config , Ġapp : ĠApplication Scope ): ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Path Ġ= ĠFile ( config . path ). canonical Path ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUseful TestCase . assertTrue (" path Ġ${ config . path } Ġdoes Ġnot Ġexist , Ġcheck ĠREADME . md ", ĠFile ( project Path ). exists ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen Project Ġ= ĠOpen Project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Path Ġ= Ġproject Path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectName Ġ= Ġconfig . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj dk Ġ= Ġapp . jdk , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Open Action Ġ= Ġconfig . open With ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Open Action . open Project ( open Project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Project . project Open Action . post Open Project ( project , Ġopen Project ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġindexing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( config . refresh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Library Cache ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCode Insight TestFixture Impl . ensure Indexes Up ToDate ( project ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch All Invocation Events () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( D umb Service . getInstance ( project )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġqueue Task ( Un indexed Files Updater ( project )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomplete Just Submitted Tasks () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch All Invocation Events () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFix ture . enable Annot ators And Load Definitions ( project ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . application ?. setData Provider ( Test DataProvider ( project )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġclass ĠProject Profile Ċ object ĠEmpty Profile Ġ: ĠProject Profile () Ċ object ĠDefault Profile Ġ: ĠProject Profile () Ċ object ĠFull Profile Ġ: ĠProject Profile () Ċ data Ġclass ĠCustom Profile ( val Ġinspection Names : ĠList < String >) Ġ: ĠProject Profile () Ċ Ċ fun ĠUseful TestCase . suite ( ĊĠĠĠ Ġsuite Name : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġconfig : ĠPerformance Suite . Stats Scope Config Ġ= ĠPerformance Suite . Stats Scope Config (), ĊĠĠĠ Ġblock : ĠPerformance Suite . Stats Scope . () Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠPerformance Suite . suite ( ĊĠĠĠĠĠĠĠ Ġsuite Name Ġ?: Ġthis . java Class . name , ĊĠĠĠĠĠĠĠ ĠPerformance Suite . Stats Scope ( config , ĠStats ( config . name Ġ?: Ġsuite Name Ġ?: Ġname , Ġconfig . profiler Config ), Ġtest Root Disposable ), ĊĠĠĠĠĠĠĠ Ġblock ĊĠĠĠ Ġ) Ċ }