diff --git a/compiler/testData/psi/IdeTemplates.jet b/compiler/testData/psi/IdeTemplates.jet new file mode 100644 index 00000000000..f13e6d27dfb --- /dev/null +++ b/compiler/testData/psi/IdeTemplates.jet @@ -0,0 +1,42 @@ +fun main(args : Array) { + if (<##>) { + <##> + } else { + <##> + } + + fun <##>(<##>) : <##> { + <##> + } + + for (<##> in <##>) { + <##> + } + + when (<##>) { + <##> -> <##> + else -> <##> + } + + var <##> = <##> + + class <##> { + <##> + } + + class <##> { + var <##> : <##> + get() { + <##> + } + set(value) { + <##> + } + + val <##> : <##> + get() { + <##> + } + } +} + diff --git a/compiler/testData/psi/IdeTemplates.txt b/compiler/testData/psi/IdeTemplates.txt new file mode 100644 index 00000000000..20b58e4e611 --- /dev/null +++ b/compiler/testData/psi/IdeTemplates.txt @@ -0,0 +1,294 @@ +JetFile: IdeTemplates.jet + NAMESPACE_HEADER + + FUN + PsiElement(fun)('fun') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('main') + VALUE_PARAMETER_LIST + PsiElement(LPAR)('(') + VALUE_PARAMETER + PsiElement(IDENTIFIER)('args') + PsiWhiteSpace(' ') + PsiElement(COLON)(':') + PsiWhiteSpace(' ') + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Array') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('String') + PsiElement(GT)('>') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IF + PsiElement(if)('if') + PsiWhiteSpace(' ') + PsiElement(LPAR)('(') + CONDITION + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('condition') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + THEN + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('block') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace(' ') + PsiElement(else)('else') + PsiWhiteSpace(' ') + ELSE + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('block') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\n ') + FUN + PsiElement(fun)('fun') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('name') + PsiElement(IDE_TEMPLATE_END)('>#>') + VALUE_PARAMETER_LIST + PsiElement(LPAR)('(') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('params') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + PsiElement(COLON)(':') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('returnType') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('body') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\n ') + FOR + PsiElement(for)('for') + PsiWhiteSpace(' ') + PsiElement(LPAR)('(') + LOOP_PARAMETER + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('i') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + PsiElement(in)('in') + PsiWhiteSpace(' ') + LOOP_RANGE + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('elements') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BODY + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('body') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\n ') + WHEN + PsiElement(when)('when') + PsiWhiteSpace(' ') + PsiElement(LPAR)('(') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('expression') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + WHEN_ENTRY + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('condition') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + PsiElement(ARROW)('->') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('value') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + WHEN_ENTRY + PsiElement(else)('else') + PsiWhiteSpace(' ') + PsiElement(ARROW)('->') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('elseValue') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\n ') + PROPERTY + PsiElement(var)('var') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('name') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('value') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n\n ') + CLASS + PsiElement(class)('class') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('name') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + TYPE_PARAMETER_LIST + + CLASS_BODY + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('body') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\n ') + CLASS + PsiElement(class)('class') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('name') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + TYPE_PARAMETER_LIST + + CLASS_BODY + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + PROPERTY + PsiElement(var)('var') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('name') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + PsiElement(COLON)(':') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('varType') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PROPERTY_ACCESSOR + PsiElement(get)('get') + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('body') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n ') + PROPERTY_ACCESSOR + PsiElement(set)('set') + PsiElement(LPAR)('(') + VALUE_PARAMETER_LIST + VALUE_PARAMETER + PsiElement(IDENTIFIER)('value') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('body') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\n ') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('name') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace(' ') + PsiElement(COLON)(':') + PsiWhiteSpace(' ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('valType') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PROPERTY_ACCESSOR + PsiElement(get)('get') + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + IDE_TEMPLATE_EXPRESSION + PsiElement(IDE_TEMPLATE_START)('<#<') + PsiElement(IDENTIFIER)('body') + PsiElement(IDE_TEMPLATE_END)('>#>') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n') + PsiElement(RBRACE)('}') \ No newline at end of file