Non-PSI infrastructure

{{
runner /{
}

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.)

{{
def myfoo = newType {
//describe methods&properties here
}

def stringp = mix fqn:"java.lang.String" myfoo

def stringpp = mix cls:stringp {
//describe methods&properties here
}
}}