|
From: SVN by r. <sv...@ca...> - 2009-03-04 08:09:00
|
Author: roy
Date: 2009-03-04 09:08:46 +0100 (Wed, 04 Mar 2009)
New Revision: 392
Modified:
src/main/java/nl/improved/sqlclient/util/SQLParser.java
src/test/java/nl/improved/sqlclient/util/SQLParserTest.java
Log:
some tab compl fixes
Modified: src/main/java/nl/improved/sqlclient/util/SQLParser.java
===================================================================
--- src/main/java/nl/improved/sqlclient/util/SQLParser.java 2009-03-02 08:54:07 UTC (rev 391)
+++ src/main/java/nl/improved/sqlclient/util/SQLParser.java 2009-03-04 08:08:46 UTC (rev 392)
@@ -336,15 +336,24 @@
String end;
if (tmpCommand.indexOf(' ') > 0) {
end = tmpCommand.substring(tmpCommand.lastIndexOf(' ')+1).trim();
+ if (tmpCommand.matches(".*"+COMPARATOR+"[\\s]*"+VAR+"[\\s]+(|W|WH|WHE|WHER|WHERE)")) {
+ return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD
+ , Arrays.asList(new String[]{",", "WHERE"}), end);
+ }
+ return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD
+ , Arrays.asList(new String[]{"=", "<>", "LIKE", "<", ">"}), end);
} else {
end = tmpCommand.trim();
+ return new TabCompletionInfo(TabCompletionInfo.MatchType.COLUMN_NAMES
+ , getTableNames(parts), end);
}
- if (tmpCommand.trim().length() > 0) {
+ /*if (tmpCommand.trim().length() > 0) {
return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD
, Arrays.asList(new String[]{"=", "<>", "LIKE", "<", ">"}), end);
}
return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD
, Arrays.asList(new String[]{",", "WHERE"})); // TODO END
+*/
}
private static String getTableName(String alias, List<SQLPart> parts) {
Modified: src/test/java/nl/improved/sqlclient/util/SQLParserTest.java
===================================================================
--- src/test/java/nl/improved/sqlclient/util/SQLParserTest.java 2009-03-02 08:54:07 UTC (rev 391)
+++ src/test/java/nl/improved/sqlclient/util/SQLParserTest.java 2009-03-04 08:08:46 UTC (rev 392)
@@ -664,6 +664,15 @@
assertTrue("=", matches.contains("="));
assertEquals("", info.getStart());
+ sqlCommand = Arrays.asList(new String[]{"UPDATE A SET B"});
+ cursorPos = new Point(sqlCommand.get(0).length(),0);
+ info = SQLParser.getTabCompletionInfo(sqlCommand, cursorPos);
+ assertNotNull(info);
+ assertEquals(TabCompletionInfo.MatchType.COLUMN_NAMES, info.getMatchType());
+ matches = info.getPossibleMatches();
+ assertTrue("A", matches.contains("A"));
+ assertEquals("B", info.getStart());
+
sqlCommand = Arrays.asList(new String[]{"UPDATE A SET B = "});
cursorPos = new Point(sqlCommand.get(0).length(),0);
info = SQLParser.getTabCompletionInfo(sqlCommand, cursorPos);
@@ -672,6 +681,15 @@
matches = info.getPossibleMatches();
assertTrue("A", matches.contains("A"));
assertEquals("", info.getStart());
+
+ sqlCommand = Arrays.asList(new String[]{"UPDATE A SET B = B WH"});
+ cursorPos = new Point(sqlCommand.get(0).length(),0);
+ info = SQLParser.getTabCompletionInfo(sqlCommand, cursorPos);
+ assertNotNull(info);
+ assertEquals(TabCompletionInfo.MatchType.SQL_KEYWORD, info.getMatchType());
+ matches = info.getPossibleMatches();
+ assertTrue("WHERE not in " + matches , matches.contains("WHERE"));
+ assertEquals("WH", info.getStart());
}
public void testGetTableName() {
|