From 3059a46ca768cda98f55a8a9105b5425bc18eac7 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 15 Dec 2014 20:11:54 -0700 Subject: [PATCH] Fixed KT-5894 Select Woes: no need to select code block + end of line + corrected selection of when #KT-5894 Fixed --- .../editor/wordSelection/KotlinCodeBlockSelectioner.kt | 2 +- .../editor/wordSelection/KotlinWordSelectionFilter.kt | 5 ++++- idea/testData/wordSelection/IfBody/0.kt | 6 ++++++ idea/testData/wordSelection/IfBody/1.kt | 6 ++++++ idea/testData/wordSelection/IfBody/2.kt | 6 ++++++ idea/testData/wordSelection/IfBody/3.kt | 6 ++++++ idea/testData/wordSelection/IfBody/4.kt | 6 ++++++ idea/testData/wordSelection/IfBody/5.kt | 6 ++++++ idea/testData/wordSelection/IfBody/6.kt | 6 ++++++ idea/testData/wordSelection/WhenEntries/6.kt | 6 +++--- idea/tests/org/jetbrains/jet/plugin/WordSelectionTest.java | 2 ++ 11 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 idea/testData/wordSelection/IfBody/0.kt create mode 100644 idea/testData/wordSelection/IfBody/1.kt create mode 100644 idea/testData/wordSelection/IfBody/2.kt create mode 100644 idea/testData/wordSelection/IfBody/3.kt create mode 100644 idea/testData/wordSelection/IfBody/4.kt create mode 100644 idea/testData/wordSelection/IfBody/5.kt create mode 100644 idea/testData/wordSelection/IfBody/6.kt diff --git a/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinCodeBlockSelectioner.kt b/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinCodeBlockSelectioner.kt index f6c8fef4119..1a9c59f0cb6 100644 --- a/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinCodeBlockSelectioner.kt +++ b/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinCodeBlockSelectioner.kt @@ -44,8 +44,8 @@ public class KotlinCodeBlockSelectioner : ExtendWordSelectionHandlerBase() { val start = findBlockContentStart(node) val end = findBlockContentEnd(node, start) - result.add(e.getTextRange()!!) result.addAll(ExtendWordSelectionHandlerBase.expandToWholeLine(editorText, TextRange(start, end))) + result.addAll(ExtendWordSelectionHandlerBase.expandToWholeLine(editorText, e.getTextRange()!!)) return result } diff --git a/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinWordSelectionFilter.kt b/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinWordSelectionFilter.kt index dd1779b745b..b391967350c 100644 --- a/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinWordSelectionFilter.kt +++ b/idea/src/org/jetbrains/jet/plugin/editor/wordSelection/KotlinWordSelectionFilter.kt @@ -18,7 +18,10 @@ package org.jetbrains.jet.plugin.editor.wordSelection import com.intellij.openapi.util.Condition import com.intellij.psi.PsiElement +import org.jetbrains.jet.lang.psi.JetBlockExpression +import org.jetbrains.jet.lang.psi.JetContainerNode public class KotlinWordSelectionFilter : Condition{ - override fun value(e: PsiElement) = !KotlinListSelectioner.canSelect(e) + override fun value(e: PsiElement) + = !KotlinListSelectioner.canSelect(e) && e !is JetBlockExpression && e !is JetContainerNode } \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/0.kt b/idea/testData/wordSelection/IfBody/0.kt new file mode 100644 index 00000000000..009200cb7f4 --- /dev/null +++ b/idea/testData/wordSelection/IfBody/0.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/1.kt b/idea/testData/wordSelection/IfBody/1.kt new file mode 100644 index 00000000000..0de8c33dac9 --- /dev/null +++ b/idea/testData/wordSelection/IfBody/1.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/2.kt b/idea/testData/wordSelection/IfBody/2.kt new file mode 100644 index 00000000000..b8ddf92d643 --- /dev/null +++ b/idea/testData/wordSelection/IfBody/2.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/3.kt b/idea/testData/wordSelection/IfBody/3.kt new file mode 100644 index 00000000000..31e325fbbe5 --- /dev/null +++ b/idea/testData/wordSelection/IfBody/3.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/4.kt b/idea/testData/wordSelection/IfBody/4.kt new file mode 100644 index 00000000000..a4a3fda85ed --- /dev/null +++ b/idea/testData/wordSelection/IfBody/4.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/5.kt b/idea/testData/wordSelection/IfBody/5.kt new file mode 100644 index 00000000000..5684ee1a3c9 --- /dev/null +++ b/idea/testData/wordSelection/IfBody/5.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/IfBody/6.kt b/idea/testData/wordSelection/IfBody/6.kt new file mode 100644 index 00000000000..998c9ea1b4b --- /dev/null +++ b/idea/testData/wordSelection/IfBody/6.kt @@ -0,0 +1,6 @@ +fun foo() { + if (a) { + f() + g() + } +} \ No newline at end of file diff --git a/idea/testData/wordSelection/WhenEntries/6.kt b/idea/testData/wordSelection/WhenEntries/6.kt index 2e12b5424d1..059df89f9e2 100644 --- a/idea/testData/wordSelection/WhenEntries/6.kt +++ b/idea/testData/wordSelection/WhenEntries/6.kt @@ -1,13 +1,13 @@ fun main(args : Array) { for (i in 1..100) { - when { + when { i%3 == 0 -> {print("Fizz"); continue;} i%5 == 0 -> {print("Buzz"); continue;} (i%3 != 0 && i%5 != 0) -> {print(i); continue;} else -> println() - } - } + } + } } fun foo() : Unit { diff --git a/idea/tests/org/jetbrains/jet/plugin/WordSelectionTest.java b/idea/tests/org/jetbrains/jet/plugin/WordSelectionTest.java index 9ea95f70b3d..968463acddf 100644 --- a/idea/tests/org/jetbrains/jet/plugin/WordSelectionTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/WordSelectionTest.java @@ -45,6 +45,8 @@ public class WordSelectionTest extends JetLightCodeInsightFixtureTestCase { public void testSimpleComment() { doTest(); } + public void testIfBody() { doTest(); } + private void doTest() { String dirName = getTestName(false);