|
From: SVN by r. <sv...@ca...> - 2008-01-09 16:23:00
|
Author: roy
Date: 2008-01-09 16:53:31 +0100 (Wed, 09 Jan 2008)
New Revision: 205
Modified:
src/main/java/nl/improved/sqlclient/SQLUtil.java
src/test/java/nl/improved/sqlclient/SQLUtilTest.java
Log:
added 'start' recognizion for 'and'
Modified: src/main/java/nl/improved/sqlclient/SQLUtil.java
===================================================================
--- src/main/java/nl/improved/sqlclient/SQLUtil.java 2008-01-09 15:48:47 UTC (rev 204)
+++ src/main/java/nl/improved/sqlclient/SQLUtil.java 2008-01-09 15:53:31 UTC (rev 205)
@@ -244,9 +244,15 @@
return new TabCompletionInfo(TabCompletionInfo.MatchType.COLUMN_NAMES
, parseTableNames(commandInfo, commandPoint), end);
}
- System.out.println("'"+upperCommandString +"'\n not matches\n"+regExp);
+ //System.out.println("'"+upperCommandString +"'\n not matches\n"+regExp);
+ String end = "";
+ if (upperCommandString.matches(".*[\\s]+")) {
+ end = "";
+ } else {
+ end = upperCommandString.substring(upperCommandString.lastIndexOf(' ')+1);
+ }
return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD
- , Arrays.asList(new String[]{"AND", "OR", "IN", "GROUP BY", "ORDER BY"}));
+ , Arrays.asList(new String[]{"AND", "OR", "IN", "GROUP BY", "ORDER BY"}), end);
/*String tmpCommand = startOfCommand.substring(startOfCommand.indexOf(lastKeyword)+lastKeyword.length()+1).toUpperCase();
if (startOfCommand.trim().endsWith(lastKeyword)
|| tmpCommand.matches(".*(AND|OR)(|[\\s]+(|"+VAR+"))")) {
@@ -276,7 +282,6 @@
return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD
, Arrays.asList(new String[]{"AND", "OR", "IN", "GROUP BY", "ORDER BY"}));
*/
- } else if (lastKeyword.equalsIgnoreCase("DESC")) {
}
return new TabCompletionInfo(TabCompletionInfo.MatchType.UNKNOWN, Arrays.asList(new String[0]));
}
Modified: src/test/java/nl/improved/sqlclient/SQLUtilTest.java
===================================================================
--- src/test/java/nl/improved/sqlclient/SQLUtilTest.java 2008-01-09 15:48:47 UTC (rev 204)
+++ src/test/java/nl/improved/sqlclient/SQLUtilTest.java 2008-01-09 15:53:31 UTC (rev 205)
@@ -297,6 +297,7 @@
assertTrue(matches.contains("OR"));
assertTrue(matches.contains("GROUP BY"));
assertTrue(matches.contains("ORDER BY"));
+ assertEquals("", info.getStart());
sqlCommand = Arrays.asList(new String[]{"select makelaarnr from makelaar, tree, plugin where parent = makelaar.i_id and child = pl"});
@@ -306,6 +307,15 @@
assertEquals(TabCompletionInfo.MatchType.COLUMN_NAMES, info.getMatchType());
matches = info.getPossibleMatches();
assertEquals("pl", info.getStart());
+
+ sqlCommand = Arrays.asList(new String[]{"SELECT * FROM A,B WHERE A.x = 'x' A"});
+ cursorPos = new Point(sqlCommand.get(0).length(),0);
+ info = SQLUtil.getTabCompletionInfo(sqlCommand, cursorPos);
+ assertNotNull(info);
+ assertEquals(TabCompletionInfo.MatchType.SQL_KEYWORD, info.getMatchType());
+ matches = info.getPossibleMatches();
+ assertTrue(matches.contains("AND"));
+ assertEquals("A", info.getStart());
}
public void testParseTableNames() {
|