package Ġcom . github . br cost a . cl j stuff plugin . actions Ċ Ċ import Ġclo jure . lang . IL ook up Ċ import Ġclo jure . lang . Keyword Ċ import Ġcom . intellij . notification . Notification Ċ import Ġcom . intellij . notification . Notification Type Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . file Editor . File Editor Manager Ċ import Ġcom . intellij . openapi . file Editor . Open FileDescriptor Ċ import Ġcurs ive . repl . Clo jure Console Ċ import Ġcurs ive . repl . actions . Repl Action Ċ Ċ open Ġclass ĠOpen Repl Buffer Action Ġ: ĠAn Action () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( event : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . project Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġevent . project !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Atom Ġ= ĠRe pl Action . repl State ( event . project )?. deref () Ġas ĠI Lookup ? ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Buffer Ġ= Ġ( state Atom ?. val At ( Keyword . intern (" console "))) Ġas ĠClo jure Console ? ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( output Buffer Ġ== Ġnull ) Ġ|| Ġ( output Buffer . clojure Virtual File Ġ== Ġnull )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Clo jure Repl ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" REPL Ġnot Ġfound ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Please Ġopen Ġa ĠREPL Ġinstance Ġfirst !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Type . INFORMATION ). notify ( event . project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepl Buffer Ġ= Ġoutput Buffer . clojure Virtual File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Manager Ġ= ĠFile Editor Manager . getInstance ( project ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! file Manager . isFile Open ( repl Buffer )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Manager . open Text Editor ( Open FileDescriptor ( project , Ġrepl Buffer ), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