<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Martin,<div><br></div><div>thank you for the detailled instructions.</div><div><br></div><div>Re your question</div><div><br></div><div>>does the Caret go to the start of the insert, or does it<br>automatically move one line down too?<br></div><div><br></div><div>in Delphi/column mode, the caret moves one line down at each insert.</div><div><br></div><div>1. starting from this status</div><div><br></div><div><a href="https://i.ibb.co/jL30yFx/1.jpg">https://i.ibb.co/jL30yFx/1.jpg</a></div><div><br></div><div>I click ctrl+O+C for column mode</div><div><br></div><div>2. I select the text 'peppe'+blank then ctrl-c to save the text into memory </div><div><br></div><div><a href="https://i.ibb.co/99DH4gc/2.jpg">https://i.ibb.co/99DH4gc/2.jpg</a></div><div><br></div><div>3. using the arrow keys, I move the caret 2 lines down...</div><div><br></div><div><a href="https://i.ibb.co/ZHGqZx3/3.jpg">https://i.ibb.co/ZHGqZx3/3.jpg</a></div><div><br></div><div>4. after I press ctrl-v, the caret moves 1 line down. This is exactly what I miss in Lazarus :)  </div><div><br></div><div><a href="https://i.ibb.co/ZT6LJdD/4.jpg">https://i.ibb.co/ZT6LJdD/4.jpg</a></div><div><br></div><div>I will try to fix the point.</div><div><br></div><div>Thank you</div><div><br></div><div>Duilio</div><div><br></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 21, 2021 at 12:30 PM Martin Frb <<a href="mailto:lazarus@mfriebe.de">lazarus@mfriebe.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 21/02/2021 10:02, duilio foschi wrote:<br>
> Hi Martin,<br>
><br>
> I am too lazy to learn how to use editor scripts.<br>
><br>
> Probably it will be more productive to spend some time to correct the <br>
> editor code.<br>
><br>
> After all, the Jedi editor - written in Delphi and available in source <br>
> code - behaves like old Delphi editor in column mode.<br>
><br>
> How can I try to fix the problem?<br>
><br>
> Where is the Lazarus repository with the original code of the Lazarus <br>
> editor?<br>
><br>
<br>
Official: <a href="https://svn.freepascal.org/svn/lazarus/" rel="noreferrer" target="_blank">https://svn.freepascal.org/svn/lazarus/</a><br>
For bugs and patches: <br>
<a href="https://bugs.freepascal.org/set_project.php?project_id=1" rel="noreferrer" target="_blank">https://bugs.freepascal.org/set_project.php?project_id=1</a><br>
<br>
I am running a mirror at <a href="https://github.com/User4martin/lazarus/" rel="noreferrer" target="_blank">https://github.com/User4martin/lazarus/</a><br>
For most SynEdit and Debugger issues, I can accept pull requests (those <br>
go to me only, no one else in the team, therefore limited to work I will <br>
deal with)<br>
<br>
SynEdit is in Components/SynEdit<br>
<br>
If you are looking for the Search/Replace dialog, afaik its in the <br>
folder ide/ . Best to start looking from the file ide/SourceEditor.pp . <br>
But probably you want SynEdit.<br>
<br>
SynEdit.pp<br>
You probably want to look at function TCustomSynEdit.PasteFromClipboardEx<br>
<br>
You should know about the caret pos <br>
<a href="https://wiki.lazarus.freepascal.org/SynEdit#Logical.2FPhysical_caret_position" rel="noreferrer" target="_blank">https://wiki.lazarus.freepascal.org/SynEdit#Logical.2FPhysical_caret_position</a><br>
<br>
You can get/set the caret pas on FCaret.<br>
Also you will look for   PMode: TSynSelectionMode;<br>
<br>
This actually sets the text: FInternalBlockSelection.SetSelTextPrimitive<br>
<br>
So then you only need restore the CaretX<br>
<br>
----<br>
Now this is important, you will see it works on CaretBytePos (logical)<br>
But you will need CharPos.<br>
<br>
Imagine you copy columns from 2 or more lines.<br>
Then (I guess) you want to set the caret to the start of the column in <br>
the *last* line to which was inserted..<br>
<br>
If there is a tab at the first line you insert, then you may be at <br>
PhysX=4 and LogX=2 (behind the tab)<br>
If there is no tab in the last line, and you set LogX =2 , well that is <br>
not what you want.<br>
<br>
<br>
---------------------<br>
<br>
Remind me, does the Caret go to the start of the insert, or does it <br>
automatically move one line down too?<br>
<br>
And one more thing, if you plan to submit a patch, please add an option <br>
to SynEdit.Options2<br>
Many people are used to the current behaviour, I do not plan to upset them.<br>
<br>
The option will then be controlled from the IDE. So the patch will <br>
either wait till I get to do that.<br>
Or if you volunteer ide/EditorOptions.pas  (search Options2 or ) <br>
ide/frames/editor_misc_options<br>
</blockquote></div>