I havent used synEdit for a while, but today I found that I needed a good editor for a form with script support. As I went to download synEdit (which my mind had frozen in time
I would not use the link in the current answer as it hasn't been updated lately even though it is still getting about 80 downloads a week on SourceForge. (https://sourceforge.net/projects/synedit/)
There are three fairly recently updated versions on GitHub:
The generally considered "official" version: https://github.com/SynEdit/SynEdit
A fork with new features added and a bunch of cruft removed https://github.com/pyscripter/SynEdit-2
Embarcadero's "official" version, supported by GetIt. (Their "TurboPack" packages removed support for old Delphi versions to nudge people to the latest version.) https://github.com/TurboPack/SynEdit
For a brief history see this thread on DelphiPraxis: https://en.delphipraxis.net/topic/3028-synedit-preferred-version/?do=findComment&comment=24291
I strongly recommend the use of Scintilla. It has all features you are looking for. It is much more capable and mature than SynEdit. The development of SynEdit decreased in the last yeast to almost standstill. The only problem of Scintilla is that the no one is updating the Delphi code that binds to it. The SourceForge project is not active anymore. You can find Delphi code in the following URLs:
Borland Delphi control wrapper for Scintilla and Delphi Components
The latter contains the most recent code. It is not difficult to update it to add recent features of Scintilla.
SynEdit is much faster than any other text editor component. See the comparison benchmark here.
Currently I'm developing a new IDE for Arduino (official one is lack too much standard IDE features) to contribute to Arduino community. Since I want my IDE to run natively without rely on any VM and cross-platform is not my goal, so I took my o'good friend Delphi 7 and search for updated SynEdit VCL. Slightly dissapointing is it still has no very important feature: code folding (which you can say as "standard code editor feature" nowdays).
But after a little search I've found a descendant project which based on SynEdit which feature code folding: Mystix (hosted at SourceForge). You can simply overwrite your previous SynEdit source with this one (there is no new dpk package to install). It's based on SynEdit 2.0.1 anyway.
Documentation is a little vague (you have to throughfully examine the source code to get idea how to use it properly), but here is hint how to use the code folding feature:
SynEdit1.CodeFolding.FolderBarColor: = clDefault;
SynEdit1.CodeFolding.HighlighterFoldRegions: = False;
SynEdit1.CodeFolding.FoldRegions.Add(rtChar, False, False, True, '{', '}');
SynEdit1.CodeFolding.FoldRegions.Add(rtKeyword, False, False, True, '/*', '*/');
// and don't forget to initialize...
SynEdit1.InitCodeFolding;
// ... and enable it
SynEdit1.CodeFolding.Enabled: = True;
Mystix is released under same license as SynEdit (MPL).
http://synedit.sourceforge.net has a link to the Unicode version.