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

Здесь обсуждается всё, что касается макросов.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Latest post of the previous page:

Независимо от того, что делает этот скрипт - если он в официальной поставке, это не очень хорошо, по-моему. По соображениям легкости переключения настроек и простоты обновлений авто-стартовый скрипт пользователя должен бы и искаться в одной из папок профиля пользователя, а потому в поставку может входить разве что как пример, но не реально используемый авто-стартующий скрипт. (Но в примерном скрипте можно что угодно советовать и предлагать по умолчанию готовое, конечно)
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Раз зашел речь об автостарте. Этот вопрос решается? В смысле, чтобы не только для shell они были, а для любого режима запуска Фара?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:Раз зашел речь об автостарте. Этот вопрос решается? В смысле, чтобы не только для shell они были, а для любого режима запуска Фара?
Ну не всё сразу... Эта ситуация уже много лет. Можно подождать ещё пару месяцев.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Согласен, спросил, скорей, на предмет "не забылось ли". Может, огласить какой-нибудь TODO лист или roadmap, чтобы подобных вопросов избежать.

Замечу, что раньше ситуация была не та, однако. Макросы для настройки окружения для остальных макросов не применялись особо. Я нацелился на создание у себя некоторых функций в автостарте, но реализация откладывается до окончательного решения с автостартом. (Это просто пояснение, не жалоба).
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:Согласен, спросил, скорей, на предмет "не забылось ли". Может, огласить какой-нибудь TODO лист или roadmap, чтобы подобных вопросов избежать.
Лучше заведи инц на мантисе.
Мой TODO лист короткий - навести порядок с DisableOutput, но пока никак не начну.
А дальше - видно будет.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Есть еще хотелка. Ну или просто подумать. Может, в package.path прямо из коробки стоит добавить какой-нибудь фиксированный путь из профиля пользователя. Типа %FARPROFILE%\Scripts\?.lua (%FARPROFILE% развернутый, конечно). Понятно, что это юзер и сам может в автостарте сделать, но речь об "удобстве" - не надо об этом думать, а просто класть свои скрипты в эту папку и пользовать require.

Пока же все пути завязаны на непользовательские папки в FARHOME. Класть туда свои файлы нежелательно даже если фар одним пользователем используется, усложняется обновление, например.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Тоже на мантис не помешает.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Записал на мантис
Автостарт (в баги) - http://bugs.farmanager.com/view.php?id=2172
Про package.path (в виши) - http://bugs.farmanager.com/view.php?id=2171
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

NightRoman wrote:...Может, в package.path прямо из коробки стоит добавить какой-нибудь фиксированный путь из профиля пользователя. Типа %FARPROFILE%\Scripts\?.lua (%FARPROFILE% развернутый, конечно). Понятно, что это юзер и сам может в автостарте сделать, но речь об "удобстве" - не надо об этом думать, а просто класть свои скрипты в эту папку и пользовать require.
Лучше класть скрипты не в саму папку, а в подпапку MyPack этой папки. Пользовать придётся require'MyPack.MyScript'.
Названия lua-файлов в разных пакетах скриптов могут совпадать, а при использовании своей подпапки гарантируется, что "загрузится" нужный lua-файл. И поставлять скрипты станет удобнее.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Aidar
Комментарий очень дельный, но раз уже заведен инц на мантисе, то лучше там, а не здесь. Продублируй, если не трудно.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Shmuel
Может, чего не понял. А при чем тут мантис, там вроде нечего добавить? Aidar дал совет как лучше класть скрипты в эту папку, которая включена в путь модулей. Или что?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:А при чем тут мантис, там вроде нечего добавить?
Лучше, когда информация в одном месте, а не разбросана. Могут быть и дальше комментарии здесь и там - зачем? По сути ты прав: то, что Aidar предлагает, это - надстройка, не меняющая сути твоего предложения.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Shmuel wrote:Комментарий очень дельный, но раз уже заведен инц на мантисе, то лучше там, а не здесь. Продублируй, если не трудно.
Добавил комментарий и на мантис.
Shmuel wrote:
NightRoman wrote:А при чем тут мантис, там вроде нечего добавить?
... По сути ты прав: то, что Aidar предлагает, это - надстройка, не меняющая сути твоего предложения.
Я просто предлагаю использовать то, что уже реализовано Shmuel в LuaFAR for Editor, опробовано на скриптах для этого плагина и гарантированно работает.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Хм, я думал это стандартная фича Lua. То есть если require пользует "X.Y" то реально ищется Y в подпапках X из всех папок в package.path. Или это не так?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:Хм, я думал это стандартная фича Lua. То есть если require пользует "X.Y" то реально ищется Y в подпапках X из всех папок в package.path. Или это не так?
Реально точки заменяются на бэкслеши. Но Aidar акцентирует не это, а то, что разные пакеты живут каждый в своей папке, предотвращая тем самым конфликты имён.

P.S. Немного истории, чтобы было понятнее. Два автора пакетов каждый в своём автостартующем скрипте добавляли корень своего пакета в package.path. Это приводило к риску конфликтов имён, то-есть require("mylib") могло найти mylib.lua как в одном пакете, так и в другом, в зависимости от того, как был модифицирован package.path. После того, как с авторами пакетов была достигнута договорённость не трогать package.path, они стали грузить свои библиотеки соотв-но как require("pack1.mylib") и require("pack2.mylib"), на чём возможность конфликтов имён была исчерпана.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Shmuel wrote:P.S. Немного истории, чтобы было понятнее. Два автора пакетов каждый в своём автостартующем скрипте добавляли корень своего пакета в package.path. Это приводило к риску конфликтов имён, то-есть require("mylib") могло найти mylib.lua как в одном пакете, так и в другом, в зависимости от того, как был модифицирован package.path. После того, как с авторами пакетов была достигнута договорённость не трогать package.path, они стали грузить свои библиотеки соотв-но как require("pack1.mylib") и require("pack2.mylib"), на чём возможность конфликтов имён была исчерпана.
Про конфликт я понял. С подпапками вероятность меньше, одобряю такой подход. Но как без модификации package.path поместить свой пакет (в отдельной папке) в одну из предназначенных для этого пользовательских папок - непонятно.
Post Reply

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