View Issue Details

IDProjectCategoryView StatusLast Update
0032161LazarusPackagespublic2018-06-08 12:19
ReporterCudaText man Assigned ToMartin Friebe  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformLinux gtk2 x64 
Product Version1.9 (SVN) 
Fixed in Version1.10 
Summary0032161: SynEdit multi-caret (with vertical block) big problem
DescriptionI've seen this on my real app source. But i repeat it on simple source here.

- Create new IDE project with empty form.
- Make vertical block (click, then use Alt+Shift+arrows to make block).
Make block like on picture1.

- Now type "test".
All text is broken, like on picture2.

TagsNo tags attached.
Fixed in Revision58181
LazTarget1.10
Widgetset
Attached Files

Activities

CudaText man

2017-07-18 18:52

reporter  

sel-this-block.png (38,039 bytes)   
sel-this-block.png (38,039 bytes)   

CudaText man

2017-07-18 18:52

reporter  

typed-text-and-crap.png (42,271 bytes)   
typed-text-and-crap.png (42,271 bytes)   

Martin Friebe

2017-07-18 23:37

manager   ~0101767

Do you have "overwrite block" enabled?

What happens is, that all selected text is removed (overwritten) when you start typing.
As a consequence all the carets move to where the deleted text on each line started.

So in the "Uses" line the text from "SysUtils" to "Graphics" is deleted. The caret for this line moves to the pos were "SysUtils" used to be.
The text you type is inserted in that location.


The only problem is, for lines where the selection is behind the end-of-line the caret is not adjusted (or not fully adjusted).
So that needs to be fixed.
Then all the "test" you entered will be aligned with the one in the "uses" line.

If you do not want the block deleted, then disable that option.
Or make a zero width selection, to get the carets only.

-----------------
IMHO this (except for the missing align) is the expected behaviour for this setting.

What would you have expected?

CudaText man

2017-07-19 14:38

reporter   ~0101787

Last edited: 2017-07-19 14:41

View 2 revisions

Overwrite block: enabled.
Expected is like in my editor:

==
unit Unit1;

{$mode objfpc}{$H+}

interface

uses       test
  Classes, test, Dialogs;
           test
type       test
  TForm1 = test
  private  test
           test
  public   test
           test
  end;     test
           test
var        test
  Form1: TFtest
           test
implementattest
           test
{$R *.lfm} test

end.


Martin Friebe

2018-06-08 12:19

manager   ~0108747

Please test and close if ok

Issue History

Date Modified Username Field Change
2017-07-18 18:51 CudaText man New Issue
2017-07-18 18:52 CudaText man File Added: sel-this-block.png
2017-07-18 18:52 CudaText man File Added: typed-text-and-crap.png
2017-07-18 23:37 Martin Friebe LazTarget => -
2017-07-18 23:37 Martin Friebe Note Added: 0101767
2017-07-18 23:37 Martin Friebe Assigned To => Martin Friebe
2017-07-18 23:37 Martin Friebe Status new => feedback
2017-07-19 14:38 CudaText man Note Added: 0101787
2017-07-19 14:38 CudaText man Status feedback => assigned
2017-07-19 14:41 CudaText man Note Edited: 0101787 View Revisions
2018-06-08 12:19 Martin Friebe Fixed in Revision => 58181
2018-06-08 12:19 Martin Friebe LazTarget - => 1.10
2018-06-08 12:19 Martin Friebe Note Added: 0108747
2018-06-08 12:19 Martin Friebe Status assigned => resolved
2018-06-08 12:19 Martin Friebe Fixed in Version => 1.10
2018-06-08 12:19 Martin Friebe Resolution open => fixed