[Lazarus] I say a little prayer (for the Lazarus editor)

Martin Frb lazarus at mfriebe.de
Sun Feb 21 12:30:04 CET 2021

On 21/02/2021 10:02, duilio foschi wrote:
> Hi Martin,
> I am too lazy to learn how to use editor scripts.
> Probably it will be more productive to spend some time to correct the 
> editor code.
> After all, the Jedi editor - written in Delphi and available in source 
> code - behaves like old Delphi editor in column mode.
> How can I try to fix the problem?
> Where is the Lazarus repository with the original code of the Lazarus 
> editor?

Official: https://svn.freepascal.org/svn/lazarus/
For bugs and patches: 

I am running a mirror at https://github.com/User4martin/lazarus/
For most SynEdit and Debugger issues, I can accept pull requests (those 
go to me only, no one else in the team, therefore limited to work I will 
deal with)

SynEdit is in Components/SynEdit

If you are looking for the Search/Replace dialog, afaik its in the 
folder ide/ . Best to start looking from the file ide/SourceEditor.pp . 
But probably you want SynEdit.

You probably want to look at function TCustomSynEdit.PasteFromClipboardEx

You should know about the caret pos 

You can get/set the caret pas on FCaret.
Also you will look for   PMode: TSynSelectionMode;

This actually sets the text: FInternalBlockSelection.SetSelTextPrimitive

So then you only need restore the CaretX

Now this is important, you will see it works on CaretBytePos (logical)
But you will need CharPos.

Imagine you copy columns from 2 or more lines.
Then (I guess) you want to set the caret to the start of the column in 
the *last* line to which was inserted..

If there is a tab at the first line you insert, then you may be at 
PhysX=4 and LogX=2 (behind the tab)
If there is no tab in the last line, and you set LogX =2 , well that is 
not what you want.


Remind me, does the Caret go to the start of the insert, or does it 
automatically move one line down too?

And one more thing, if you plan to submit a patch, please add an option 
to SynEdit.Options2
Many people are used to the current behaviour, I do not plan to upset them.

The option will then be controlled from the IDE. So the patch will 
either wait till I get to do that.
Or if you volunteer ide/EditorOptions.pas  (search Options2 or ) 

More information about the lazarus mailing list