This is an automated email from the ASF dual-hosted git repository. arusinha pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new 4a21981 [NETBEANS-3202] Fix issue in Text Block (#1570) 4a21981 is described below commit 4a2198190e89ea41892491f7d4a516eb7f528e40 Author: Akshay-Gupta-Oracle <55184560+akshay-gupta-ora...@users.noreply.github.com> AuthorDate: Mon Dec 2 14:34:38 2019 +0530 [NETBEANS-3202] Fix issue in Text Block (#1570) * {Netbeans:3202] Fix issue in Text Block * [NETBEANS-3202] Fix issue in Text Block --- .../org/netbeans/modules/editor/java/JavaKit.java | 2 +- .../modules/editor/java/TypingCompletion.java | 7 ++++ .../editor/java/TypingCompletionUnitTest.java | 46 ++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/java/java.editor/src/org/netbeans/modules/editor/java/JavaKit.java b/java/java.editor/src/org/netbeans/modules/editor/java/JavaKit.java index 69a69c4..6281256 100644 --- a/java/java.editor/src/org/netbeans/modules/editor/java/JavaKit.java +++ b/java/java.editor/src/org/netbeans/modules/editor/java/JavaKit.java @@ -428,7 +428,7 @@ public class JavaKit extends NbEditorKit { public void insert(MutableContext context) throws BadLocationException { int dotPos = context.getCaretOffset(); Document doc = context.getDocument(); - + if(TypingCompletion.posWithinTextBlock(doc, dotPos))return; if (TypingCompletion.posWithinString(doc, dotPos)) { if (CodeStyle.getDefault(doc).wrapAfterBinaryOps()) { context.setText("\" +\n \"", 3, 6); // NOI18N diff --git a/java/java.editor/src/org/netbeans/modules/editor/java/TypingCompletion.java b/java/java.editor/src/org/netbeans/modules/editor/java/TypingCompletion.java index f09bf49..d8867d0 100644 --- a/java/java.editor/src/org/netbeans/modules/editor/java/TypingCompletion.java +++ b/java/java.editor/src/org/netbeans/modules/editor/java/TypingCompletion.java @@ -547,6 +547,13 @@ class TypingCompletion { return posWithinQuotes(doc, caretOffset, JavaTokenId.STRING_LITERAL); } + static boolean posWithinTextBlock(Document doc, int caretOffset) { + TokenSequence<JavaTokenId> javaTS=javaTokenSequence(doc,caretOffset, false); + if(javaTS == null)return false; + boolean movePrevious = javaTS.movePrevious(); + if(!movePrevious)return false; + return posWithinQuotes(doc, caretOffset, JavaTokenId.STRING_LITERAL) && javaTS.token().text().toString().equals("\"\""); + } private static boolean posWithinQuotes(Document doc, int caretOffset, JavaTokenId tokenId) { TokenSequence<JavaTokenId> javaTS = javaTokenSequence(doc, caretOffset, false); if (javaTS != null) { diff --git a/java/java.editor/test/unit/src/org/netbeans/modules/editor/java/TypingCompletionUnitTest.java b/java/java.editor/test/unit/src/org/netbeans/modules/editor/java/TypingCompletionUnitTest.java index 14f1990..3518d95 100644 --- a/java/java.editor/test/unit/src/org/netbeans/modules/editor/java/TypingCompletionUnitTest.java +++ b/java/java.editor/test/unit/src/org/netbeans/modules/editor/java/TypingCompletionUnitTest.java @@ -966,6 +966,52 @@ public class TypingCompletionUnitTest extends NbTestCase { + "}\n"); } +public void testPositionInTextBlock() throws Exception { + try { + SourceVersion.valueOf("RELEASE_13"); + } catch (IllegalArgumentException ex) { + //OK, skip test + return ; + } + Context ctx = new Context(new JavaKit(), + "class Test {\n" + + " {\n" + + " \"\"\"|abcd\"\"\"\n" + + " }\n" + + "}\n"); + ctx.typeChar('\n'); + ctx.assertDocumentTextEquals( + "class Test {\n" + + " {\n" + + " \"\"\"\n" + + " |abcd\"\"\"\n" + + " }\n" + + "}\n"); + } + + public void testPositionInEmptyTextBlock() throws Exception { + try { + SourceVersion.valueOf("RELEASE_13"); + } catch (IllegalArgumentException ex) { + //OK, skip test + return ; + } + Context ctx = new Context(new JavaKit(), + "class Test {\n" + + " {\n" + + " \"\"\"|\"\"\"\n" + + " }\n" + + "}\n"); + ctx.typeChar('\n'); + ctx.assertDocumentTextEquals( + "class Test {\n" + + " {\n" + + " \"\"\"\n" + + " |\"\"\"\n" + + " }\n" + + "}\n"); + } + public void testCommentBlockCompletion() throws Exception { Preferences prefs = MimeLookup.getLookup(JavaKit.JAVA_MIME_TYPE).lookup(Preferences.class); try { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists