Downloaded unit syneditpointclasses.pas from the trunk, kept a copy of the original and rebuild Lazarus with the Tools - Build Lazarus with profile: Normal IDE. Not sure if I could use the LazLogger as suggested though. Ran a quick test (just a form with the tSynEdit on it, plus a checkbox to turn gutter invisible and vice versa), now the caret behaves well. Looks like problem is solved. Thank you for this as well.
Two questions please:
- Is there still a reason to file the caret issue as a bug on Mantis?
- Is there any reason to revert to the previous (original) version of the syneditpointclasses.pas unit instead of keep using the new one (trunk)?
No need to report on the bugtracker.
Did you just apply the changes in that revision? Or replaced the entire file. There may (or may not) have been other changes. If there are other changes, then depends on what else changed.
(You can use diff to compare the download and the original)
Now in regard to the second issue, I believe there is no reason to file for a bug until I manage to find a way to replicate the problem. Is this OK?
Probably not. It is most unlikely that it would make any change.
Finally, I believe (please correct me if wrong) the IDE text editor does not make use of the tSynEdit (palette) version, but it comes from a different code base. Had this been the case, do not have any clues as to how similar or different those two versions may be. I can understand there are multiple components on the synedit palette page that rely on the tSynEdit (palette version), which may not be compatible with the IDE version. However given the IDE version seems to work extremely well, I wonder if there is any reason to keep these two different code bases for what apparently is the same thing.
The IDE uses the same SynEdit.
There are a few features (such as the topline hint) that were added for the IDE. Those feature are managed in a subclass in unit ide/SourceSynEditor.
There also is no lfm file for SynEdit in the IDE, instead SourceSynEditor also puts the various components (plugins from the palette) together.
The IDE also has features build around SynEdit (menus, page control, ...) those are in SourceEditor, and a few related units.
Had we been able to make use of the IDE version, it could help into making considerably more robust apps under any OS platform. Not to mention the IDE version has a far more rich command set by comparison. I really miss the old ^QP, have been using from the Turbo Pascal era. Anyway, in the end, perhaps having a smaller number of well-working components may be a better way to go. Am I wrong?
You can configure the key shortcuts for your own SynEdit. There is a property (something like KeyStrokes)
However some of the commands in the IDE (e.g. incremental search) are implemented in SourceEditor.
You can hook the OnCommand / OnUserCommand events... I have to check which one does what...