diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetTemplateInsertHandler.java b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetTemplateInsertHandler.java index 005bbadad58..e92c7bd5c6e 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetTemplateInsertHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetTemplateInsertHandler.java @@ -73,7 +73,7 @@ public class JetTemplateInsertHandler implements InsertHandler { } public static LookupElementBuilder lookup(String template) { - String presentation = template.replaceAll("<#<(\\w+)>#>", "..."); + String presentation = template.replaceAll("<#<(\\w+)>#>", "...").replace("\n", ""); LookupElementBuilder builder = LookupElementBuilder.create(presentation).setBold(); return builder.setInsertHandler(new JetTemplateInsertHandler(template)); } diff --git a/idea/src/org/jetbrains/jet/plugin/liveTemplates/JetTemplateContextType.java b/idea/src/org/jetbrains/jet/plugin/liveTemplates/JetTemplateContextType.java index b5d60867101..b0f4d9faa38 100644 --- a/idea/src/org/jetbrains/jet/plugin/liveTemplates/JetTemplateContextType.java +++ b/idea/src/org/jetbrains/jet/plugin/liveTemplates/JetTemplateContextType.java @@ -122,7 +122,9 @@ public abstract class JetTemplateContextType extends TemplateContextType { @Override protected boolean isInContext(@NotNull PsiElement element) { - return element.getParent() instanceof JetExpression; + return element.getParent() instanceof JetExpression && !(element.getParent() instanceof JetConstantExpression) && + !(element.getParent().getParent() instanceof JetDotQualifiedExpression) + && !(element.getParent() instanceof JetParameter); } } } diff --git a/idea/testData/completion/keywords/InClassBeforeFun.kt b/idea/testData/completion/keywords/InClassBeforeFun.kt index 908f79863f3..681e7a69e34 100644 --- a/idea/testData/completion/keywords/InClassBeforeFun.kt +++ b/idea/testData/completion/keywords/InClassBeforeFun.kt @@ -13,17 +13,17 @@ public class Test { // ABSENT: break // ABSENT: by // ABSENT: catch -// EXIST: class +// EXIST: class ... {...} // ABSENT: continue // ABSENT: default // ABSENT: do // ABSENT: else -// EXIST: enum +// EXIST: enum class ... {...} // ABSENT: false // EXIST: final // ABSENT: finally // ABSENT: for -// EXIST: fun +// EXIST: fun ...(...) : ... {...} // EXIST: get // ABSENT: if // ABSENT: import @@ -47,12 +47,14 @@ public class Test { // ABSENT: This // ABSENT: this // ABSENT: throw -// EXIST: trait +// EXIST: trait ... {...} // ABSENT: true // ABSENT: try // EXIST: type -// EXIST: val -// EXIST: var +// EXIST: val ... : ... = ... +// EXIST: val ... : ...get() {...} +// EXIST: var ... : ... = ... +// EXIST: var ... : ...get() {...}set(value) {...} // ABSENT: vararg // ABSENT: when // ABSENT: where diff --git a/idea/testData/completion/keywords/InClassScope.kt b/idea/testData/completion/keywords/InClassScope.kt index 0682d0b1148..410d33e3392 100644 --- a/idea/testData/completion/keywords/InClassScope.kt +++ b/idea/testData/completion/keywords/InClassScope.kt @@ -8,17 +8,17 @@ class TestClass { // ABSENT: break // ABSENT: by // ABSENT: catch -// EXIST: class +// EXIST: class ... {...} // ABSENT: continue // ABSENT: default // ABSENT: do // ABSENT: else -// EXIST: enum +// EXIST: enum class ... {...} // ABSENT: false // EXIST: final // ABSENT: finally // ABSENT: for -// EXIST: fun +// EXIST: fun ...(...) : ... {...} // EXIST: get // ABSENT: if // ABSENT: import @@ -42,12 +42,14 @@ class TestClass { // ABSENT: This // ABSENT: this // ABSENT: throw -// EXIST: trait +// EXIST: trait ... {...} // ABSENT: true // ABSENT: try // EXIST: type -// EXIST: val -// EXIST: var +// EXIST: val ... : ... = ... +// EXIST: val ... : ...get() {...} +// EXIST: var ... : ... = ... +// EXIST: var ... : ...get() {...}set(value) {...} // ABSENT: vararg // ABSENT: when // ABSENT: where diff --git a/idea/testData/completion/keywords/InFunctionScope.kt b/idea/testData/completion/keywords/InFunctionScope.kt index 9e3f6aebb2b..04c2b465211 100644 --- a/idea/testData/completion/keywords/InFunctionScope.kt +++ b/idea/testData/completion/keywords/InFunctionScope.kt @@ -8,18 +8,18 @@ fun foo() { // EXIST: break // EXIST: by // EXIST: catch -// EXIST: class +// EXIST: class ... {...} // EXIST: continue -// EXIST: do +// EXIST: do {...} while (...) // EXIST: else -// EXIST: enum +// EXIST: enum class ... {...} // EXIST: false // ABSENT: final // EXIST: finally -// EXIST: for -// EXIST: fun +// EXIST: for (... in ...) {...} +// EXIST: fun ...(...) : ... {...} // EXIST: get -// EXIST: if +// EXIST: if (...) {...} // ABSENT: import // EXIST: in // EXIST: inline @@ -40,13 +40,13 @@ fun foo() { // EXIST: This // EXIST: this // EXIST: throw -// EXIST: trait +// EXIST: trait ... {...} // EXIST: true // EXIST: try // EXIST: type -// EXIST: val -// EXIST: var +// EXIST: val ... = ... +// EXIST: var ... = ... // EXIST: vararg -// EXIST: when +// EXIST: when (...) {... -> ...else -> ...} // EXIST: where -// EXIST: while +// EXIST: while (...) {...} diff --git a/idea/testData/completion/keywords/InTopProperty.kt b/idea/testData/completion/keywords/InTopProperty.kt index ea8bb7a4cbc..14c070edf98 100644 --- a/idea/testData/completion/keywords/InTopProperty.kt +++ b/idea/testData/completion/keywords/InTopProperty.kt @@ -2,7 +2,7 @@ var a : Int = // EXIST: else // EXIST: false -// EXIST: if +// EXIST: if (...) ... else ... // EXIST: null // EXIST: this // EXIST: true \ No newline at end of file diff --git a/idea/testData/completion/keywords/InTopScopeAfterPackage.kt b/idea/testData/completion/keywords/InTopScopeAfterPackage.kt index 80d8446a904..f923eb9331e 100644 --- a/idea/testData/completion/keywords/InTopScopeAfterPackage.kt +++ b/idea/testData/completion/keywords/InTopScopeAfterPackage.kt @@ -2,8 +2,8 @@ package Test -// EXIST: enum -// EXIST: trait -// EXIST: class -// EXIST: fun +// EXIST: enum class ... {...} +// EXIST: trait ... {...} +// EXIST: class ... {...} +// EXIST: fun ...(...) : ... {...} diff --git a/idea/testData/completion/keywords/InTypeScope.kt b/idea/testData/completion/keywords/InTypeScope.kt index 71218fbdc50..3a1146fe185 100644 --- a/idea/testData/completion/keywords/InTypeScope.kt +++ b/idea/testData/completion/keywords/InTypeScope.kt @@ -8,18 +8,18 @@ fun foo() { // EXIST: break // EXIST: by // EXIST: catch -// EXIST: class +// EXIST: class ... {...} // EXIST: continue -// EXIST: do +// EXIST: do {...} while (...) // EXIST: else -// EXIST: enum +// EXIST: enum class ... {...} // EXIST: false // ABSENT: final // EXIST: finally -// EXIST: for -// EXIST: fun +// EXIST: for (... in ...) {...} +// EXIST: fun ...(...) : ... {...} // EXIST: get -// EXIST: if +// EXIST: if (...) {...} // ABSENT: import // EXIST: in // EXIST: inline @@ -40,13 +40,13 @@ fun foo() { // EXIST: This // EXIST: this // EXIST: throw -// EXIST: trait +// EXIST: trait ... {...} // EXIST: true // EXIST: try // EXIST: type -// EXIST: val -// EXIST: var +// EXIST: val ... = ... +// EXIST: var ... = ... // EXIST: vararg -// EXIST: when +// EXIST: when (...) {... -> ...else -> ...} // EXIST: where -// EXIST: while +// EXIST: while (...) {...} diff --git a/idea/testData/completion/keywords/TopScope.kt b/idea/testData/completion/keywords/TopScope.kt index 52efbe1d427..c47eb79b35f 100644 --- a/idea/testData/completion/keywords/TopScope.kt +++ b/idea/testData/completion/keywords/TopScope.kt @@ -6,17 +6,17 @@ // ABSENT: break // ABSENT: by // ABSENT: catch -// EXIST: class +// EXIST: class ... {...} // ABSENT: continue // ABSENT: default // ABSENT: do // ABSENT: else -// EXIST: enum +// EXIST: enum class ... {...} // ABSENT: false // EXIST: final // ABSENT: finally // ABSENT: for -// EXIST: fun +// EXIST: fun ...(...) : ... {...} // EXIST: get // ABSENT: if // EXIST: import @@ -25,7 +25,6 @@ // EXIST: internal // ABSENT: is // ABSENT: null -// ABSENT: object // EXIST: open // ABSENT: out // ABSENT: override @@ -40,12 +39,14 @@ // ABSENT: This // ABSENT: this // ABSENT: throw -// EXIST: trait +// EXIST: trait ... {...} // ABSENT: true // ABSENT: try // EXIST: type -// EXIST: val -// EXIST: var +// EXIST: val ... : ... = ... +// EXIST: val ... : ...get() {...} +// EXIST: var ... : ... = ... +// EXIST: var ... : ...get() {...}set(value) {...} // ABSENT: vararg // ABSENT: when // ABSENT: where