View Issue Details

IDProjectCategoryView StatusLast Update
0001972Far ManagerMacropublic2012-03-05 07:53
ReporterSUSim Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0001972: ShiftHome и editor.sel(0,2)
DescriptionВ редакторе макрофункция editor.sel(0,2) неправильно возвращает номер строки конца блока если выделение закончить по ShiftHome.
Steps To ReproduceОткрыть на редактирование файл и выполнить макрос:
Home ShiftDown %t1=editor.sel(0,2)-editor.sel(0,0);
ShiftHome %f1=editor.sel(0,2)-editor.sel(0,0);
ShiftRight ShiftLeft %t2=editor.sel(0,2)-editor.sel(0,0);
msgbox("Число выделенных строк", itoa(%t1)+" - правильно\n"+itoa(%f1)+" - неправильно после Home\n"+itoa(%t2)+" - снова правильно после право-лево")
Additional Informationэто было и в 2.0 в большинстве случае лечится костылем
    $IF ((%t==1)&(%x2==0)&(%x0==1)&(%y2+1==%y0)) %comment="!!! Костыль !!! Баг FARa? (Если в конце выделения обычного блока нажать ShiftHome то editor.sel(0,2) вернет значение на 1 меньше чем должен.)";
      ShiftRight ShiftLeft
      %x2=editor.sel(0,3); %y2=editor.sel(0,2);
    $END
TagsNo tags attached.
Build2480

Activities

vskirdin

2012-01-07 17:07

administrator   bugnote:0008322

не совсем понимаю, что ты хочешь.
разжуй.

vskirdin

2012-01-07 18:18

administrator   bugnote:0008323

...по коду вижу, что для ShiftHome, если стартовая позиция равна 0 (т.е. курсор в начале строки), то для этой строки блок сбрасываем.
(в 1.65 он просто не выделялся)

SUSim

2012-01-08 13:18

reporter   bugnote:0008326

Last edited: 2012-01-08 13:25

Что значит сбрасывается, а если я Стрелкой подведу курсор в начало строки а не Хоме, то не сбрасывается?
Курсор в начале сроки, жму шифтстрелкавниз (выделилась одна строка) editor.sel(0,2)-editor.sel(0,0)=1 всё правильно, жму ShiftHome внешне ничего не изменилось(на экране выделена та-же одна строка) а editor.sel(0,2)-editor.sel(0,0)=0 это НЕправильно, жму шифтстрелкавправо и шифтстрелкавлево внешне опять ничего не меняется а editor.sel(0,2)-editor.sel(0,0)=1 становится опять правильно.

макрос посмотрите...

SUSim

2012-01-08 13:35

reporter   bugnote:0008327

Last edited: 2012-01-08 13:36

курсор в начале первой строки жму ShiftDown выделилась одна строка курсор в начале следующей строки жму ShiftHome внешне ничего не изменилось - по прежнему выделена одна строка и курсор по прежнему в начале второй строки, а вот editor.sel говорит что конец выделения находится в 0 позиции _первой_ строки а начало в _первой_ позиции _первой_ строки!!!

vskirdin

2012-01-10 07:58

administrator   bugnote:0008334

дооолго втюхивал, чтотытуттакоебеззнаковприпинаниянаписал. fixed.

по первому - правильно я понимаю, что...
вот это утверждение верно:
"ShiftHome не должен сбрасывать блок, если курсор в начале строки стоит"?

vskirdin

2012-01-10 08:59

administrator   bugnote:0008335

build 2355
Возвращаем поведение ShiftHome, как было до 1.7x build 1541.
Теперь ShiftHome не сбрасывает выделение, если курсор стоит в начале строки.

SUSim

2012-01-10 16:37

reporter   bugnote:0008350

Я люблю из запятых только "..." :)

По делу:
Я не понимаю, что такое сбрасывать выделение/блок... (editor.sel(0,*) возвращает нули?)
Короче: после ShiftHome editor.sel(0,*) работает неправильно!
editor.sel(0,2) возвращает на Единицу меньше чем должен, и/или editor.sel(0,3) вместо 0 ВООБЩЕ возвращает -1 !!!

Жду ночи (билда)! Завтра проверю...

SUSim

2012-01-11 15:40

reporter   bugnote:0008378

Last edited: 2012-01-11 15:41

