/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . cargo . run config . build tool Ċ Ċ import Ġcom . intellij . execution . Before Run Task Ċ import Ġcom . intellij . execution . Before Run Task Provider Ċ import Ġcom . intellij . execution . configurations . Run Configuration Ċ import Ġcom . intellij . execution . runners . Execution Environment Ċ import Ġcom . intellij . icons . All Icons Ċ import Ġcom . intellij . openapi . action System . DataContext Ċ import Ġcom . intellij . openapi . util . Key Ċ import Ġcom . intellij . task . Project Task Manager Ċ import Ġcom . intellij . task . Project Task Notification Ċ import Ġcom . intellij . task . Project Task Result Ċ import Ġorg . rust . cargo . run config . build tool . Cargo Build Manager . create Build Environment Ċ import Ġorg . rust . cargo . run config . build tool . Cargo Build Manager . get Build Configuration Ċ import Ġorg . rust . cargo . run config . command . Cargo Command Configuration Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ import Ġjavax . swing . Icon Ċ Ċ class ĠC argo Build Task Provider Ġ: ĠBefore Run Task Provider < Cargo Build Task Provider . Build Task >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠKey < Build Task > Ġ= ĠID ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġ" Build " ĊĠĠĠ Ġoverride Ġfun Ġget Icon (): ĠIcon Ġ= ĠAll Icons . Actions . Compile ĊĠĠĠ Ġoverride Ġfun Ġis Singleton (): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Task ( run Configuration : ĠRun Configuration ): ĠBuild Task ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( run Configuration Ġis ĠC argo Command Configuration ) ĠBuild Task () Ġelse Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġexecute Task ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠData Context , ĊĠĠĠĠĠĠĠ Ġconfiguration : ĠRun Configuration , ĊĠĠĠĠĠĠĠ Ġenvironment : ĠExecution Environment , ĊĠĠĠĠĠĠĠ Ġtask : ĠBuild Task ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( configuration Ġ! is ĠC argo Command Configuration ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild Configuration Ġ= Ġget Build Configuration ( configuration ) Ġ?: Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġbuild Environment Ġ= Ġcreate Build Environment ( build Configuration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . also Ġ{ Ġenvironment . copy UserData To ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġbuild ableElement Ġ= ĠC argo Build Configuration ( build Configuration , Ġbuild Environment ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠCompletableFuture < Boolean >() ĊĠĠĠĠĠĠĠ ĠProject Task Manager . getInstance ( configuration . project ). build ( array Of ( build ableElement ), Ġobject : ĠProject Task Notification Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfinished ( execution Result : ĠProject Task Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . complete ( execution Result . errors Ġ== Ġ 0 Ġ&& Ġ! execution Result . is Abort ed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuild Task Ġ: ĠBefore Run Task < Build Task >( ID ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠID : ĠKey < Build Task > Ġ= ĠKey . create (" C ARG O . BUILD _ TASK _ PROVIDER ") ĊĠĠĠ Ġ} Ċ } Ċ