Latest post of the previous page:
Вот например Автостартующие макросыNightRoman wrote:А какой?Skirda wrote:скажем так - не договорились в свое время о деталях.
UPD: если продолжать, то не в рамках этой темы.
Latest post of the previous page:
Вот например Автостартующие макросыNightRoman wrote:А какой?Skirda wrote:скажем так - не договорились в свое время о деталях.
UPD: если продолжать, то не в рамках этой темы.
Заметьте, что выше я процитировал сообщение двухстраничной давности.NightRoman wrote:John Doe, понятно, это если они будут как класс. В *этой* теме уже звучало, нужны ли они вообще или пора что-то другое иметь.
Пишу такой скрипт, запускаю его через macro:post dofile(...):Скрипт может устанавливать “временные” глобальные переменные, значения которых будут сохраняться только в течение времени исполнения скрипта.
Пример: var = 15
Для установки “постоянных” глобальных переменных, значения которых будут сохраняться в течение всей сессии Фара и будут доступны всем скриптам, нужно использовать таблицу _G.
Пример: _G.var = 15
Code: Select all
if not myGlobal then
msgbox("Setting my global")
myGlobal = true
else
msgbox("My global exists")
end
Функция dofile обходит механизм "временных" глобальных переменных. То же касается и конструкции loadfile(filename)(). Это нужно будет или поправить или оговорить в справке.NightRoman wrote:Пишу такой скрипт, запускаю его через macro:post dofile(...):
Вот поэтому мне нравится идея zg, что автостартующий макрос должен быть только один. Не исключено, что так и будет сделано.
А кем будут являться событийные макросы (если такие будут) - какие-нить OnEnter для редактора и т.п.? Разве суть у них не "автостарт"? Или это "событийные"?Shmuel wrote:автостартующий макрос должен быть только один. Не исключено, что так и будет сделано.
Я бы предложил использовать для этого _usermenu.lua по аналогии с LuaFAR-плагинами. Вдобавок можно добавить в него возможности _usermenu.lua из LuaFAR for Editor.Shmuel wrote:Вот поэтому мне нравится идея zg, что автостартующий макрос должен быть только один. Не исключено, что так и будет сделано.Max Rusov wrote:нужно только, чтобы он сработал до макроса использующего эти функции
На мой взгляд, наоборот, нынешние “автостарт” — это событийные на событие “Фар запущен в режиме Shell”. Макросы на другие события тоже крайне желательны. Строго говоря, нажатия клавиш/мыши — это тоже события, т.ч. разделение заведомо искусственное.Skirda wrote:А кем будут являться событийные макросы (если такие будут) - какие-нить OnEnter для редактора и т.п.? Разве суть у них не "автостарт"? Или это "событийные"?
в автостартующем макросе что-нибудь типа:Skirda wrote:А кем будут являться событийные макросы (если такие будут) - какие-нить OnEnter для редактора и т.п.? Разве суть у них не "автостарт"? Или это "событийные"?Shmuel wrote:автостартующий макрос должен быть только один. Не исключено, что так и будет сделано.
Code: Select all
Far.Add('EditorEvent',MyHandler)
Far.Add('ExitEvent',MyAnotherHandler)
Минималистично, но можно и так. Остальное - оптимизация.zg wrote:я бы делал один стартующий скрипт, который стартует всегда, не важно как фар запущен. а у уж из него регистрировать сколько угодно событий на всё что можно.
В Lua есть механизм модулей (библиотек). Они всегда загружаются "по первому требованию", кэшируются, и последующие вызовы уже дёшевы (из кэша). Поэтому можно автостартующий макрос и не перегружать особо.NightRoman wrote:Но иногда имеет смысл и про оптимизацию не забыть. Фар нередко запускается для чего-то раз-два в панелях и выйти. Редактор не запускается. Под редактор же у юзера тяжелая инициализация инструментов может быть заряжена, в редакторе много всего делается хорошего. Запускать все это сразу при старте Фара часто может быть просто незачем.