Автостартующие макросы (и настройка среды)

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

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Latest post of the previous page:

NightRoman wrote:Но иногда имеет смысл и про оптимизацию не забыть. Фар нередко запускается для чего-то раз-два в панелях и выйти. Редактор не запускается. Под редактор же у юзера тяжелая инициализация инструментов может быть заряжена, в редакторе много всего делается хорошего. Запускать все это сразу при старте Фара часто может быть просто незачем.
В Lua есть механизм модулей (библиотек). Они всегда загружаются "по первому требованию", кэшируются, и последующие вызовы уже дёшевы (из кэша). Поэтому можно автостартующий макрос и не перегружать особо.

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Да это понятно. Только все это предполагает дополнительную квалификацию пользователя, что ли. Да иногда и лишние шаги даже и для квалифицированного.

В PowerShell тоже есть сходное понятие модулей, и они грузятся один раз. Но я все ж из опыта решил добавить авто-старт для редактора. Это просто удобно, оказывается.

User avatar
zg
zero-gravity
Posts: 5779
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 142 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by zg »

NightRoman wrote:Но иногда имеет смысл и про оптимизацию не забыть. Фар нередко запускается для чего-то раз-два в панелях и выйти. Редактор не запускается. Под редактор же у юзера тяжелая инициализация инструментов может быть заряжена, в редакторе много всего делается хорошего. Запускать все это сразу при старте Фара часто может быть просто незачем.
в чём дороговизна добавления функции в таблицу?

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Хорошо, дольше обсуждать. Давайте начнем с одного, пока-то и этого нет (не совсем есть). Если все будет хорошо и удобно, значит, это и есть правильный подход.

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

zg wrote:в чём дороговизна добавления функции в таблицу?
Если будет отдельное событие "Самый первый запуск редактора", то в принципе тогда можно и просто добавить функцию в таблицу. Это не дорого, согласен. Но это доп. событие нужно, имхо.

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Centaur »

Shmuel wrote:
Max Rusov wrote:нужно только, чтобы он сработал до макроса использующего эти функции
Вот поэтому мне нравится идея zg, что автостартующий макрос должен быть только один. Не исключено, что так и будет сделано.
Автостартующий макрос не обязан быть один, достаточно, чтобы они все были независимы либо упорядочены.

Распространённый паттерн из Linux’ов — событие запускает все файлы в определённом каталоге в алфавитном порядке имён. Или конфигурационные файлы читаются из каталога в алфавитном порядке имён, причём более поздние настройки перетирают более ранние.

User avatar
zg
zero-gravity
Posts: 5779
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 142 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by zg »

Centaur wrote:Распространённый паттерн из Linux’ов — событие запускает все файлы в определённом каталоге в алфавитном порядке имён. Или конфигурационные файлы читаются из каталога в алфавитном порядке имён, причём более поздние настройки перетирают более ранние.
какой бонус это даёт?

Marble
Posts: 21
Joined: Fri 08 Oct, 2010 00:43

Re: Spring — внедрение Lua в качестве макроязыка

Post by Marble »

zg wrote:какой бонус это даёт?
Это даёт бОльшую гибкость в оперировании настройками.
Включение (отключение) любых функций становиться тривиальной задачей - OS рулит.

Вдогонку... фишка с наследованием в некоторых плагинах очень показательный пример:
PluginXX_User.ini инициализирует свои и перебивает умолчальные переменные в PluginXX.ini
Удобство несомненное, нет?

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Marble
Верно, но кому это реально надо, могут сделать и руками из *одного* файла. Только уже без навязанных Фаром правил, а по своему вкусу, из любой папки, по любой сортировке, и т.п.

User avatar
zg
zero-gravity
Posts: 5779
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 142 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by zg »

Marble wrote:Удобство несомненное, нет?
нет.

Code: Select all

require("autostart_user")

