|
From: <caw...@us...> - 2007-05-30 13:22:54
|
Revision: 2556
http://svn.sourceforge.net/rubyeclipse/?rev=2556&view=rev
Author: cawilliams
Date: 2007-05-30 06:22:47 -0700 (Wed, 30 May 2007)
Log Message:
-----------
when saving type name, handle case where name may already have qualifying info in it (i.e. it has Something::ClassName). So we break that up into simple name and enclosing type name. This fixes #4356
Modified Paths:
--------------
trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/search/indexing/SourceIndexerRequestor.java
Modified: trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/search/indexing/SourceIndexerRequestor.java
===================================================================
--- trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/search/indexing/SourceIndexerRequestor.java 2007-05-30 13:21:51 UTC (rev 2555)
+++ trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/search/indexing/SourceIndexerRequestor.java 2007-05-30 13:22:47 UTC (rev 2556)
@@ -5,6 +5,7 @@
import org.rubypeople.rdt.core.Flags;
import org.rubypeople.rdt.core.compiler.CategorizedProblem;
import org.rubypeople.rdt.internal.compiler.ISourceElementRequestor;
+import org.rubypeople.rdt.internal.core.util.Util;
public class SourceIndexerRequestor implements ISourceElementRequestor {
@@ -76,21 +77,32 @@
for (int i = 0; i < modules.length; i++) {
mod[i] = modules[i].toCharArray();
}
- char[] packName = new char[0];
+ char[] packName = new char[0]; // XXX We need to know the relative path from the source folder root!
char[] superclass = new char[0];
if (type.superclass != null) {
superclass = type.superclass.toCharArray();
}
- indexer.addClassDeclaration(type.isModule ? Flags.AccModule : 0, packName, type.name.toCharArray(), getEnclosingTypeNames(), superclass, mod, type.secondary);
+ char[]simpleName = getSimpleName(type.name);
+ char[][] enclosingTypes = getEnclosingTypeNames(type.name);
+ indexer.addClassDeclaration(type.isModule ? Flags.AccModule : 0, packName, simpleName, enclosingTypes, superclass, mod, type.secondary);
typeStack.push(type.name);
}
- private char[][] getEnclosingTypeNames() {
- char[][] names = new char[typeStack.size()][];
+ private char[] getSimpleName(String name) {
+ return Util.getSimpleName(name).toCharArray();
+ }
+
+ private char[][] getEnclosingTypeNames(String typeName) {
+ String[] parts = typeName.split("::");
+
+ char[][] names = new char[typeStack.size() + parts.length - 1][];
int i = 0;
for (String name : typeStack) {
names[i++] = name.toCharArray();
}
+ for (int j = 0; j < parts.length - 1; j++) {
+ names[i++] = parts[j].toCharArray();
+ }
return names;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|