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: https://bugs.freepascal.org/set_project.php?project_id=1

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.

SynEdit.pp
You probably want to look at function TCustomSynEdit.PasteFromClipboardEx

You should know about the caret pos https://wiki.lazarus.freepascal.org/SynEdit#Logical.2FPhysical_caret_position

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 ) ide/frames/editor_misc_options
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to