Behavior on typing chars with code completion lookup is completely defined by our own handler + added tests for this handler + fixed a few bugs related to this behavior

This commit is contained in:
Valentin Kipyatkov
2014-11-13 17:47:04 +03:00
parent f36208718e
commit 3ebc681eec
52 changed files with 447 additions and 96 deletions
@@ -0,0 +1,11 @@
fun foo(p: () -> Unit){}
fun bar() {
foo(<caret>)
}
fun f(){}
// COMPLETION_TYPE: SMART
// ELEMENT: *
// CHAR: :
@@ -0,0 +1,11 @@
fun foo(p: () -> Unit){}
fun bar() {
foo(:<caret>)
}
fun f(){}
// COMPLETION_TYPE: SMART
// ELEMENT: *
// CHAR: :
@@ -0,0 +1,9 @@
fun foo(p1: Int) { }
fun foo(p1: Int, p2: Int) { }
fun bar(ppp: Int, a: Int) {
foo(<caret>)
}
// ELEMENT: ppp
// CHAR: ','
@@ -0,0 +1,9 @@
fun foo(p1: Int) { }
fun foo(p1: Int, p2: Int) { }
fun bar(ppp: Int, a: Int) {
foo(ppp,<caret>)
}
// ELEMENT: ppp
// CHAR: ','
@@ -0,0 +1,9 @@
fun foo(p1: Int, p2: Int) { }
fun bar(pp: Int, a: Int) {
foo(<caret>)
}
// COMPLETION_TYPE: SMART
// ELEMENT: pp
// CHAR: ','
@@ -0,0 +1,9 @@
fun foo(p1: Int, p2: Int) { }
fun bar(pp: Int, a: Int) {
foo(pp,<caret>)
}
// COMPLETION_TYPE: SMART
// ELEMENT: pp
// CHAR: ','
@@ -0,0 +1,9 @@
class C(filter: (String) -> Boolean)
fun foo(p: C) {
val c: C = <caret>
}
// COMPLETION_TYPE: SMART
// ELEMENT: C
// CHAR: {
@@ -0,0 +1,9 @@
class C(filter: (String) -> Boolean)
fun foo(p: C) {
val c: C = C { <caret> }
}
// COMPLETION_TYPE: SMART
// ELEMENT: C
// CHAR: {
@@ -0,0 +1,9 @@
class C(filter: (String) -> Boolean)
fun foo(p: C) {
val c: C = <caret>
}
// COMPLETION_TYPE: SMART
// ELEMENT: C
// CHAR: (
@@ -0,0 +1,9 @@
class C(filter: (String) -> Boolean)
fun foo(p: C) {
val c: C = C(<caret>)
}
// COMPLETION_TYPE: SMART
// ELEMENT: C
// CHAR: (
@@ -0,0 +1,7 @@
fun foo(o: Any) {
o.<caret>
}
// INVOCATION_COUNT: 0
// ELEMENT: hashCode
// CHAR: .
@@ -0,0 +1,7 @@
fun foo(o: Any) {
o.hashCode().<caret>
}
// INVOCATION_COUNT: 0
// ELEMENT: hashCode
// CHAR: .
@@ -0,0 +1,8 @@
fun foo(filter: (String) -> Boolean) {}
fun bar() {
f<caret>
}
// ELEMENT: foo
// CHAR: {
@@ -0,0 +1,8 @@
fun foo(filter: (String) -> Boolean) {}
fun bar() {
foo { <caret> }
}
// ELEMENT: foo
// CHAR: {
@@ -0,0 +1,8 @@
fun foo(filter: (String) -> Boolean) {}
fun bar() {
f<caret>
}
// ELEMENT: foo
// CHAR: (
@@ -0,0 +1,8 @@
fun foo(filter: (String) -> Boolean) {}
fun bar() {
foo(<caret>)
}
// ELEMENT: foo
// CHAR: (
@@ -0,0 +1,8 @@
fun foo() { }
fun bar() {
f<caret>
}
// ELEMENT: foo
// CHAR: (
@@ -0,0 +1,8 @@
fun foo() { }
fun bar() {
foo(<caret>)
}
// ELEMENT: foo
// CHAR: (
@@ -0,0 +1,8 @@
fun foo(xxx: Int, yyy: Int)
fun test() {
foo(xxx = 10, <caret>)
}
// ELEMENT: yyy
// CHAR: =
@@ -0,0 +1,8 @@
fun foo(xxx: Int, yyy: Int)
fun test() {
foo(xxx = 10, yyy = <caret>)
}
// ELEMENT: yyy
// CHAR: =
@@ -0,0 +1,8 @@
fun foo(xxx: Int, yyy: Int)
fun test() {
foo(xxx = 10, <caret>)
}
// ELEMENT: yyy
// CHAR: ' '
@@ -0,0 +1,8 @@
fun foo(xxx: Int, yyy: Int)
fun test() {
foo(xxx = 10, yyy = <caret>)
}
// ELEMENT: yyy
// CHAR: ' '
@@ -0,0 +1,7 @@
fun foo(start: Int) {
val range = start.<caret>
}
// INVOCATION_COUNT: 0
// ELEMENT: *
// CHAR: .
@@ -0,0 +1,7 @@
fun foo(start: Int) {
val range = start..<caret>
}
// INVOCATION_COUNT: 0
// ELEMENT: *
// CHAR: .
@@ -0,0 +1,4 @@
class A : A<caret>
// ELEMENT: Annotation
// CHAR: ' '
@@ -0,0 +1,4 @@
class A : Annotation <caret>
// ELEMENT: Annotation
// CHAR: ' '