Virtual string wrap

Здесь обсуждается всё, что касается макросов.
IgorZ
Posts: 637
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 10 times
Been thanked: 47 times

Virtual string wrap

Post by IgorZ » Fri 25 Oct, 2013 04:32

Скрипт заменяет (пытается, по крайней мере, на данный момент) плагин EditWrap. То есть, в редакторе разбивает длинные строки на виртуальные подстроки шириной в экран редактора.

Клавиша переключения режима: ShiftF3.

Версия 0.5 - Первая публичная. Тестовая. Исправлено (вроде бы, но присмотреться стоит):
  • перепозиционирование курсора не всегда корректно работает;
  • позиционирование строк на экране сбивается - текущая строка убегает вверх.
Версия 0.6 - Тестовая. Исправлено позиционирование экрана при свёртке/развёртке.
Версия 0.61 - Если курсор в самом верху или низу экрана, текст на экране по возможности сдвигается.

Известные проблемы:
  • после обработки события всё равно срабатывает стандартное действие (для сохранения сделал костыль, для отображения виртуальных переносов - увы...);
  • - после WrapOn текст получает признак модификации.
Attachments
EditWrap.lua.0.61.7z
(2.99 KiB) Downloaded 165 times
Last edited by IgorZ on Thu 16 Jan, 2014 09:59, edited 2 times in total.

IgorZ
Posts: 637
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 10 times
Been thanked: 47 times

Re: Virtual string wrap

Post by IgorZ » Fri 25 Oct, 2013 04:44

В связи с вышеизложенным хочу задать три вопроса.
  1. По оформлению. Не смог указать, что первый пост должен повторяться на каждой странице. Как это сделать?
  2. Судя по документации, сейчас нельзя ни указать Far-у, что событие редактора уже не требует стандартной обработки, ни назначить на событие постобработчик. Если я всё правильно понял, насколько актуально и реализуемо сделать хотя бы один из вышеизложенных вариантов?
  3. Можно ли внести в Far возможность сбрасывать признак модификации, как в бис-версии от Maximus-а?

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 249 times

Re: Virtual string wrap

Post by DrKnS » Fri 25 Oct, 2013 07:15

1. За это отвечает форумный мод, он мог отвалиться при обновлении. Напишите в обсуждение форума.
2. Напишите в раздел development.
3. В фар можно и нужно внести нормальный word wrap, а не подпорки для костыльных плагинов.

IgorZ
Posts: 637
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 10 times
Been thanked: 47 times

Re: Virtual string wrap

Post by IgorZ » Fri 25 Oct, 2013 10:15

DrKnS wrote:1. За это отвечает форумный мод, он мог отвалиться при обновлении. Напишите в обсуждение форума.
2. Напишите в раздел development.
3. В фар можно и нужно внести нормальный word wrap, а не подпорки для костыльных плагинов.
1-2. Ок.
3. Нужно, не спорю (иначе не писал бы этот скрипт :) ). Но нет пока. Так что приходится костыли стругать. Ну и хотелость бы, раз без них пока никуда, чтоб хотя бы не натирали. А вообще, управление статусом "сохранено" может оказаться намного универсальнее моего частного случая.

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 249 times

Re: Virtual string wrap

Post by DrKnS » Fri 25 Oct, 2013 10:35

Так проблема в том, что если выстругать нормальный костыль, который не будет натирать, то нормальной реализации можно уже не ждать. А так всё же мотивация.
А вообще, управление статусом "сохранено" может оказаться намного универсальнее моего частного случая.
Например?

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: Virtual string wrap

Post by NightRoman » Fri 25 Oct, 2013 11:10

Может быть полезно для сценариев использования редактора не для редактирования файла, а для отображения информации. Есть и пример: в PowerShellFar есть скрипт Watch-Output-.ps1, он периодически запускает команду и показывает ее вывод в редакторе. Сохранять же это дело совершенно не нужно, хотелось бы просто выйти по Esc или F10, но всякий раз при выходе из редактора приходится еще закрывать диалог сохранения. А если был бы АПИ по сбросу флага изменений, то я бы сбрасывал.