User avatar
SUSim
Posts: 1543
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 10 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Минимум можно ничего не делать - пусть юзеры правят фай luamacro.lua, но это неудобно при обновлении, лучше сделать привычно - аналогично Far.exe.ini - сделать ссылку из упомянутого файла на luamacrouser.lua

Надо протестировать, намного ли ресурсов заберет загрузка одного авто-стартующего файла вместо десятка разбитых по областям автостартующих макросов - думаю соооооооовсем не много (файл luamacrouser.lua грузится незаметно), смотря конечно что в него понаписать (на глаз, разницу в скорости между скриптом и dll, я заметил только при циклах в 10000 повторов).

Я бы понятие области автостарта вообще не рассматривал.

Мне вместо area удобнее condition, объединив area с существующим flags (что-то типа editor&newfile, или Shell|CommandLine), и вместо key удобнее events (нажатие клавиши, отпускание, движение мышкой, условие по времени и события самого фара - запуск редактора, запуск меню и т.п.)
SimSU ··· ·· -- ··· ··-

User avatar
SUSim
Posts: 1543
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 10 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

А лучше всего что-то типа RunOnce - при импорте макроса прописать/добавить в глобальную таблицу свои таблицы/свойства/константы/функции
Я подумываю над созданием своей уникальной таблицы и чисткой глобальной области от всяких переменных и констант.
SimSU ··· ·· -- ··· ··-

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Centaur »

zg wrote:
Centaur wrote:Распространённый паттерн из Linux’ов — событие запускает все файлы в определённом каталоге в алфавитном порядке имён. Или конфигурационные файлы читаются из каталога в алфавитном порядке имён, причём более поздние настройки перетирают более ранние.
какой бонус это даёт?
Бонусы начинаются, когда конфиг (скрипт реакции на событие) не принадлежит целиком администратору, а управляется несколькими пакетами. Пакет при установке (плагин при распаковке) подкладывает файл в каталог, и всё работает. При деинсталляции файл удаляется, и всё продолжает работать. С единым конфигом (скриптом) установка/обновление/удаление пакетов (плагинов) требует ручной (и иногда внимательной) правки.

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Centaur
Опять упомяну PowerShell, обычный, не Фаровский. Не факт, что повод для подражания, но все же пример и повод подумать. Они при дизайне много позаимствовали из разных шеллов и скриптовых языков. Но в итоге они стартуют только оговоренные скрипты из оговоренных папок. Такого, чтобы запустить все скрипты из какой-то папки, они не стали делать. Плюсы и минусы можно обсуждать, уверен, есть и те, и те. Но никто реально не жалуется, во всяком случае, я не в курсе, хотя слежу за их багтрекером и другими ресурсами регулярно и уже много лет. Так что нужда в твоем сценарии, предположительно, из практики - невелика.

Офф. Пакеты же, которые пишут себя в автозагрузку, особенно молча, у меня вызывают сложные выражения, часто непечатные.

User avatar
zg
zero-gravity
Posts: 5779
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 142 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by zg »

Centaur wrote:Бонусы начинаются, когда конфиг (скрипт реакции на событие) не принадлежит целиком администратору, а управляется несколькими пакетами. Пакет при установке (плагин при распаковке) подкладывает файл в каталог, и всё работает. При деинсталляции файл удаляется, и всё продолжает работать.
я не против варианта, когда есть какой-нибудь _autostart.lua, который в официальной поставке загружает содержимое папки ./autostart. даже — за.

User avatar
NightRoman
Posts: 5924
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 13 times
Been thanked: 14 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Независимо от того, что делает этот скрипт - если он в официальной поставке, это не очень хорошо, по-моему. По соображениям легкости переключения настроек и простоты обновлений авто-стартовый скрипт пользователя должен бы и искаться в одной из папок профиля пользователя, а потому в поставку может входить разве что как пример, но не реально используемый авто-стартующий скрипт. (Но в примерном скрипте можно что угодно советовать и предлагать по умолчанию готовое, конечно)

Post Reply

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