提交 b2a94dc7 authored 作者: Thomas Mueller's avatar Thomas Mueller

H2 Console: auto-complete did not work with multi-line statements.

上级 573c2c5d
......@@ -137,6 +137,16 @@ public class Bnf {
rule.setLinks(ruleMap);
rule.accept(visitor);
}
/**
* Check whether the statement starts with a whitespace.
*
* @param s the statement
* @return if the statement is not empty and starts with a whitespace
*/
public static boolean startWithSpace(String s) {
return s.length() > 0 && Character.isWhitespace(s.charAt(0));
}
/**
* Convert convert ruleLink to rule_link.
......
......@@ -61,7 +61,7 @@ public class RuleElement implements Rule {
String up = sentence.getQueryUpper().trim();
if (up.startsWith(name)) {
query = query.substring(name.length());
while (!"_".equals(name) && query.length() > 0 && Character.isSpaceChar(query.charAt(0))) {
while (!"_".equals(name) && Bnf.startWithSpace(query)) {
query = query.substring(1);
}
sentence.setQuery(query);
......
......@@ -111,7 +111,7 @@ public class RuleFixed implements Rule {
}
break;
case ANY_WORD:
while (s.length() > 0 && !Character.isSpaceChar(s.charAt(0))) {
while (s.length() > 0 && !Bnf.startWithSpace(s)) {
s = s.substring(1);
}
if (s.length() == 0) {
......@@ -185,7 +185,7 @@ public class RuleFixed implements Rule {
throw new AssertionError("type="+type);
}
if (!s.equals(query)) {
while (s.length() > 0 && Character.isSpaceChar(s.charAt(0))) {
while (Bnf.startWithSpace(s)) {
s = s.substring(1);
}
sentence.setQuery(s);
......
......@@ -8,6 +8,8 @@ package org.h2.bnf.context;
import java.util.HashMap;
import java.util.HashSet;
import org.h2.bnf.Bnf;
import org.h2.bnf.BnfVisitor;
import org.h2.bnf.Rule;
import org.h2.bnf.RuleElement;
......@@ -211,14 +213,14 @@ public class DbContextRule implements Rule {
}
break;
}
case PROCEDURE:
autoCompleteProcedure(sentence);
break;
case PROCEDURE:
autoCompleteProcedure(sentence);
break;
default:
throw DbException.throwInternalError("type=" + type);
}
if (!s.equals(query)) {
while (s.length() > 0 && Character.isSpaceChar(s.charAt(0))) {
while (Bnf.startWithSpace(s)) {
s = s.substring(1);
}
sentence.setQuery(s);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论