so the debugger can't know what is in FList
Excuse my ignorance, does that mean it cant be done? Do we change our code to Delphi mode? Is there any disadvantage in doing so?
On the question about the hint scrolling, I have Lazarus 2.2.0 where the hint scrolls if it goes over the bottom of the page. With large classes it can be useful.
Well, it's not the debugger to be blamed in this case. And I know this isn't your concern on the overall "can it be done" question.
If you take the same code (not just yours, but the code from the fgl unit too), and you compile that in Delphi => then the Delphi debugger wont be doing much better.
The code in the fgl copies your data (your object/record, whatever typed data), and stores it in a stream of bytes. "FList: PByte".
Neither the compiler, nor the debugger can know what the code has copied into those bytes. They are declared as bytes. (Delphi wouldn't know either)
To solve this, you could write your own generic list, that uses an "Array of T" (T = generic param). Then the info would be available. But that defies the point of using pre defined generics.
From a debugging point of view, it would be nice if code in fgl did that. But well, it doesn't.
When I said "then the Delphi debugger wont be doing much better". Then actually there is a diff.
The specialized list has a property "Items" or similar, that is of the correct type. The Delphi debugger could access the elements ONE BY ONE "Items[1]" => But that returns a single element not the list.
(And it executes the code in the getter function. Normally not an issue, but if that code makes any modifications to the data, then your app continues with those modifications. I had that very issue with Delphi a long long time ago)
Debugging properties is still work in progress for fpc/fpdebug. But that is a topic of it's own.
So then the only thing you can currently do is to add the typecast.
^TYourType(MyList.FList)[0..MyList.FCount-1]
It may help to open the list variable "MyList" in the "Debug Inspector" (Alt F5). Then you can navigate to FList. Add the typecast and array range, and add the result as watch.
It's not perfect. But with fgl, there is no better yet.
If you do have a TFPGList that holds another TFPGList and maybe more nested => then its a bit tough.