Jump to content
pyscripter

SynEdit now supports mulit-caret, multi-selection editing

Recommended Posts

Please see the blog post and watch the videos!  Although the videos show PyScripter, the underlying editor control is SynEdit.

 

Note:  Development of SynEdit has moved back to pyscripter/SynEdit: SynEdit is a syntax highlighting edit control, not based on the Windows common controls. (github.com) for the reasons explained here.  The multi-caret developments are in the multicaret branch, which will be merged to master after a period of testing.   It is quite solid, but if you would like to try and help iron out bugs, that would be much appreciated.

 

 

Edited by pyscripter
  • Like 11
  • Thanks 1

Share this post


Link to post

Awesome stuff - I wish the Rad Studio editor had this functionality (not holding my breath). Perhaps Rad studio should switch to synedit!  

Share this post


Link to post
On 10/11/2024 at 3:11 AM, Vincent Parrett said:

I wish the Rad Studio editor had this functionality

Main Issues with the Delphi editor:

  • Unicode handling
    • The most serious issue with the Delphi editor IMHO is proper Unicode handling.  It has issues with surrogate pairs. combining characters etc.   Try for instance to paste ḱṷṓn to the editor.  Even wide Unicode characters have wrong spacing (e.g. 爾雅爾雅爾雅爾雅爾雅爾雅). Let alone of course the handling of emojis, bi-directional text etc. 
  • Missing standard code editor behaviour
  • The track changes bar does not play correctly with undo redo
  • Missing many nice-to-have features common in other code editors
    • Multi-caret editing
    • Move/Duplicate lines commands
    • HTML copy/paste to copy code with syntax highlighting to other apps
    • Alpha-blending of selection
    • OLE drag & drop
    • Support for font ligatures
    • etc.

SynEdit now has first-class Unicode support based on DirectWrite, multi-caret editing, all other features from the list above and much more.  It is also very fast and responsive, but of course there is a lot of scope for performance optimizations.

 

Edited by pyscripter
  • Like 1
  • Thanks 3

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×