|
From: <caw...@us...> - 2007-08-21 14:14:48
|
Revision: 3014
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=3014&view=rev
Author: cawilliams
Date: 2007-08-21 07:14:43 -0700 (Tue, 21 Aug 2007)
Log Message:
-----------
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPairMatcher.java
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPairMatcher.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPairMatcher.java 2007-08-21 14:05:14 UTC (rev 3013)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPairMatcher.java 2007-08-21 14:14:43 UTC (rev 3014)
@@ -29,9 +29,11 @@
import org.jruby.ast.SClassNode;
import org.jruby.ast.WhenNode;
import org.jruby.ast.WhileNode;
+import org.jruby.lexer.yacc.SyntaxException;
import org.rubypeople.rdt.internal.core.parser.RubyParser;
import org.rubypeople.rdt.internal.ti.util.ClosestSpanningNodeLocator;
import org.rubypeople.rdt.internal.ti.util.INodeAcceptor;
+import org.rubypeople.rdt.internal.ui.RubyPlugin;
/**
* Helper class for match pairs of characters.
@@ -79,8 +81,17 @@
if (src.length() == 0) {
return false;
}
- RubyParser parser = new RubyParser();
- Node root = parser.parse(src);
+ Node root;
+ try {
+ RubyParser parser = new RubyParser();
+ root = parser.parse(src);
+ } catch (SyntaxException e) {
+ // ignore
+ return false;
+ } catch (RuntimeException e) {
+ RubyPlugin.log(e);
+ return false;
+ }
Node spanning = ClosestSpanningNodeLocator.Instance().findClosestSpanner(root, fOffset, new INodeAcceptor() {
public boolean doesAccept(Node node) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|