Имитация многострочного редактирования как в SciTE

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Latest post of the previous page:

siberia-man wrote: Выбеление блока не удаляется даже после перехода на строку за пределами блока (например строка перед или после блока).
Кажется дошло до меня. Просто у меня всё время persistent blocks, поэтому эти эффекты пропускаю. Вроде сейчас поправил, проверьте.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Имитация многострочного редактирования как в SciTE

Post by siberia-man »

Да. Так лучше : ). Просто в одной из предыдущих версий скрипта такого не было. И - да, у меня постоянные блоки выключены.

Однако, выделение блока сохраняется, если перейти внутрь блока (переместить курсор в пределах строк, содержащих блок). Может быть вообще сбросить выделение блока при любом движении курсора? Потому что поведение скрипта неоднозначно можно интерпретировать. Например,

1. выделить блок нулевой ширины и переместить курсор в пределах строк над/под курсором поялвяется выделений блок шириной в один символ.
2. выделить блок шириной в один символ сместив курсор вправо (выделение слева от курсора) и переместить курсор - выделение "перепрыгивает" направо к курсору.
3. выделить блок шириной в один символ сместив курсор влево (выделение в позиции курсора).

Во всех трех случаях выделение сохраняется. И его можно непреднамеренно удалить. При этом удаляется вертикальный блок и выделенный блон сохраняется.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Имитация многострочного редактирования как в SciTE

Post by siberia-man »

Может быть включать скрипт только при выделении блока нулевой ширины, то есть зажал ALT или SHIFT+ALT, сместил курсор UP/DOWN, отжал ALT/SHIFT+ALT и начал редактирование (вставка/удаление текста).
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

siberia-man wrote: Может быть вообще сбросить выделение блока при любом движении курсора
Это сделать легко, но это же будет дикое неудобство при редактировании.
siberia-man wrote: выделение "перепрыгивает" направо к курсору.
Во время операции выделения скрипт ещё не работает. Когда вы двигаете курсор вправо, получается прыжок длиной в 2 символа - да, некрасиво, но что тут можно поделать? Перехватывать у Фара ещё и операцию выделения и реализовывать самому как-то влом.
siberia-man wrote: Во всех трех случаях выделение сохраняется. И его можно непреднамеренно удалить.
Непреднамеренно, это как? Выделение шириной в 1 нужно для визуализации, пока ничего лучше не придумал. Нажатие Del или BS являются легитимными, они обрабатываются скриптом. Что здесь может быть непреднамеренно?
siberia-man wrote: Может быть включать скрипт только при выделении блока нулевой ширины, то есть зажал ALT или SHIFT+ALT, сместил курсор UP/DOWN, отжал ALT/SHIFT+ALT и начал редактирование (вставка/удаление текста).
Для чего, что это нам даст?
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Имитация многострочного редактирования как в SciTE

Post by siberia-man »

Отвечаю по-абзацно.

Обычно в редакторах обычное выделение и блочное выделение в scintilla-подобных редакторах сбрасывается сразу. Хотя в них, в большинстве, используются непостоянные выделения. Видимо здесь разный взгляд на проблему - у Вас включены постоянные блоки, либо Вы пытаетесь охватить все варианты; я же не использую постоянные блоки вообще.

Не стоит перехватывать у ФАРа и дублировать его функции - это чревато непредсказуемым поведением. Поэтому я и предложил отказаться от подсветки выделенного блока и сразу сбрасывать выделение блока после движения курсора.

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

Я не вдавался в детали Вашего скрипта и очень слабо представляю механизм работы событий ФАРа. Кстати я только что проверил как работает многострочное редактирование в scite/notepad++/notepad2. В зависимости от редактора клавиши ALT+стрелки/SHIFT+ALT+стрелки включают режим многострочного выделения/редактирования. Затем можно редактировать (изменять, удалять, добавлять) текст в нескольких строках.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

siberia-man wrote: Обычно в редакторах обычное выделение и блочное выделение в scintilla-подобных редакторах сбрасывается сразу.
Можно сделать опцию, подумаю.
siberia-man wrote: Поэтому я и предложил отказаться от подсветки выделенного блока
Пока это останется. В SciTE и других подобных редакторах блок нулевой ширины виден, а в Фаре - нет. Редактировать вслепую не хотелось бы.
siberia-man wrote: В зависимости от редактора клавиши ALT+стрелки/SHIFT+ALT+стрелки включают режим многострочного выделения/редактирования. Затем можно редактировать (изменять, удалять, добавлять) текст в нескольких строках.
А у нас разве не так?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Shmuel wrote: Можно сделать опцию, подумаю.
Сделал, можно проверять. Опция работает только при непостоянных блоках.

siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Имитация многострочного редактирования как в SciTE

Post by siberia-man »

Спасибо. Пока нареканий нет.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Имитация многострочного редактирования как в SciTE

Post by Wave »

Shmuel wrote:Кажется дошло до меня. Просто у меня всё время persistent blocks, поэтому эти эффекты пропускаю. Вроде сейчас поправил, проверьте.
Если что, в моих условиях с выключенными persistent blocks скрипт всё так же не работает. Это так, для справки, потому что привык опять с ними жить.
Пользуюсь ФАРом больше 20 лет © собирательный.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Wave, могу только предположить (ещё раз), что у вас вмешиваются какие-то плагины или макросы. Никто кроме вас это проверить не может.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Версия из последнего спойлера помещена в шапку.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Shmuel wrote: Опция работает только при непостоянных блоках.
Что-то у меня OptCursorMoveResetsBlock ни на что не влияет — и так сбрасывается, и этак тоже.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

HaRT, в отличие от Alt+<numeric code>, здесь обработка простая и прямолинейная. Такого, как вы говорите, быть не должно.
Сейчас перепроверил на свежеустановленном Фаре с новым профилем и единственным (сабжевым) скриптом.
Рабочее предположение - у вас вмешиваются макросы/плагины.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Shmuel wrote: вмешиваются макросы/плагины
Да, опять допустил эту ошибку — забыл спрятать прочие скрипты. Сбило с толку то, что с предыдущей версией и теми же самыми прочими скриптами выделение не сбрасывалось при перемещении.
Прошу прощения за беспокойство. Если/когда разберусь, кто виноват и/или как разруливать, напишу.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Yegor
Posts: 1326
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Имитация многострочного редактирования как в SciTE

Post by Yegor »

Ребята, сорри за оффтопик, а можно use case многострочного редактирования? (Честно скажу, что скрипт даже не скачивал, т.к. не могу придумать use case)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Yegor wrote: можно use case многострочного редактирования?
Вот тут под спойлером есть наглядный пример: http://forum.farmanager.com/viewtopic.p ... 58#p120958.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Полезные макросы и скрипты”