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

Здесь обсуждается всё, что касается макросов.
Post Reply
Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 01 Dec, 2014 18:25

Имитация многострочного печатания/удаления как в редакторе SciTE.
- Создать вертикальный блок шириной 0 или 1 символ.
- Курсор должен находиться в любой строке, входящей в блок.
- Начинайте редактировать!
scite_like_20160113.7z
(2.06 KiB) Downloaded 73 times
Last edited by Shmuel on Wed 20 Jan, 2016 12:09, edited 13 times in total.

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

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

Post by HaRT » Mon 01 Dec, 2014 18:34

Shmuel wrote:шириной 1 символ
Почему бы не 0?
Содержательное обсуждение тут: «Невидимые блоки нулевой ширины» — даже со скринкастом!
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 01 Dec, 2014 18:36

HaRT wrote: Почему бы не 0?
Для визуализации. Можно применить и другие методы, конечно.

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

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

Post by HaRT » Mon 01 Dec, 2014 18:38

Shmuel wrote: Для визуализации.
Просто в имеющихся реализациях удобно то, что выделенное замещается вводимым. Если нужно только вставить, то замещать-то и нечего. Тут бы нулевая ширина и пришлась ко двору.
По идее можно было бы подсвечивать уже набранную часть другим цветом фона — тогда будет хорошо видно, какие строки задействованы. (Предлагаемый скрипт я не пробовал. Если там оно уже так и есть, я только рад.)
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 01 Dec, 2014 18:42

HaRT wrote: По идее можно было бы подсвечивать уже набранную часть другим цветом фона — тогда будет хорошо видно, какие строки задействованы. (Предлагаемый скрипт я не пробовал. Если там оно уже так и есть, я только рад.)
Там этого нет. Это всего лишь начальный набросок. Каждый желающий может его развивать и улучшать и делиться с сообществом.

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 01 Dec, 2014 23:43

В первом посте выложен скрипт с одним исправлением и правильной обработкой режима вставки/замены.

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Tue 02 Dec, 2014 18:31

Обновлён файл в первом посте. Сделано несколько исправлений.

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

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

Post by John Doe » Mon 08 Dec, 2014 10:37

Вот такой макрос вызывает неработоспособность скрипта:

Code: Select all

Macro {
  area="Editor"; key="/./";
  action=function()
    Keys"AKey"
  end;
}
P.S.
Собственно скрипт очевидно не при чём, это больше в тему LuaMacro

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

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

Post by John Doe » Mon 08 Dec, 2014 10:46

Shmuel wrote: Курсор должен находиться в любой строке, входящей в блок, на позиции блока или правее.
В SciTE работает точно так?

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 08 Dec, 2014 10:53

John Doe wrote:
Shmuel wrote: Курсор должен находиться в любой строке, входящей в блок, на позиции блока или правее.
В SciTE работает точно так?
Нет, так как в Scite блок нулевой ширины является видимым (курсор растягивается на неск. строк).
А вообще, скрипт ещё планируется развивать, просто переключился сейчас на другое.

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 08 Dec, 2014 10:55

John Doe wrote: Вот такой макрос вызывает неработоспособность скрипта:
Разрешите в условии верхнего уровня FARMACRO_KEY_EVENT. Я это не сделал сознательно.

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

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

Post by John Doe » Mon 08 Dec, 2014 11:05

Shmuel wrote: Нет, так как в Scite блок нулевой ширины является видимым (курсор растягивается на неск. строк).
Если я правильно понимаю, то вертикальный блок в данном случае должен как-бы заменить курсор, т.е. все действия в идеале должны выполняться в позициях блока, а не левее/правее?

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 08 Dec, 2014 11:10

John Doe wrote: Если я правильно понимаю, то вертикальный блок в данном случае должен как-бы заменить курсор
Так оно и есть в моей рабочей (ещё не выложенной) версии.

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

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

Post by John Doe » Mon 08 Dec, 2014 11:16

Shmuel wrote: Разрешите в условии верхнего уровня FARMACRO_KEY_EVENT.
Помогло.
Shmuel wrote: Я это не сделал сознательно.
А почему?
Не правильнее этим управлять с помощью NoSendKeysToPlugins?

Shmuel
Posts: 5154
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 14 times
Been thanked: 144 times

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

Post by Shmuel » Mon 08 Dec, 2014 11:23

John Doe wrote: Не правильнее этим управлять с помощью NoSendKeysToPlugins?
Может и так. Я на начальном этапе не хотел влезать в детали, хотелось побыстрее получить основную функциональность.

User avatar
4ekucT
Posts: 505
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

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

Post by 4ekucT » Mon 22 Dec, 2014 01:07

О давно хотел такую штуку. Спасибо!

Еще для persistent блоков хорошо было бы иметь возможность поставить курсор в начало или в середину блока и редактировать там.
А готы прыгают с балконов?

Post Reply

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