Double Shift / Search Everywhere - новый плагин
-
dimon40001
- Posts: 41
- Joined: 05.05.2022 18:52
Double Shift / Search Everywhere - новый плагин
Привет,
написал новый плагин Double-Shift. Позволяет назначить команды на хоткеи двойного нажатия по аналогии с JetBrains IntelliJ IDEA и т.д.
https://synwrite.sourceforge.net/forums ... php?t=3284
Готового плагина не нашел, до сих пор делал подобное под Windows через AutoHotKey. Теперь это реализовано средствами CudaText.
Устанавливается через Git.
Под Linux работает, но не на всех версиях, детально не анализировал пока.
Тормозов не наблюдаю, работает оперативно.
написал новый плагин Double-Shift. Позволяет назначить команды на хоткеи двойного нажатия по аналогии с JetBrains IntelliJ IDEA и т.д.
https://synwrite.sourceforge.net/forums ... php?t=3284
Готового плагина не нашел, до сих пор делал подобное под Windows через AutoHotKey. Теперь это реализовано средствами CudaText.
Устанавливается через Git.
Под Linux работает, но не на всех версиях, детально не анализировал пока.
Тормозов не наблюдаю, работает оперативно.
-
main Alexey
- Posts: 2807
- Joined: 25.08.2021 18:15
Re: Double Shift / Search Everywhere - новый плагин
спасибо. у меня работает (Вин10 пока пробовал).
обязательно посмотрите issues в Гитхабе от меня.
обязательно посмотрите issues в Гитхабе от меня.
-
dimon40001
- Posts: 41
- Joined: 05.05.2022 18:52
Re: Double Shift / Search Everywhere - новый плагин
Code smells и оптизмизацию сделал.
Насчет имени репозитория я тоже думал, что это узкое место.
Хотелось бы сохранить в своем гитхабе организованную структуру.
С другой стороны плохо, если имя плагина будет выделяться и ломать структуру папок.
Как я понимаю, CudaText хочет, чтобы имя репозитория и subdir однозначно совпадали? Когда я сделал разное - то вылетала ошибка при попытке установить.
Насчет имени репозитория я тоже думал, что это узкое место.
Хотелось бы сохранить в своем гитхабе организованную структуру.
С другой стороны плохо, если имя плагина будет выделяться и ломать структуру папок.
Как я понимаю, CudaText хочет, чтобы имя репозитория и subdir однозначно совпадали? Когда я сделал разное - то вылетала ошибка при попытке установить.
Code: Select all
[info]
title=Double-Shift
type=cudatext-plugin
subdir=cuda_double_shift ### ТАК НЕ СРАБОТАЛО...
subdir=foss-cudatext-plugin-doubleshift ### А ТАК СРАБОТАЛО
...
-
dimon40001
- Posts: 41
- Joined: 05.05.2022 18:52
Re: Double Shift / Search Everywhere - новый плагин
Обнаружился еще побочный эффект связанный с тем, что on_key_up() не обрабатывает нажатие символов алфавита, а только служебные клавиши.
А именно, если быстро набирать uppercase по одной клавише, или что-то со скобками, например, шибанг #!, то плагин будет ловить эти нажатия.
Решением может быть ловить нажатия, а не отпускания, но я не хотел этого делать, т.к. интуитивно решил, что это будет замедлять работу плагина и редактора. По идее, как я понимаю, достаточно поменять event on_key_up() на on_key() в inf-файле и в названии метода.
Либо просто уменьшить задержку, которая считает два нажатия подряд как "двойное".
UPD: через on_key() тоже работает, побочный эффект устраняется, торможения не наблюдается. У самого не хватает знаний, чтобы судить, какой способ предпочесть.
А именно, если быстро набирать uppercase по одной клавише, или что-то со скобками, например, шибанг #!, то плагин будет ловить эти нажатия.
Решением может быть ловить нажатия, а не отпускания, но я не хотел этого делать, т.к. интуитивно решил, что это будет замедлять работу плагина и редактора. По идее, как я понимаю, достаточно поменять event on_key_up() на on_key() в inf-файле и в названии метода.
Либо просто уменьшить задержку, которая считает два нажатия подряд как "двойное".
UPD: через on_key() тоже работает, побочный эффект устраняется, торможения не наблюдается. У самого не хватает знаний, чтобы судить, какой способ предпочесть.
-
main Alexey
- Posts: 2807
- Joined: 25.08.2021 18:15
Re: Double Shift / Search Everywhere - новый плагин
да, простой on_key будет замедлять. но есть трюк чтобы не замедляло. около события в install.inf надо прописать фильтр - коды клавищ через запятую которые on_key только и поймает.
если в фильтре будут и "буквы" то все равно замедлит.
===Wiki:
Only for "section=events":
* "events": comma-separated list of events to handle in plugin, e.g. "events=on_change,on_caret".
* "keys": supported only for several events:
** for "on_key": comma-separated list of int key codes to handle in event, e.g. "keys=9" means that event is only called for key code 9 (Tab char).
** for "on_open" / "on_open_pre": comma-separated list of lower-case file extensions, without leading dot, to handle in event.
если в фильтре будут и "буквы" то все равно замедлит.
===Wiki:
Only for "section=events":
* "events": comma-separated list of events to handle in plugin, e.g. "events=on_change,on_caret".
* "keys": supported only for several events:
** for "on_key": comma-separated list of int key codes to handle in event, e.g. "keys=9" means that event is only called for key code 9 (Tab char).
** for "on_open" / "on_open_pre": comma-separated list of lower-case file extensions, without leading dot, to handle in event.
-
main Alexey
- Posts: 2807
- Joined: 25.08.2021 18:15
Re: Double Shift / Search Everywhere - новый плагин
>Как я понимаю, CudaText хочет, чтобы имя репозитория и subdir однозначно совпадали?
да.
да.
-
main Alexey
- Posts: 2807
- Joined: 25.08.2021 18:15
Re: Double Shift / Search Everywhere - новый плагин
> У самого не хватает знаний, чтобы судить, какой способ предпочесть.
лучше способ с меньшей паузой но только если он все хорошо фиксит.
лучше способ с меньшей паузой но только если он все хорошо фиксит.
-
dimon40001
- Posts: 41
- Joined: 05.05.2022 18:52
Re: Double Shift / Search Everywhere - новый плагин
Опытным путем установил, что оптимальная задержка 150-200 ms.main Alexey wrote: ↑30.11.2025 18:14 > У самого не хватает знаний, чтобы судить, какой способ предпочесть.
лучше способ с меньшей паузой но только если он все хорошо фиксит.
Вижу еще одно потенциальное решение - подписываться на оба события и считать от первого нажатия до последнего отпускания.
Это отфильтрует ситуации, когда человек нажал и держит Shift, ищет глазами кнопку на клавиатуре, а потом быстро нажимает и отпускает Shift второй раз. Сейчас это вызовет активацию плагина, т.к. замеряется время именно между отпусканиями (что строго говоря не совсем является дабл-кликом по клавише).
Re: Double Shift / Search Everywhere - новый плагин
Здравствуйте!
Спасибо за плагин!
А как им управлять?
В Plugins его нет в списке.
Через Config в plugins.ini?
Двойной Shift и двойной Ctrl срабатывает не всегда.
Нужно делать второй клик с минимальной задержкой, как две точки подряд в телеграфе Морзе.
И что он делает?
Как повесть различные команды?
Чем отличаются три ветви в Git'у?
CudaText 1.230.2.0, linux-x86_64-qt5, fpc 3.2.3
Ubuntu 24.04.3 LTS 64-бит X11 Gnome 46
Спасибо за плагин!
А как им управлять?
В Plugins его нет в списке.
Через Config в plugins.ini?
Двойной Shift и двойной Ctrl срабатывает не всегда.
Нужно делать второй клик с минимальной задержкой, как две точки подряд в телеграфе Морзе.
И что он делает?
Как повесть различные команды?
Чем отличаются три ветви в Git'у?
CudaText 1.230.2.0, linux-x86_64-qt5, fpc 3.2.3
Ubuntu 24.04.3 LTS 64-бит X11 Gnome 46
-
main Alexey
- Posts: 2807
- Joined: 25.08.2021 18:15
Re: Double Shift / Search Everywhere - новый плагин
да, им управлять через секцию конфига в plugins.ini.
при вызове 'Options / Settings-plugins / ....' он запишет в plugins.ini опции. вот их менять.
паузу между нажатиями там можно менять.
и обе команды можно менять (dbl Shift click, dbl Ctrl click).
при вызове 'Options / Settings-plugins / ....' он запишет в plugins.ini опции. вот их менять.
паузу между нажатиями там можно менять.
и обе команды можно менять (dbl Shift click, dbl Ctrl click).