svs 10.01.2012 12:58:46 +0400 - build 2355

1. Mantis#0001972: ShiftHome и editor.sel(0,2)
   Возвращаем поведение ShiftHome, как было до 1.7x build 1541.
   Теперь ShiftHome не сбрасывает выделение, если курсор стоит в начале строки.

2. Macro: editor.sel(0,3) возвращал значение от 0 (должен от 1)

2355 1. БРРР....
Я даже и не заикался об изменении поведения редактора, я просил поправить Editor.Sel(0,2) который возвращает неправильное значение, только после ShifHome - он(Editor.Sel(0,2)), возвращает на 1 меньше чем должен был, в остальных случаях вроде правильно всё. ОТКАТИТЬ это, однозначно, и поправить только Editor.Sel (я же указывал категорию Macro).

2355 2.
Я этого не просил, но вроде удобнее... Единственное, что беспокоит, придется переделывать макросы, я то в теме и легко их переделаю, но вот переезжающие с 2 на 3 экспортом могут не понять...

vskirdin

2012-01-12 06:49

administrator   bugnote:0008385

1. в ShiftHome была ошибка, внесенная хрен знает когда: до 1.7x build 1541 ShiftHome не сбрасывал выделение нулевого блока, что было верно; после 1541 стал сбрасывать, т.к. код переоптимизировали.
Home ShiftDown ShiftHome - это блок из двух строк (а не из одной, как видно визуально): первая выделена вся, вторая имеет блок нулевой длины.

2. это была ошибка. она исправлена.

Эт теперь мы старые ошибки в ранг фич вводим?

SUSim

2012-01-12 16:57

reporter   bugnote:0008391

Last edited: 2012-01-12 17:09

Начну с конца:

Против 2. Не возражаю (пусть была ошибка, исправили, молодцы)!!! Я, даже, за! Меньше кода в макросах - не придётся +1 прибавлять к концу выделения, чтобы курсор установить.

По поводу 1. Я ни про какой НУЛЕВОЙ блок не ведаю! При выделении обычного блока должно быть привычное выделение, до 2355.1 поведение привычно было: ShiftHome снимал выделение, если оно было с начала строки или устанавливал выделение от конца выделенного блока (положения курсора) до начала строки, как положено при одной строке.
  При нескольких строках ShiftHome убавлял выделение до начала строки!!! (Во всех приложениях, которые я знаю ИМЕННО так и происходит). После 2355.1 стало неадекватно - _при_нескольких_выделенных_строках_ после ShiftHome курсор просто прыгает в начало строки :( а выделение в строке остаётся на месте, и _убавить_ выделение никак невозможно...

SUSim

2012-01-12 17:20

reporter   bugnote:0008392

Этот виш можно закрыть, editor.sel(0.*) теперь всё правильно возвращает :)

Открывать новый вишь: "ShiftHome в редакторе не изменяет выделения при нескольких выделенных строках." ?

vskirdin

2012-01-12 18:16

administrator   bugnote:0008393

пример давай про "_при_нескольких_выделенных_строках_ после ShiftHome курсор просто прыгает в начало строки"

SUSim

2012-01-13 03:22

reporter   bugnote:0008394

файл:
12345 1
12345 2

курсор под 4 в строке 1

жму ShiftDown - выделилась первая строка начиная с 4 и до конца, в строке 2 выделилось с начала по 3 включительно, курсор под 4 в строке 2

жму ShiftHome - _выделение_осталось_неизменным_ (начиная с 4 строки 1, заканчивая 3 строки 2, включительно), а курсор переместился под 1 строки 2 :(

3.0 build 2371 x86

2useven10

2012-01-13 04:50

developer   bugnote:0008395

ещё интересно после этого нажать ShiftRight

vskirdin

2012-01-16 07:32

administrator   bugnote:0008430

build 2393

SUSim

2012-01-17 16:29

reporter   bugnote:0008444

На колу мочало - начинаем всё с начала...(с)поговорка. Ну, почти, с начала - про editor.sel(0,2).
Выделили несколько строк:
А) Если курсор=конец выделения НЕ в начале строки editor.sel(0,2) возвращает на 1 меньше чем должен :(
В остальных случаях всё правильно:
б) курсор и выделение подвели в начало строки не ShiftHome, а ShiftLeft...
в) курсор всегда находился в начале строки при выделении или его подвели в начало строки с помощью ShiftLeft, а уж затем нажали ShiftHome...

Проверка:
- случай А (неправильный):
Файл:
 12345 1
 12345 2
1) Установил курсор под 4 в строке 1
2) Нажал ShiftDown - выделилась первая строка начиная с 4 и до конца, в строке 2 выделилось с 1 по 3 включительно, курсор под 4 в строке 2
3) Нажал ShiftHome (ВИЗУАЛЬНО всё нормально - курсор под 1 строки 2, выделения в строке 2 нет :) ), но editor.sel(0,2) должен был бы вернуть 2, однако, возвращает _1_ :(

- случай б (правильный):
Файл:
 12345 1
 12345 2
1) Установил курсор под 4 в строке 1
2) Нажал ShiftDown - выделилась первая строка начиная с 4 и до конца, в строке 2 выделилось с 1 по 3 включительно, курсор под 4 в строке 2
3) Нажал ShiftLeft ShiftLeft ShiftLeft (ВИЗУАЛЬНО всё нормально - курсор под 1 строки 2, выделения в строке 2 нет :) ), И editor.sel(0,2) возвращает 2, как должен :)

- случай в (правильный):
Файл:
 12345 1
 12345 2
1) Установил курсор под 1 в строке 1
2) Нажал ShiftDown - выделилась первая строка начиная с 1 и до конца, в строке 2 ничего не выделилось, курсор под 1 в строке 2
3) editor.sel(0,2) возвращает 2, как должен :), можно даже нажать ShiftHome (если ShiftRight не нажимать перед этим) то опять ожидаемо - editor.sel(0,2) возвращает 2 :)

zg

2012-02-21 18:04

developer   bugnote:0008631

2480.1

SUSim

2012-02-23 05:03

reporter   bugnote:0008640

Работает

Issue History

Date Modified Username Field Change
2012-01-05 09:44 SUSim New Issue
2012-01-07 17:07 vskirdin Note Added: 0008322
2012-01-07 18:18 vskirdin Note Added: 0008323
2012-01-08 13:18 SUSim Note Added: 0008326
2012-01-08 13:19 SUSim Note Edited: 0008326
2012-01-08 13:25 SUSim Note Edited: 0008326
2012-01-08 13:35 SUSim Note Added: 0008327
2012-01-08 13:36 SUSim Note Edited: 0008327
2012-01-10 07:58 vskirdin Note Added: 0008334
2012-01-10 07:58 vskirdin Assigned To => vskirdin
2012-01-10 07:58 vskirdin Status new => assigned
2012-01-10 08:59 vskirdin Note Added: 0008335
2012-01-10 08:59 vskirdin Status assigned => feedback
2012-01-10 16:37 SUSim Note Added: 0008350
2012-01-10 16:37 SUSim Status feedback => assigned
2012-01-11 15:40 SUSim Note Added: 0008378
2012-01-11 15:41 SUSim Note Edited: 0008378
2012-01-12 06:49 vskirdin Note Added: 0008385
2012-01-12 16:57 SUSim Note Added: 0008391
2012-01-12 17:01 SUSim Note Edited: 0008391
2012-01-12 17:05 SUSim Note Edited: 0008391
2012-01-12 17:09 SUSim Note Edited: 0008391
2012-01-12 17:20 SUSim Note Added: 0008392
2012-01-12 18:16 vskirdin Note Added: 0008393
2012-01-13 03:22 SUSim Note Added: 0008394
2012-01-13 04:50 2useven10 Note Added: 0008395
2012-01-16 07:32 vskirdin Note Added: 0008430
2012-01-16 07:32 vskirdin Status assigned => feedback
2012-01-17 16:29 SUSim Note Added: 0008444
2012-01-17 16:29 SUSim Status feedback => assigned
2012-02-21 18:04 zg Note Added: 0008631
2012-02-23 05:03 SUSim Note Added: 0008640
2012-02-23 05:03 SUSim Status assigned => resolved
2012-03-05 07:53 vskirdin Build => 2480
2012-03-05 07:53 vskirdin Status resolved => closed
2012-03-05 07:53 vskirdin Resolution open => fixed
2012-03-05 07:53 vskirdin Fixed in Version => 3.0