This is an automated email from the ASF dual-hosted git repository. zjffdu pushed a commit to branch branch-0.9 in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/branch-0.9 by this push: new d509129 [ZEPPELIN-5113]. Cursor of code completion is incorrect in some cases d509129 is described below commit d509129263f69152eaa505f3d94e7e4faee4e887 Author: Jeff Zhang <zjf...@apache.org> AuthorDate: Wed Oct 28 16:40:05 2020 +0800 [ZEPPELIN-5113]. Cursor of code completion is incorrect in some cases ### What is this PR for? The cursor of code completion is incorrect in some cases, this cause the code completion broken in some cases. e.g. ``` %spark.pyspark spark. ``` This PR fix the issue by find the right cursor starting after the interpreter text. ### What type of PR is it? [Bug Fix ] ### Todos * [ ] - Task ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-5113 ### How should this be tested? * Unit test is added and also manually tested. https://travis-ci.org/github/zjffdu/zeppelin/builds/739546111 ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No Author: Jeff Zhang <zjf...@apache.org> Closes #3956 from zjffdu/ZEPPELIN-5113 and squashes the following commits: 161fe1553 [Jeff Zhang] [ZEPPELIN-5113]. Cursor of code completion is incorrect in some cases (cherry picked from commit 234d236803535d830484429f5ccc5c4633558e70) Signed-off-by: Jeff Zhang <zjf...@apache.org> --- .../org/apache/zeppelin/integration/ZeppelinSparkClusterTest.java | 5 +++++ .../src/main/java/org/apache/zeppelin/notebook/Paragraph.java | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinSparkClusterTest.java b/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinSparkClusterTest.java index 3a16670..e1c2931 100644 --- a/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinSparkClusterTest.java +++ b/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinSparkClusterTest.java @@ -431,6 +431,11 @@ public abstract class ZeppelinSparkClusterTest extends AbstractTestRestApi { assertEquals(Status.FINISHED, p.getStatus()); assertEquals("name_abc\n", p.getReturn().message().get(0).getData()); + // test code completion + String code = "%spark.pyspark spark."; + List<InterpreterCompletion> completions = note.completion(p.getId(), code, code.length(), AuthenticationInfo.ANONYMOUS); + assertTrue(completions.size() > 0); + if (isSpark1()) { // run sqlContext test p = note.addNewParagraph(anonymous); diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java index 1938298..66535ff 100644 --- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java +++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java @@ -288,7 +288,10 @@ public class Paragraph extends JobWithProgressPoller<InterpreterResult> implemen if (this.scriptText.isEmpty()) { return 0; } - int countCharactersBeforeScript = buffer.indexOf(this.scriptText); + // Try to find the right cursor from this startPos, otherwise you may get the wrong cursor. + // e.g. %spark.pyspark spark. + int startPos = this.intpText == null ? 0 : this.intpText.length(); + int countCharactersBeforeScript = buffer.indexOf(this.scriptText, startPos); if (countCharactersBeforeScript > 0) { cursor -= countCharactersBeforeScript; }