From e545a7c6991b32b6156c7091401984f9b90945f2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 29 Jul 2015 19:58:55 +0200 Subject: [PATCH] add word selection step for selecting a type parameter or type argument list with enclosing brackets #KT-6697 Fixed --- .../idea/editor/wordSelection/KotlinListSelectioner.kt | 7 ++++++- idea/testData/wordSelection/TypeArguments/2.kt | 2 +- idea/testData/wordSelection/TypeArguments/3.kt | 3 +++ idea/testData/wordSelection/TypeParameters/2.kt | 3 +-- idea/testData/wordSelection/TypeParameters/3.kt | 3 +++ 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 idea/testData/wordSelection/TypeArguments/3.kt create mode 100644 idea/testData/wordSelection/TypeParameters/3.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinListSelectioner.kt b/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinListSelectioner.kt index 75c0d09dae4..06b41f15c26 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinListSelectioner.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinListSelectioner.kt @@ -39,6 +39,11 @@ public class KotlinListSelectioner : ExtendWordSelectionHandlerBase() { val node = e.getNode()!! val startNode = node.findChildByType(TokenSet.create(JetTokens.LPAR, JetTokens.LT)) ?: return null val endNode = node.findChildByType(TokenSet.create(JetTokens.RPAR, JetTokens.GT)) ?: return null - return listOf(TextRange(startNode.getStartOffset() + 1, endNode.getStartOffset())) + val innerRange = TextRange(startNode.getStartOffset() + 1, endNode.getStartOffset()) + if (e is JetTypeArgumentList || e is JetTypeParameterList) { + return listOf(innerRange, + TextRange(startNode.getStartOffset(), endNode.getStartOffset() + endNode.getTextLength())) + } + return listOf(innerRange) } } diff --git a/idea/testData/wordSelection/TypeArguments/2.kt b/idea/testData/wordSelection/TypeArguments/2.kt index 97b3e533098..ea163a40a16 100644 --- a/idea/testData/wordSelection/TypeArguments/2.kt +++ b/idea/testData/wordSelection/TypeArguments/2.kt @@ -1,3 +1,3 @@ fun foo() { - foont, B>() + foont, B>() } diff --git a/idea/testData/wordSelection/TypeArguments/3.kt b/idea/testData/wordSelection/TypeArguments/3.kt new file mode 100644 index 00000000000..97b3e533098 --- /dev/null +++ b/idea/testData/wordSelection/TypeArguments/3.kt @@ -0,0 +1,3 @@ +fun foo() { + foont, B>() +} diff --git a/idea/testData/wordSelection/TypeParameters/2.kt b/idea/testData/wordSelection/TypeParameters/2.kt index a2cb2140ada..15e16f7a2ae 100644 --- a/idea/testData/wordSelection/TypeParameters/2.kt +++ b/idea/testData/wordSelection/TypeParameters/2.kt @@ -1,3 +1,2 @@ -fun B> foo() { +fun B> foo() { } - \ No newline at end of file diff --git a/idea/testData/wordSelection/TypeParameters/3.kt b/idea/testData/wordSelection/TypeParameters/3.kt new file mode 100644 index 00000000000..a2cb2140ada --- /dev/null +++ b/idea/testData/wordSelection/TypeParameters/3.kt @@ -0,0 +1,3 @@ +fun B> foo() { +} + \ No newline at end of file