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

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

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

Post by Shmuel »

Latest post of the previous page:

Ну и ещё одна версия на ночь. Добавлена обработка Left и Right, кое-что пофиксено, но возможны новые баги.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Shmuel wrote: Добавлена обработка Left и Right
А что они должны делать? Зависит ли это от Постоянных блоков?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Они перемещают выделение. Не должно зависеть.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Shmuel wrote: Они перемещают выделение
Хм, у меня не перемещают — только выделение сбрасывается. Независимо от постоянных блоков. Проверял без прочих скриптов.
5 минут спустя: а, если блок ширины 1, то и впрямь перемещается. Желательно, чтобы и при любой другой ширине тоже перемещался…
10 минут спустя: при наличии скриптов Turbo не работает и при ширине 1.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Но ведь при другой ширине и раньше не работало. Это понимать как виш?
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Shmuel wrote: Это понимать как виш?
Да, но менее востребованный, чем мои июльские и сегодняшние пожелания.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Что касается Turbo, то я с ним не знаком, но полагаю, что найти общий знаменатель для нескольких скриптов, одновременно управляющих редактором, весьма проблематично.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Shmuel wrote: найти общий знаменатель для нескольких скриптов, одновременно управляющих редактором, весьма проблематично
HaRT wrote: Есть ли какой-то простой способ заставить оба макроса (в смысле, здешний и тамошний) выполниться в предопределённом порядке?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Глянул на Turbo. Там на Left и Right повешены макросы. Макрос исполняется всегда раньше обработчика EditorInput (который используется в сабже).
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

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

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

Post by Shmuel »

HaRT wrote: Однако те макросы только перемещают каретку и не меняют выделение
Как это не меняют? Там каждый из обоих макросов заканчивается вызовом Editor.Sel(RESET).
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Shmuel, да, в самом деле. Почему-то я был уверен, что выделение сбрасывается самим Фаром из-за непостоянства блока.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Вообще-то эти макросы отношения к Turbo вроде не имеют, они как бы сами по себе.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Shmuel wrote: эти макросы отношения к Turbo вроде не имеют
Они там идут в комплекте, как бы заодно.
Shmuel wrote: Там каждый из обоих макросов заканчивается вызовом Editor.Sel(RESET).
Вылечил заменой на Keys('AKey').
5 минут спустя: недовылечил. Теперь вправо перескакивает через одну позицию. Но идея ясна, как понадобится, дочиню.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

И ещё версия на ночь: улучшена работа Undo/Redo.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

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

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

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

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

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

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

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

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

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

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