[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [Dltk-dev] any objections to changing the "toString" of the CollectionType?
|
I like the idea to display some of the array elements, but the basic
implementation should have some options how to display values.
e.g. now in ruby array is displayed as
[...][3]{1,2,3} (id = 23638800)
Strange, isn't it?
So my intention is that basic implementation should be generally usable
and language specifics should be added via inheritance or parameters
passed in the constructor.
Alex
Jae Gangemi wrote:
that 'number[8]' is supposed to work like the java debugger where if
you have an aray you see something like char[5] which tells you that
it's a character array and it has a size of 5.
so in this case, you have an array of numbers w/ a size of 8.
looking at the type of the first element for a script array may not
make sense b/c they can be heterogenous.
i'd like the behavior to remain consistent w/ how the java debugger
works (if possible), where the details pane shows the 'expanded'
values, while the collapsed array (and/or hash) continues to show at
'somthing[size]'. i was going to work on a way to override what gets
displayed in the details pane if you don't have a detail formatter
setup next or the debugger engine doesn't support evaluations.
the implemenation below would end up in a method like
'formatDetailView' or something along those lines.
On Wed, Jul 2, 2008 at 6:10 AM, Johan Compagner <jcompagner@xxxxxxxxx
<mailto:jcompagner@xxxxxxxxx>> wrote:
Now we get something like this in the debugger:
"number[8]"
What does that say? Nobody can see whats really in it without
really expanding it and so on
The Rhino debugger (the old one) did this:
"Array(10.0,200.0,30.0,40.0,5006.0,700.0,200.0,"johan")"
Of course not the complete array values limit it (currently 100
values)
This is the code:
public String formatValue(IScriptValue value) {
StringBuffer sb = new StringBuffer();
sb.append(value.getRawValue()); // == Array
sb.append("("); // == Array
try {
IVariable[] variables2 = value.getVariables();
if (variables2.length > 0) {
int length = variables2.length;
length = length > 100 ? 100 : length;
for (int i = 0; i < variables2.length; i++) {
sb.append(variables2[i].getValue().getValueString());
sb.append(",");
}
sb.setLength(sb.length() - 1);
}
} catch (DebugException ex) {
ex.printStackTrace();
}
sb.append(")"); // == Array
addInstanceId(value, sb);
return sb.toString();
}
Should i commit this? Or are you guys liking the current behavior
better?
johan
_______________________________________________
dltk-dev mailing list
dltk-dev@xxxxxxxxxxx <mailto:dltk-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/dltk-dev
--
-jae
------------------------------------------------------------------------
_______________________________________________
dltk-dev mailing list
dltk-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dltk-dev