Sorry for the delay, I should check the site more often.
That's good info. Didn't know there was a hard limit of 2048 characters for these names.
The problem is IDA string limits are normally 1024 due to the way the internal DB system works.
One could structure things to use multiples of these blocks of course to hold larger strings but they probably wouldn't be viewable in an IDA
chooser() window.
At any rate I don't really think it's worth the effort. In the IDBs that I work and test with this problem rarely shows up, and usually not one of interest.
Part of the problem might be where a simple class when epanded in binary form ends up being a very large string.
For example the simple code that startes as "std::string::swap(class std::string &)" gets expanded to:
"std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::swap(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &)"
There is a plug-in made by "zyantific" to ease this problem (and where I got this example from):
https://github.com/zyantific/REtypedef
Chances are the ones that your are running into are one of these type.
His plug-in will not help with ClassInformer as it is, his code would have to be added to a point where either the names are stored or before they are displayed (allowing one to switch).
Also some other kind of filtering might work, like filtering out arument types when they are too long, etc., and prehaps only keeping the base type name(s).
I have no current plans for adding any of these features.
You're more than welcome to make a fork and work out your own solution:
https://sourceforge.net/projects/classinformer/