(Для таких сценариев еще и этот виш был бы хорош - http://bugs.farmanager.com/view.php?id=465)
Last edited by NightRoman on Fri 25 Oct, 2013 11:19, edited 2 times in total.

User avatar
HaRT
Moderator
Posts: 9151
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 174 times

Re: Virtual string wrap

Post by HaRT » Fri 25 Oct, 2013 11:16

NightRoman wrote:полезено для сценариев использования редактора не для редактирования файла, а для отображения информации
Горячо поддерживаю!
А если ещё когда-нибудь кто-нибудь сделает в редакторе front-end для PuTTY (telnet/SSH), то вообще будет сказка.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Re: Virtual string wrap

Post by Docent1 » Fri 25 Oct, 2013 19:37

DrKnS wrote:3. В фар можно и нужно внести нормальный word wrap, а не подпорки для костыльных плагинов.
Давно пора!
Last edited by Docent1 on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан офтопик
Docent1

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

Re: Virtual string wrap

Post by ccaid » Mon 28 Oct, 2013 06:56

DrKnS wrote:В фар можно и нужно внести нормальный word wrap, а не подпорки для костыльных плагинов.
времени было много, чтобы кто-то захотел и реализовал. однако, не случилось. значит, кто может — тому не очень-то и нужно, или выигрыш не покрывает вложения. проще же использовать готовый AkelPad (ну, к примеру).

кстати, на костыли возможен и другой взгляд: они могут служить демо-версией и постоянно напоминать — как хорошо было бы с нативной реализацией, если уж с костылями лучше, чем без них.
Фар делают добрые люди

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Virtual string wrap

Post by AleXH » Fri 01 Nov, 2013 21:16

Так проблема в том, что если выстругать нормальный костыль, который не будет натирать, то нормальной реализации можно уже не ждать. А так всё же мотивация.
Этой мотивации уже лет 8, когда в 2005 эта тема была поднята в первый раз, и если бы не Максимус, написавший плаг-костыль для FAR2, то мотивировались бы и по сей день.

Но, безусловно, свёртка в редакторе нужна нативная, и что бы она касалась лишь отображения текста, без изменения его содержания. Скриптом буфер отката забивается, помимо этого есть и другие минусы такого решения.

IgorZ, спасибо - посимвольный перенос по ShiftF3 это то, что надо.

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 231 times

Re: Virtual string wrap

Post by John Doe » Wed 18 Dec, 2013 12:18

IgorZ wrote:Известные проблемы:
  • после обработки события всё равно срабатывает стандартное действие (для сохранения сделал костыль, для отображения виртуальных переносов - увы...);
Скрипт вообще рабочий? Можно переносить в "Готовые макросы"?

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Virtual string wrap

Post by AleXH » Wed 18 Dec, 2013 13:25

Имхо рано. К тому же много заремленного кода имеет.

Ситуация.
Курсор находится за правой границей экрана, например набирали текст в одну строку и экран "ушёл" вправо. Теперь нажимаем ShiftF3 - свёртка произошла, но экран остался на прежней позиции, а курсор находится у его левого края, т.е. весь текст остался "за кадром" слева. Теперь нажмём снова ShiftF3 - текст развернулся, но курсор стоит на \n, а должен на \r.

IgorZ
Posts: 637
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 10 times
Been thanked: 47 times

Re: Virtual string wrap

Post by IgorZ » Thu 19 Dec, 2013 03:52

John Doe wrote:Скрипт вообще рабочий? Можно переносить в "Готовые макросы"?
Свою работу скрипт выполняет вроде бы корректно. Во всяком случае, ни сам не наблюдал ошибок, ни репортов здесь не было (в предыдущем сообщении первый). Но побочные эффекты, увы, пока неустранимы. Не хотелось бы настолько кривую вещь выкладывать в качестве готовой.

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Virtual string wrap

Post by AleXH » Thu 19 Dec, 2013 09:11

IgorZ
Разве нельзя при свётке текущую позицию курсора разделить на ширину экрана, тогда целое покажет вертикальный сдвиг курсора для этой строки, а остаток горизонтальный. Затем сдвинуть экран влево до упора и выставить курсор? При разворачивании восстановить позицию курсора.

IgorZ
Posts: 637
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 10 times
Been thanked: 47 times

Re: Virtual string wrap

Post by IgorZ » Thu 19 Dec, 2013 09:59

AleXH wrote:IgorZ
Разве нельзя при свётке текущую позицию курсора разделить на ширину экрана, тогда целое покажет вертикальный сдвиг курсора для этой строки, а остаток горизонтальный. Затем сдвинуть экран влево до упора и выставить курсор? При разворачивании восстановить позицию курсора.
Это всё делается, кроме сдвига экрана влево/вправо. Сдвиг добавлю.

IgorZ
Posts: 637
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 10 times
Been thanked: 47 times

Re: Virtual string wrap

Post by IgorZ » Thu 19 Dec, 2013 10:43

Новая версия: 0.6 - исправлено (вроде бы) позиционирование экрана при свёртке/развёртке. Проверяйте.

Post Reply

Return to “Обсуждение макросов”