Latest post of the previous page:
DELМакросы для редактора Журко
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Макросы для редактора Журко
Интересно каков порядок ускорения.Дмитрий Журко wrote: ↑Mon 08 Feb, 2021 21:24 Вкратце, прежде искали с шаблоном любые слова, которые сравнивали с тем словом, которое нужно. Теперь ищется слово без шаблона, "плоским" поиском. Если находит в строке, то далее с шаблоном именно этого слова. Можно было бы и просто искать с таким шаблоном, но тогда ускорения не будет, а иногда наоборот, на коротких словах.
Возможно переход на использование editor.GetStringW / regex.findW даст более ощутимые результаты.
Вот такое ещё резануло глаз:
Code: Select all
Keys('F7 Down') local f7insens = Dlg.GetValue() == 0 Keys('Esc') -- Поиск [ ] Учитывать регистр.
Искомый параметр:
- недоступен через апи макросов (Editor.Set), хотя рядом есть аналогичные
- недоступен через апи плоагинов, т.к. вообще не входит в состояние редактора (но тут не и других)
- отсутствует и в конфиге (far:config)
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4259
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Макросы для редактора Журко
У меня (да и у Вас наверняка) есть макрос для получения всех элементов диалога (использует апи диалогов:
hDlg:send(F.GetDlgItem, …)
). Так что вешаете ивент на DN_INITDIALOG, в котором читаете соответствующий чекбокс и посылаете DM_CLOSE, -2 (имитация Esc).- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Макросы для редактора Журко
Я имел ввиду что нет способа получить требуемые значения напрямую.
Выковыривать из диалога это всё-таки окольный путь.
Выковыривать из диалога это всё-таки окольный путь.
https://t.me/FarManager — Telegram чат
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
Давайте вы учтёте, наконец, что пишите не идиоту, а программисту. Не я начал с учебника. Даже тому, кто начал писать такое не стоит. Всё что хорошо описано и лежит в известных местах я изучил сообразно задаче. Вы можете обсудить вопрос с теми, кто по-прежнему убежден, что arg[...] и arg.n есть. Да, мне не сразу пришло на ум, что arg могли упустить, оставив работу с ...buniak_a_h wrote: ↑Mon 08 Feb, 2021 23:34 Попробуйте начать не с учебника, а с описания языка. Vararg описан тут. И ФАР тут вообще ни при чём.
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
Пока трудно. Я непременно припомню и соберу все камни. Но пока моя задача сводилась к тому, чтобы довести свой давний замысел. Почти довёл.
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
Особая благодарность за то, что вы тут один о теме. В пару раз, в лучшем случае. Окно маленькое, наверное.
Обязательно испытаю. И любопытно, и перфекционизм требует.
Да, жаль. Но для меня это цветочки. Далее по более простому поводу (поиск по словам) пришлось изгаляться намного сильнее. И в диалоги лезть, и вручную перерисовывать, "подымать" экран, чтобы не было так, что нажимаю клавишу, чтобы слово найти, слова дальше нет, но текущая строка куда-то с глаз улетела (центрировалась, но внимание-то в другом месте). Это в модуле jr.lines и модуле jr.block. Писал и переписывал раз двадцать. И не потому что работало, но некрасиво, не работало совсем.John Doe wrote: ↑Tue 09 Feb, 2021 12:45 Но тут обнаружил что другого пути похоже действительно нет.
Искомый параметр:
- недоступен через апи макросов (Editor.Set), хотя рядом есть аналогичные
- недоступен через апи плоагинов, т.к. вообще не входит в состояние редактора (но тут не и других)
- отсутствует и в конфиге (far:config)
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
А этот скрипт учтёт, скажем, что в F7 пропуски и повторы индексов? Впрочем, обойти их легко, lua-же, но смысл влезать в чужую работу, возможно её портить? Будет авторский механизм, использую. А пока надеюсь спрятать в процедурку, и ладно. Последователи легко повторят за мной все эти нажатия.buniak_a_h wrote: ↑Tue 09 Feb, 2021 13:03 У меня (да и у Вас наверняка) есть макрос для получения всех элементов диалога (использует апи диалогов: hDlg:send(F.GetDlgItem, …)). Так что вешаете ивент на DN_INITDIALOG, в котором читаете соответствующий чекбокс и посылаете DM_CLOSE, -2 (имитация Esc).
Проще говоря, я не о таких как вы старался. Вы и не станете, кстати, использовать чужое, у вас своего много. Я о тех беспокоен, кто будет использовать мой код.
Last edited by Дмитрий Журко on Wed 10 Feb, 2021 01:35, edited 1 time in total.
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Макросы для редактора Журко
Дмитрий Журко wrote: ↑Wed 10 Feb, 2021 01:05 Давайте вы учтёте, наконец, что пишите не идиоту, а программисту.
Достаточно погуглить. А пока нарекания на документацию Фара больше похожи на голословные утверждения.
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
Они и есть, И что? Примите чужое мнение. Я не выдавал его за факты, только за неуважение. Вы, кстати, не ответили на прямой вопрос. А он прямой. Значит вам не надо было.
- buniak_a_h
- Posts: 4259
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Макросы для редактора Журко
Дмитрий Журко wrote: ↑Wed 10 Feb, 2021 01:05 Давайте вы учтёте, наконец, что пишите не идиоту, а программисту
-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
Я и ещё раз напомню о заголовке обсуждения. Мерить свой член я не буду. Напишите лучше, посмотрю, поблагодарю. Я привёл почти весь код, что я использую. Если кто-то чего-то не обнаружил, то нет. И я знаю притом, что то же самое у вас.
Системный подход надо применять к системе. К костылям надо применять костыльный подход. Я сделал костыли. Подожду, куда система пойдёт. Я всегда учу, что надо быть уместным и точным.
Системный подход надо применять к системе. К костылям надо применять костыльный подход. Я сделал костыли. Подожду, куда система пойдёт. Я всегда учу, что надо быть уместным и точным.
- buniak_a_h
- Posts: 4259
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Макросы для редактора Журко
Этот скрипт только получает то, что есть в диалоге. Независимо от того, виден элемент, или нет. Чем вызван диалог - нажатием F7 в редакторе, или F6 в панели - для него значения не имеет.Дмитрий Журко wrote: ↑Wed 10 Feb, 2021 01:20А этот скрипт учтёт, скажем, что в F7 пропуски и повторы индексов? Впрочем, обойти их легко, lua-же, но смысл влезать в чужую работу, возможно её портить? Будет авторский механизм, использую. А пока надеюсь спрятать в процедурку, и ладно. Последователи легко повторят за мной все эти нажатия.buniak_a_h wrote: ↑Tue 09 Feb, 2021 13:03 У меня (да и у Вас наверняка) есть макрос для получения всех элементов диалога (использует апи диалогов: hDlg:send(F.GetDlgItem, …)). Так что вешаете ивент на DN_INITDIALOG, в котором читаете соответствующий чекбокс и посылаете DM_CLOSE, -2 (имитация Esc).
--
Что такое "пропуски и повторы индексов" в контексте диалога - я не знаю. Это больше похоже на структуру форматной строки в некоторых языках (Object Pascal, например): там после
%
может стоять конструкция index:. Увы, функция string.format такого не умеет. Если имеется в виду получение всех параметров, передаваемых в функцию, то конструкция {...}
дойдёт только до первого переданного nil-а. Точнее, оператор #
(количество) и ipair
(перечисление всех элементов) остановятся на первом же nil-е. Зато select - абсолютно правильно (с точки зрения здравого смысла) отработает.-
- Posts: 118
- Joined: Tue 19 Jan, 2021 21:49
- Has thanked: 26 times
- Been thanked: 1 time
Макросы для редактора Журко
F7 есть только в редакторе. Макрос исполняется в редакторе тоже. Ну нет смысла лезть.buniak_a_h wrote: ↑Wed 10 Feb, 2021 01:46 Этот скрипт только получает то, что есть в диалоге. Независимо от того, виден элемент, или нет. Чем вызван диалог - нажатием F7 в редакторе, или F6 в панели - для него значения не имеет.
С аргументами я давно разобрался. Спасибо вам ещё раз. Пишите тому, кто не стал.