Non-PSI infrastructure


runner runnerClass:"a.b.C"

          defaultRunnerParams:["a","b",...] {

  location type: File,Class

              nameFiler: e -> ...


debugger {


//todo support dynamically-named methods resolve&completion
//todo set types for things that exist in code but with no type specified (closure parameters, etc.)

mix foo.StringUtils intoClass:java.lang.String
mix xxx.GantScript intoScript:"gant"
mix foo.MyPreciousClass { whereClass.hasAnnotation "foo.Precious" }

mix com.intellij.groovy.DslScript intoScript:"gdsl"
mix com.intellij.groovy.ValuePredicates intoClass:groovy.lang.Closure {
methodParameter "com.intellij.groovy.DslScript", "mix", "where"

class DslScript {
void mix(category, map, Closure where) {}
//todo refine existing method declaration, specify parameters name&type
//todo refine existing field declaration, specify type

class ClassPredicates {
boolean hasAnnotation(qname) {}

class ValuePredicates {
ClassPreicates getWhereClass() {}
boolean methodParameter(cls, method, param) {}