Child pages
  • Scripting IDE for DSL awareness
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Non-PSI infrastructure

{{

runner runnerClass:"a.b.C"

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

  location type: File,Class

              nameFiler: e -> ...

}

debugger {
}
}}

PSI

resolve&completion:
//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) {}
}

  • No labels