Page 1 of 12

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

Posted: Mon 01 Dec, 2014 18:25
by Shmuel
Имитация многострочного печатания/удаления как в редакторе SciTE.
  • Создать вертикальный блок шириной 0 или 1 символ.
  • Курсор должен находиться в любой строке, входящей в блок.
  • Начинайте редактировать!
    scite_like_20230729.7z
    (2.09 KiB) Downloaded 63 times

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

Posted: Mon 01 Dec, 2014 18:34
by HaRT
Shmuel wrote:шириной 1 символ
Почему бы не 0?
Содержательное обсуждение тут: «Невидимые блоки нулевой ширины» — даже со скринкастом!

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

Posted: Mon 01 Dec, 2014 18:36
by Shmuel
HaRT wrote: Почему бы не 0?
Для визуализации. Можно применить и другие методы, конечно.

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

Posted: Mon 01 Dec, 2014 18:38
by HaRT
Shmuel wrote: Для визуализации.
Просто в имеющихся реализациях удобно то, что выделенное замещается вводимым. Если нужно только вставить, то замещать-то и нечего. Тут бы нулевая ширина и пришлась ко двору.
По идее можно было бы подсвечивать уже набранную часть другим цветом фона — тогда будет хорошо видно, какие строки задействованы. (Предлагаемый скрипт я не пробовал. Если там оно уже так и есть, я только рад.)

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

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

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

Posted: Mon 01 Dec, 2014 23:43
by Shmuel
В первом посте выложен скрипт с одним исправлением и правильной обработкой режима вставки/замены.

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

Posted: Tue 02 Dec, 2014 18:31
by Shmuel
Обновлён файл в первом посте. Сделано несколько исправлений.

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

Posted: Mon 08 Dec, 2014 10:37
by John Doe
Вот такой макрос вызывает неработоспособность скрипта:

Code: Select all

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

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

Posted: Mon 08 Dec, 2014 10:46
by John Doe
Shmuel wrote: Курсор должен находиться в любой строке, входящей в блок, на позиции блока или правее.
В SciTE работает точно так?

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

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

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

Posted: Mon 08 Dec, 2014 10:55
by Shmuel
John Doe wrote: Вот такой макрос вызывает неработоспособность скрипта:
Разрешите в условии верхнего уровня FARMACRO_KEY_EVENT. Я это не сделал сознательно.

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

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

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

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

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

Posted: Mon 08 Dec, 2014 11:16
by John Doe
Shmuel wrote: Разрешите в условии верхнего уровня FARMACRO_KEY_EVENT.
Помогло.
Shmuel wrote: Я это не сделал сознательно.
А почему?
Не правильнее этим управлять с помощью NoSendKeysToPlugins?

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

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