> 1) Logic should be separated from the presentation, so first there should be > 'TAbstractSynEdit' class, concerning itself purely with text manipulations, > such as text insertion/deletion, cursor position changes, text > attribute calculation, > save/loading, codetools etc. > TAbstractSynEdit should not depend on any visual code, in partucular it should > descend from TObject/TPersistent, not TControl.
My vision deviates a bit from this in the sense that TAbstractSynEdit would just be an abstraction (or dedicated implementation) of a cleaner text manipulation interface (as TStrings won't cut it), which would also implement transparent/automatic/implicit 'undo' handling. Then each command would be a class, probably inheriting from TAction. > > It would make the design more "pure" then as it is now. I have too been > wondering why synedit needs all the knowledge of ide events. > We should "just" fix the TAction implementation to support multiple keystrokes ;-) Best regards, Flávio _______________________________________________ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus