Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Honnen2020-03-09 14:53:56 +0000
committerJeff Johnston2020-04-03 12:43:23 +0000
commit8ac6881d75ce9eb05ca2c5dd8a38f18fece5c75a (patch)
tree792374d55a8545815c5e16f6dcff1b811a0ead20
parent34a5112952a97c880df4acd2d6b8818da23fd1c3 (diff)
downloadeclipse.jdt.ui-8ac6881d75ce9eb05ca2c5dd8a38f18fece5c75a.tar.gz
eclipse.jdt.ui-8ac6881d75ce9eb05ca2c5dd8a38f18fece5c75a.tar.xz
eclipse.jdt.ui-8ac6881d75ce9eb05ca2c5dd8a38f18fece5c75a.zip
Bug 520081 - disable smart insert within string literals
Always insert braces/semicolons at caret position when not in default partition type. Change-Id: I4d2ce423544384e04fe517e504ecf6da5fa0cfc2 Signed-off-by: Julian Honnen <julian.honnen@vector.com>
-rw-r--r--org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/SmartSemicolonAutoEditStrategyTest.java15
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/SmartSemicolonAutoEditStrategy.java4
2 files changed, 19 insertions, 0 deletions
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/SmartSemicolonAutoEditStrategyTest.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/SmartSemicolonAutoEditStrategyTest.java
index f767c5ea42..a965b22ba2 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/SmartSemicolonAutoEditStrategyTest.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/SmartSemicolonAutoEditStrategyTest.java
@@ -177,6 +177,11 @@ public class SmartSemicolonAutoEditStrategyTest extends TestCase {
verifySemicolonPosition(24, 24);
}
+ public void testSemicolonInString() throws BadLocationException {
+ fDocument.set(" new Thread(\"\")");
+ verifySemicolonPosition(14, -1);
+ }
+
/* brace tests */
public void testBraceClassDef() throws BadLocationException {
@@ -261,4 +266,14 @@ public class SmartSemicolonAutoEditStrategyTest extends TestCase {
verifyBracePosition(20, 20);
}
+ public void testBraceInString() throws BadLocationException {
+ fDocument.set(" new Thread(\"\")");
+ verifyBracePosition(14, 14);
+ }
+
+ public void testBraceInString2() throws BadLocationException {
+ fDocument.set(" System.out.write(\"((?\\\"{\\\\\\\"\\\\\\\":\\\"+()+\\\",\\\":\\\"ss\\\").());try {\");");
+ verifyBracePosition(50, 50);
+ }
+
}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/SmartSemicolonAutoEditStrategy.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/SmartSemicolonAutoEditStrategy.java
index 7f88938721..f8b9a6d2ae 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/SmartSemicolonAutoEditStrategy.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/SmartSemicolonAutoEditStrategy.java
@@ -270,6 +270,10 @@ public class SmartSemicolonAutoEditStrategy implements IAutoEditStrategy {
if (text == null)
return 0;
+ if (!isDefaultPartition(document, offset + line.getOffset(),partitioning)) {
+ return -1;
+ }
+
int insertPos;
switch (character) {
case BRACECHAR:

Back to the top