Recent

Author Topic: SynEdit Development Status  (Read 2810 times)

fafasr

  • Newbie
  • Posts: 1
SynEdit Development Status
« on: August 25, 2013, 04:48:41 pm »
Hi,

I'm new to the Lazarus/Free Pascal.

According to the wiki page, the SynEdit contained in Lazarus and used by Lazaru's editor is based on SynEdit 1.03. The current version of the orginal SynEdit is 2.07.

Wiki also says that there is a port of the version 2.05 to Lazarus and also says that there is a attempt to redesign the component.

My questions:

What are the future plans of the Lazaru's dev team for the SynEdit?

Is the team planning to use the port of the version 2.05?

Is the project to redesign the component a fork of the original SynEdit project, breaking the compatibility between both components in the future versions or the redesign will occur in the original project?

Best regards

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 5633
    • wiki
Re: SynEdit Development Status
« Reply #1 on: August 25, 2013, 07:00:37 pm »
The SynEdit in Lazarus was indeed branched a long time ago.

But it has been developed a lot since. It has many features of its own. For that alone it is not possible to go back to the original SynEdit in todays 2.07 version. Then the IDE would loose a lot of features.

Since the Lazarus and original have huge differences in their internal structure, the lazarus additions can not (easily) be ported back (afaik)

The Lazarus version has:
- a very powerful folding module.
- highlighting, with color mixing (fading / lowlighting) [ not sure what the original can do here]
- syncro edit [ not sure what the original can do here]
- very powerful and flexible way to configure the behaviour of the mouse
and probably some others

One of the big missing features is word-wrap. It is on the todo, but it will be some time before it may get started...

Here is a list of my todo: http://wiki.lazarus.freepascal.org/User:Martin#SynEdit

And on top of that, someone recently wanted to start on a "column edit" mode (caret goes over several lines / text is edited at the same column of all those lines)


Quote
Is the project to redesign the component a fork of the original SynEdit project

I think you can already call the current Lazarus SynEdit a fork. It already si not 100% compatible any more.

The redesign, mostly goes to internals, and aims to at least keep interface changes in a way that can be easy adapted. This is also necessary as it should not break projects using the Lazarus SynEdit.


Adding interface compatibility to the original 2.0.7 is not on the list. But contribution towards this would be considered. If you whish to do anything on that please discuss details first.


An example for the redesign is that:
- all editing was moved to a few methods on the textbuffer. So all undo/redo can be collected in one place. That did fix a lot of bugs too.
- The textbuffer can be wrapped into several textviews, taking care of individual functions (still in progress). The editor itself ideally knows nothing about trimmed/trailing spaces; folding, in future word-wrap, .... They a provided by the views (virtual textbuffers)

And many other things.