package Ġorg . jetbrains . haskell . run . haskell Ċ Ċ import Ġcom . intellij . execution . actions . Configuration Context Ċ import Ġcom . intellij . execution . actions . Run Configuration Producer Ċ import Ġcom . intellij . openapi . diagnostic . Logger Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . roots . Project Root Manager Ċ import Ġcom . intellij . openapi . util . Ref Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġorg . jetbrains . cab al . Cab al File Ċ import Ġorg . jetbrains . cab al . Cab al Interface Ċ import Ġorg . jetbrains . haskell . fileType . H askell File ĊĊ Ċ class ĠCab al Run Configuration Producer Ġ: ĠRun Configuration Producer < Cab al Run Configuration >( H askell Run Configuration Type . INSTANCE ) Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun Ġsetup Configuration From Context ( configuration : ĠCab al Run Configuration ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠConfiguration Context ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Element : ĠRef < Psi Element >? ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġsource Element !!. get () !!. containing File ĊĠĠĠĠĠĠĠ Ġif Ġ( file Ġ! is ĠHaskell File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvirtual File Ġ= Ġfile . get Virtual File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( virtual File Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġfile . getProject () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= ĠProject Root Manager . getInstance ( project ) !!. file Index . getModule For File ( virtual File ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcab al Ġ= ĠCab al Interface . find Cab al ( module !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cab al Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= ĠCab al Interface ( project ). get Psi File ( cab al ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexecut ables Ġ= Ġpsi File . getExec ut ables () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġif Ġ( exec ut ables . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecut ables . get ( 0 ). get Executable Name () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Default " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration !!. my Executable Name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . module Ġ= Ġmodule ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbase Dir Ġ= Ġproject . base Dir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( base Dir Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . working Directory Ġ= Ġbase Dir . path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . name Ġ= Ġconfiguration . suggest ed Name () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . error ( ex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Configuration From Context ( configuration : ĠCab al Run Configuration ?, Ġcontext : ĠConfiguration Context ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext !!. psi Location !!. containing File Ġis ĠHaskell File ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG : ĠLogger Ġ= ĠLogger . getInstance (" ide ah . run . Cab al Run Configuration Producer ") ĊĠĠĠ Ġ} Ċ } Ċ