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

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

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

Post by Shmuel » Wed 11 Nov, 2015 22:35

Latest post of the previous page:

Ну и ещё одна версия на ночь. Добавлена обработка Left и Right, кое-что пофиксено, но возможны новые баги.

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

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

Post by HaRT » Wed 11 Nov, 2015 22:41

Shmuel wrote: Добавлена обработка Left и Right
А что они должны делать? Зависит ли это от Постоянных блоков?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Wed 11 Nov, 2015 22:45

Они перемещают выделение. Не должно зависеть.

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

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

Post by HaRT » Wed 11 Nov, 2015 22:48

Shmuel wrote: Они перемещают выделение
Хм, у меня не перемещают — только выделение сбрасывается. Независимо от постоянных блоков. Проверял без прочих скриптов.
5 минут спустя: а, если блок ширины 1, то и впрямь перемещается. Желательно, чтобы и при любой другой ширине тоже перемещался…
10 минут спустя: при наличии скриптов Turbo не работает и при ширине 1.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Wed 11 Nov, 2015 22:57

Но ведь при другой ширине и раньше не работало. Это понимать как виш?

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

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

Post by HaRT » Wed 11 Nov, 2015 23:00

Shmuel wrote: Это понимать как виш?
Да, но менее востребованный, чем мои июльские и сегодняшние пожелания.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Wed 11 Nov, 2015 23:03

Что касается Turbo, то я с ним не знаком, но полагаю, что найти общий знаменатель для нескольких скриптов, одновременно управляющих редактором, весьма проблематично.

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

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

Post by HaRT » Thu 12 Nov, 2015 12:23

Shmuel wrote: найти общий знаменатель для нескольких скриптов, одновременно управляющих редактором, весьма проблематично
HaRT wrote: Есть ли какой-то простой способ заставить оба макроса (в смысле, здешний и тамошний) выполниться в предопределённом порядке?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Thu 12 Nov, 2015 16:04

Глянул на Turbo. Там на Left и Right повешены макросы. Макрос исполняется всегда раньше обработчика EditorInput (который используется в сабже).

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

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

Post by HaRT » Thu 12 Nov, 2015 16:27

Shmuel wrote: Макрос исполняется всегда раньше обработчика EditorInput (который используется в сабже)
Полезное знание. Однако те макросы только перемещают каретку и не меняют выделение (во всяком случае, внешне). Что же тогда мешает обработчику выполнить свою задачу? В частности, почему выделение сбрасывается?
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Вычеркнуто неверное
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Thu 12 Nov, 2015 18:09

HaRT wrote: Однако те макросы только перемещают каретку и не меняют выделение
Как это не меняют? Там каждый из обоих макросов заканчивается вызовом Editor.Sel(RESET).

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

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

Post by HaRT » Thu 12 Nov, 2015 18:24

Shmuel, да, в самом деле. Почему-то я был уверен, что выделение сбрасывается самим Фаром из-за непостоянства блока.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Thu 12 Nov, 2015 18:28

Вообще-то эти макросы отношения к Turbo вроде не имеют, они как бы сами по себе.

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

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

Post by HaRT » Thu 12 Nov, 2015 18:36

Shmuel wrote: эти макросы отношения к Turbo вроде не имеют
Они там идут в комплекте, как бы заодно.
Shmuel wrote: Там каждый из обоих макросов заканчивается вызовом Editor.Sel(RESET).
Вылечил заменой на Keys('AKey').
5 минут спустя: недовылечил. Теперь вправо перескакивает через одну позицию. Но идея ясна, как понадобится, дочиню.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

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

Post by Shmuel » Thu 12 Nov, 2015 21:04

И ещё версия на ночь: улучшена работа Undo/Redo.

User avatar
Wave
Posts: 1767
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 15 times

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

Post by Wave » Fri 13 Nov, 2015 16:31

С новой версией нормально работают пробелы и вообще стало можно пользоваться. Но всё так же только с постоянными блоками.

Заметил такую фигню:

Постоянные блоки выключены.
Ставлю выделение шириной в один знакосимвол.
Жму букву.
Выделение пропадает, схлопывается, строчки сдвигаются на одно знакоместо, а редактирование дальше происходит в одной строке.

Если же выделение нулевой ширины, то после нажатия первой буквы все строки пропечатывают эту букву, появляется выделение шириной в одну строку и после нажатия второй буквы происходит то, что описал выше.

Т.е. при отстутствии постоянных блоков проблема в том, что выделение пропадает.

Upd. Увидел, как выделение привязалось к позиции курсора — ух ты, вот это то, что надо!
Макрос неприменим в случае мешанины пробелов и табов, хотя это не столько проблема макроса, сколько пользователя. Я себе везде подсветку табов включаю, такшта…

Upd. Блин, пипец у меня что-то непонятное с блоками творится. Удалил все макросы кроме этого, перезапустил фар, выключил постоянные блоки через F9 → Параметры → Настройки редактора — а они ведут себя как включенные!

Upd. Внимательней надо было тему читать. Конфликт с набором макросов Turbo. Не понимаю, только, почему тогда начинаются глюки, если удаляю все макросы.

Upd. Хотя нет, удалил Turbo и вырубил постоянные блоки, перезапустил фар — всё равно этот макрос не работает.
Last edited by Wave on Fri 13 Nov, 2015 17:03, edited 2 times in total.
Пользуюсь ФАРом больше 20 лет © собирательный.

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

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

Post by HaRT » Fri 13 Nov, 2015 16:57

Wave wrote: Заметил такую фигню
Не подтверждаю. У меня нормально работает. Думаю у Вас дело в этом:
Wave wrote: Блин, пипец у меня что-то непонятное с блоками творится.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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