|
From: <caw...@us...> - 2007-06-21 15:29:35
|
Revision: 2658
http://svn.sourceforge.net/rubyeclipse/?rev=2658&view=rev
Author: cawilliams
Date: 2007-06-21 08:29:32 -0700 (Thu, 21 Jun 2007)
Log Message:
-----------
fix #4315 - Code Folding too much
Modified Paths:
--------------
trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/SourceElementParser.java
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/folding/DefaultRubyFoldingStructureProvider.java
Modified: trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/SourceElementParser.java
===================================================================
--- trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/SourceElementParser.java 2007-06-21 14:43:48 UTC (rev 2657)
+++ trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/SourceElementParser.java 2007-06-21 15:29:32 UTC (rev 2658)
@@ -122,13 +122,12 @@
typeInfo.superclass = superClass;
}
typeInfo.isModule = false;
- typeInfo.modules = new String[0]; // FIXME Set up the modules as we go, or proactively dive into AST to grab these?
+ typeInfo.modules = new String[0];
typeInfo.secondary = false; // TODO Set secondary to true if we're enclosed by another type?
requestor.enterType(typeInfo);
Instruction ins = super.visitClassNode(iVisited);
-
- requestor.exitType(iVisited.getPosition().getEndOffset() - 1);
+ requestor.exitType(iVisited.getBodyNode().getPosition().getEndOffset() + 3); //'end'.length()
return ins;
}
@@ -154,7 +153,7 @@
Instruction ins = super.visitModuleNode(iVisited);
- requestor.exitType(iVisited.getPosition().getEndOffset() - 1);
+ requestor.exitType(iVisited.getBodyNode().getPosition().getEndOffset() + 3); //'end'.length()
inModuleFunction = false;
return ins;
}
@@ -184,11 +183,11 @@
}
Instruction ins = super.visitDefnNode(iVisited); // now traverse it's body
-
+ int end = iVisited.getPosition().getEndOffset() - 2;
if (methodInfo.isConstructor) {
- requestor.exitConstructor(iVisited.getPosition().getEndOffset());
+ requestor.exitConstructor(end);
} else {
- requestor.exitMethod(iVisited.getPosition().getEndOffset());
+ requestor.exitMethod(end);
}
return ins;
}
@@ -208,7 +207,7 @@
Instruction ins = super.visitDefsNode(iVisited); // now traverse it's body
- requestor.exitMethod(iVisited.getPosition().getEndOffset());
+ requestor.exitMethod(iVisited.getPosition().getEndOffset() - 2);
return ins;
}
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/folding/DefaultRubyFoldingStructureProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/folding/DefaultRubyFoldingStructureProvider.java 2007-06-21 14:43:48 UTC (rev 2657)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/folding/DefaultRubyFoldingStructureProvider.java 2007-06-21 15:29:32 UTC (rev 2658)
@@ -239,9 +239,9 @@
if (element instanceof ISourceReference) {
ISourceReference reference = (ISourceReference) element;
ISourceRange range = reference.getSourceRange();
- // TODO Uncomment when getSource is set up right!
- // String contents = reference.getSource();
- // if (contents == null) return null;
+
+ String contents = reference.getSource();
+ if (contents == null) return null;
List regions = new ArrayList();
int shift = range.getOffset();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|