SmoothMove — переход по словам с дополнительными остановками на camelCase и snake_case

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

SmoothMove — переход по словам с дополнительными остановками на camelCase и snake_case

Post by John Doe »

Предлагаю набор макросов по мотивам плагина Smooth move.
Работает в редакторе, в диалогах, и в командной строке. Вносит изменение в работу следующих функций:
  • перемещение по словам: Ctrl+Left/Right
  • выделение по словам: Ctrl+Shift+Left/Right
  • удаление по словам: Ctrl+BS/Del/T
(комбинации Num4/6 не используются)

В начале скрипта есть таблица с опциями, которые можно изменять редактируя файл,
или используя возможности cfgscript*
  • areas (string)
    Определяет макрообласти, в которых работают данные макросы.
    По умолчанию: "Editor Dialog Shell QView Info Tree".
  • side (string)
    Даёт возможность переопределить клавиши, на которые назначены макросы.
    По умолчанию: "", т.е. макросы работают как с лево- так и с правосторонними модификаторами.
    Можно ограничить одной стороной, указав "R" или "L".
  • prio (number)
    Определяет приоритет макросов.
    По умолчанию: 40, чтобы уменьшить вероятность конфликта с другими пользовательскими макросами.
  • word (string)
    Определяет паттерн для поиска слова.
    По умолчанию: "[%w_]".
  • stops (table)
    Таблица со списком паттернов для поиска остановок внутри слова. Содержит пары {прямой, обратный}.
    По умолчанию: заданы паттерны для camelCase и snakecase
    В исходном коде приведён пример альтернативного паттерна для snake
    case,
    при котором остановки будут не на первой букве слова, а на символе подчёркивания.
  • findWord (function)
    Пользовательская функция для поиска слова.
    В исходном коде приведён пример функции, при которой макросы срабатывают только если курсор уже находится внутри слова.
  • condition (function)
    Пользовательская функция, устанавливающая дополнительное ограничение для срабатывания макросов.
    В исходном коде приведён пример функции, при которой макросы работают только если включен ScrollLock.

[*] Чтобы после каждого обновления скрипта не приходилось вручную восстанавливать
изменённые значения опций рекомендуется использовать возможности cfgscript из пакета
ScriptsBrowser: http://forum.farmanager.com/viewtopic.php?f=15&t=10418
Attachments
SmoothMove.7z
(3.49 KiB) Downloaded 46 times
https://t.me/FarManager — Telegram чат
Post Reply

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