I don't print out source code from the Arduino very often. When I do, it's on a laser printer (black on white paper). So, maintaining color is not, for me, an issue.
I also use very short statements.
I'm
aware
that
the
compiler
ignores
white
space.
So, if the printer is lopping some lines off, there is a solution. Besides, it's easier to read and modify code if the screen isn't jumping back and forth as the cursor moves from one end of the line back to the beginning as well as up when a new line is added.
I think that the commonality with the Processing user interface is a good thing. But, all that that means is that printing in both applications sucks.
Using Java to design user interfaces is a bit like hammering screws in. It sort of appears to work, but not as well as a real GUI tool. Separating the model (the code), the view (what you see on the screen) and the controller (adding new code, cut and paste, insert/overwrite, etc.) seems more difficult.
The only thing that Java has going for it is that it is supported everywhere, fairly consistently.
There are other cross-platform GUI tools available. Some are even open source. It's really time to abandon the Java-based GUI, and develop a real IDE.
The other issues that have been offered as suggestions (code folding, different keys for cut and paste, etc.) could be incorporated at the same time.
Notepad++ has been suggested as a good foundation for the source code processing part of the IDE. Unfortunately, while Notepad++ IS open source, the user interface is not Linux or Mac compatible. But, perhaps the model and controller parts of the ModelViewController paradigm could be borrowed from Notepad++ with a different view implementation.