[hibernate-commits] Hibernate SVN: r18744 - in branches/Branch_3_2/HibernateExt/tools/src: test/org/hibernate/tool/ide/completion and 1 other directory.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Tue Feb 9 07:49:20 EST 2010
Author: max.andersen at jboss.com
Date: 2010-02-09 07:49:20 -0500 (Tue, 09 Feb 2010)
New Revision: 18744
Modified:
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/HQLCodeAssist.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java
Log:
Fix JBIDE-5810 QLCodeAssist doesn't split words correctly (patch from dgeraskov)
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/HQLCodeAssist.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/HQLCodeAssist.java 2010-02-09 12:38:47 UTC (rev 18743)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/HQLCodeAssist.java 2010-02-09 12:49:20 UTC (rev 18744)
@@ -1,5 +1,6 @@
package org.hibernate.tool.ide.completion;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
@@ -10,6 +11,12 @@
private Configuration configuration;
private ConfigurationCompletion completion;
+ private static final char[] charSeparators;
+ static {
+ charSeparators = new char[]{',', '(', ')'};
+ Arrays.sort(charSeparators);
+ }
+
public HQLCodeAssist(Configuration configuration) {
this.configuration = configuration;
completion = new ConfigurationCompletion(configuration);
@@ -81,7 +88,7 @@
return configuration;
}
- public int findNearestWhiteSpace( CharSequence doc, int start ) {
+ public static int findNearestWhiteSpace( CharSequence doc, int start ) {
boolean loop = true;
int offset = 0;
@@ -89,7 +96,7 @@
int tmpOffset = start - 1;
while (loop && tmpOffset >= 0) {
char c = doc.charAt(tmpOffset);
- if(Character.isWhitespace(c)) {
+ if(isWhitespace(c)) {
loop = false;
} else {
tmpOffset--;
@@ -100,4 +107,9 @@
return offset;
}
+ private static boolean isWhitespace(char c) {
+ return Arrays.binarySearch(charSeparators, c) >= 0
+ || Character.isWhitespace(c);
+ }
+
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java 2010-02-09 12:38:47 UTC (rev 18743)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java 2010-02-09 12:49:20 UTC (rev 18744)
@@ -80,7 +80,7 @@
cc.getMatchingImports( "StoreC", hcc );
assertEquals("Invalid entity names count", 1, hcc.getCompletionProposals().length);
assertEquals("StoreCity should have been found", "StoreCity", hcc.getCompletionProposals()[0].getSimpleName());
-
+
hcc.clear();
cc.getMatchingImports( "NotThere", hcc );
assertTrue(hcc.getCompletionProposals().length==0);
@@ -266,9 +266,50 @@
assertNotNull(proposal.getShortEntityName());
assertNotNull(proposal.getEntityName());
//assertNotNull(proposal.getShortEntityName());
- }
+ }
+
+ c.clear();
+ query = "from Store, | ";
+ caretPosition = getCaretPosition(query);
+ hqlEval.codeComplete(query, caretPosition, c);
+
+ completionProposals = c.getCompletionProposals();
+
+ assertEquals(9, completionProposals.length);
+
}
+ public void testFromNonWhitespace() {
+ Collector c = new Collector();
+
+ IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);
+
+ String query = null;
+ int caretPosition = -1;
+ HQLCompletionProposal[] completionProposals = null;
+
+ c.clear();
+ query = "from Store,| ";
+ caretPosition = getCaretPosition(query);
+ hqlEval.codeComplete(query, caretPosition, c);
+ completionProposals = c.getCompletionProposals();
+ assertEquals("should get results after a nonwhitespace separator", 9, completionProposals.length);
+
+ c.clear();
+ query = "from Store s where ";
+ caretPosition = getCaretPosition(query);
+ hqlEval.codeComplete(query, caretPosition, c);
+ completionProposals = c.getCompletionProposals();
+ assertTrue(completionProposals.length > 0);
+
+ c.clear();
+ query = "from Store s where (";
+ caretPosition = getCaretPosition(query);
+ hqlEval.codeComplete(query, caretPosition, c);
+ completionProposals = c.getCompletionProposals();
+ assertTrue(completionProposals.length > 0);
+
+ }
public void testBasicFromPartialEntityName() {
Collector c = new Collector();
More information about the hibernate-commits
mailing list