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() { |