package Ġdev . jb ang . idea . run Ċ Ċ import Ġcom . intellij . execution . line Marker . Run Line Marker Contributor Ċ import Ġcom . intellij . psi . Psi Comment Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġdev . jb ang . idea . JB ANG _ DECLARE Ċ import Ġdev . jb ang . idea . jb ang Icon Ċ Ċ class ĠJ Bang Run Line Marker Contributor Ġ: ĠRun Line Marker Contributor () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Info ( element : ĠPsi Element ): ĠInfo ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( element Ġis ĠPsi Comment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinfo : ĠInfo ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomment Ġ= Ġelement . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comment . startsWith ( JB ANG _ DECLARE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠInfo ( jb ang Icon , Ġ{ Ġ" Run Ġby ĠJ Bang " Ġ}, ĠJ Bang Run Script Action ( element )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comment . startsWith ("// JAVA Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġcomment . startsWith ("// GRO OV Y Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġcomment . startsWith ("// K OT LIN Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! element . parent . text . startsWith ( JB ANG _ DECLARE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠInfo ( jb ang Icon , Ġ{ Ġ" Run Ġby ĠJ Bang " Ġ}, ĠJ Bang Run Script Action ( element )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( comment . startsWith ("// DEPS Ġ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscript Text Ġ= Ġelement . parent . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! script Text . startsWith ( JB ANG _ DECLARE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġscript Text . lines () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Directive Available Ġ= Ġlines . any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . startsWith ("// JAVA Ġ") Ġ|| Ġit . startsWith ("// GRO OV Y Ġ") Ġ|| Ġit . startsWith ("// K OT LIN Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! java Directive Available ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Deps Ġ= Ġlines . first Ġ{ Ġit . startsWith ("// DEPS Ġ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comment . trim () Ġ== Ġfirst Deps ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠInfo ( jb ang Icon , Ġ{ Ġ" Run Ġby ĠJ Bang " Ġ}, ĠJ Bang Run Script Action ( element )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinfo ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }