файл открывается со сдвигом влево

Здесь можно сообщить о найденных багах в Far.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

файл открывается со сдвигом влево

Post by John Doe »

Latest post of the previous page:

С билдом фара 4842 проблема ещё не проявлялась, в 4844 уже проявляется.
4843 отсутствует в ночных сборках, поэтому остался не проверен.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

файл открывается со сдвигом влево

Post by DrKnS »

Это прекрасно, но лучше все же научите, как воспроизводить.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

файл открывается со сдвигом влево

Post by John Doe »

Для воспроизведения требуется RH Scripts или Visualiser (вероятно проще).
Запускаем фар с новым профилем и единственным плагином.
Открываем в редакторе любой файл, перемещаем курсор в середину какой-нибудь строки, и закрываем редактор (чтобы позиция запомнилась).
Далее открываем любой другой файл в редакторе, и не закрывая его снова открываем первый (можно из истории, а можно переключиться в панели и открыть оттуда).
В результате курсор будет восстановлен в правильной позиции (CurPos), но сам экран (LeftPos) окажется смещён в позицию курсора.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

файл открывается со сдвигом влево

Post by DrKnS »

Повторил, спасибо. Вечером посмотрю.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

файл открывается со сдвигом влево

Post by Shmuel »

Немного исследовал данный вопрос (не до конца, однако).
Поведение изменилось, начиная от 4843, в связи с инициализацией Editor::XX2 нулём. До 4843 он вообще не инициализировался.
Если его инициализировать величиной 0x4000, это решает проблему, по крайней мере для сдвигов меньших этой величины.

Воспроизвести эффект можно установив простой скрипт (т.е. он "заменяет" Visualizer или Rh_Scripts).

Code: Select all

local F = far.Flags
Event {
  group="EditorEvent";
  action=function(EditorID, Event, Param)
    if Event == F.EE_REDRAW then
      local ei = editor.GetInfo(nil)
      if ei then
        local esp = {}
        esp.CurLine = ei.CurLine
        ---esp.CurTabPos = ei.CurTabPos
        ---esp.LeftPos = ei.LeftPos
        editor.SetPosition(nil, esp)
      end
    end
  end;
}
Если в editor.SetPosition вместо nil передавать EditorID, то эффекта нет.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

файл открывается со сдвигом влево

Post by Aidar »

John Doe wrote: Tue 22 Aug, 2017 07:45...Для воспроизведения требуется RH Scripts...
Спасибо, воспроизводится.
Только нужен не Rh_Scripts, а lfa_config: место ошибки в lfa_config
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

файл открывается со сдвигом влево

Post by John Doe »

Shmuel wrote: Tue 22 Aug, 2017 08:51Если в editor.SetPosition вместо nil передавать EditorID, то эффекта нет.

Code: Select all

editor.SetPosition(ei.EditorID, ei)
У меня передача EditorID ничего не меняет
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

файл открывается со сдвигом влево

Post by Shmuel »

John Doe, я писал про EditorID (аргумент функции), а не про ei.EditorID.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

файл открывается со сдвигом влево

Post by John Doe »

Теперь дошло.
EditorID не равно ei.EditorID как будто событие приходит в окно редактора, которое уже стало фоновым.

Update
Собственно так и есть, и было до 4843, т.е. связано с сабжевым багом не напрямую.
Нормально ли это или нет — другой вопрос. Если да, значит во многих скриптах и плагинах потенциально есть баги.
Last edited by John Doe on Tue 22 Aug, 2017 18:49, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

файл открывается со сдвигом влево

Post by DrKnS »

DrKnS wrote: Tue 22 Aug, 2017 08:13Вечером посмотрю.
Посмотрел.
Выглядит так, что при открытии нового редактора оконный менеджер перерисовывает все существующие окна, что порождает editor event в предыдущем редакторе, visualiser и прочие начинают делать свои тёмные дела, обращаясь, внимание, к текущему редактору, а с точки зрения менеджера текущим является уже новый, но новый ещё ни разу не отображался и не выставлял размеры для своих строк, у них всё ещё X1 == X2 == 0, отсюда и LeftPos == CurPos.
А до 4843 в XX2 да, был мусор, строка получалась какого-то дичайшего размера, в неё типа всё влезало, LeftPos по месту не подгонялся, иными словами, работало, потому что число ошибок было чётным.

Инициализация XX2 числом побольше, увы, не выход. С моей точки зрения править надо менеджер (в тред кастуется @zg ).
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

файл открывается со сдвигом влево

Post by zg »

DrKnS wrote: Tue 22 Aug, 2017 20:45С моей точки зрения править надо менеджер (в тред кастуется @zg).
что именно предлагается править?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

файл открывается со сдвигом влево

Post by DrKnS »

zg wrote: Tue 22 Aug, 2017 20:56что именно предлагается править?
Видимо, вот это.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

файл открывается со сдвигом влево

Post by zg »

это так и задумано, build 2439 был 5.5 лет назад.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

файл открывается со сдвигом влево

Post by John Doe »

DrKnS wrote: Tue 22 Aug, 2017 20:45visualiser и прочие начинают делать свои тёмные дела, обращаясь, внимание, к текущему редактору
В данном случае это просто баг visualizer, который надо править именно в нём.
zg wrote: Tue 22 Aug, 2017 20:56что именно предлагается править?
Функция ECTL_SETPOSITION тем не менее действительно работает неправильно (вероятно не только она).
Возможно лучше будет чтобы она вообще ничего не делала, а вернулась с ошибкой в этот момент.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

файл открывается со сдвигом влево

Post by DrKnS »

zg wrote: Tue 22 Aug, 2017 21:02это так и задумано, build 2439 был 5.5 лет назад.
Логично.
Тогда может быть тут написать жирными красными буквами, что EditorID = -1 - это кака, используйте то, что в EditorInfo / ProcessEditorEventInfo пришло, т. к. "текущий редактор" - это, в общем случае, что попало?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

файл открывается со сдвигом влево

Post by zg »

ProcessEditorInputW приходит гарантировано в текущий редактор, так что не всегда кака. но где-то написать надо, да.
Post Reply

Return to “Глюки и баги”