|
From: Christopher W. <caw...@us...> - 2005-12-20 15:35:49
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18326/src/org/rubypeople/rdt/internal/ui/text/ruby Modified Files: SymbolRule.java SingleCharacterPrefixRule.java Log Message: fix symbol rule to not highlight namespaced classes/modules (like Test::Unit::TestCase) Index: SingleCharacterPrefixRule.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/SingleCharacterPrefixRule.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SingleCharacterPrefixRule.java 2 Dec 2005 16:18:11 -0000 1.1 --- SingleCharacterPrefixRule.java 20 Dec 2005 15:35:41 -0000 1.2 *************** *** 39,43 **** while (true) { c = scanner.read(); ! if (c == ICharacterScanner.EOF || Character.isWhitespace((char) c)) { scanner.unread(); if (!lengthInRange(length)) return Token.UNDEFINED; --- 39,43 ---- while (true) { c = scanner.read(); ! if (!isValidCharacter(c, length)) { scanner.unread(); if (!lengthInRange(length)) return Token.UNDEFINED; *************** *** 53,56 **** --- 53,69 ---- /** + * Determine if the current character is valid for the rule. Return false if + * the character is not a part of the token. This is not applied to the + * single character prefix. + * + * @param c + * @param index + * @return + */ + protected boolean isValidCharacter(int c, int index) { + return c != ICharacterScanner.EOF && !Character.isWhitespace((char) c); + } + + /** * Determine if the length of the token is valid. * Index: SymbolRule.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/SymbolRule.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SymbolRule.java 2 Dec 2005 16:18:11 -0000 1.1 --- SymbolRule.java 20 Dec 2005 15:35:41 -0000 1.2 *************** *** 16,19 **** --- 16,25 ---- super(PREFIX, token, 2, Integer.MAX_VALUE); } + + protected boolean isValidCharacter(int c, int index) { + if (!super.isValidCharacter(c, index)) return false; + if (((char)c) == ':') return false; // other than first character (prefix) symbols can't contain another colon + return true; + } } |