Как читать far:config из макроса/плагина?
Как читать far:config из макроса/плагина?
Нашёл только одну тему, там через LuaJIT -> sqlite3.dll -> generalconfig.db
http://forum.farmanager.com/viewtopic.p ... 41#p110141
Всё бы хорошо, но таким образом можно читать только сохранённые настройки, а не текущие.
http://forum.farmanager.com/viewtopic.p ... 41#p110141
Всё бы хорошо, но таким образом можно читать только сохранённые настройки, а не текущие.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Как читать far:config из макроса/плагина?
Из макроса: Far.Cfg_Get.
Причём без гарантии, что завтра какая-либо из настроек не исчезнет, или её смысл не изменится.
Из плагина: вроде никак.
Можно использовать Settings Control, передавая GUID Фара, но:
-- во-первых это будет тоже чтение из базы, а не текущих настроек,
-- во-вторых так можно прочитать ограниченное количество настроек (что-то порядка 26).
Причём без гарантии, что завтра какая-либо из настроек не исчезнет, или её смысл не изменится.
Из плагина: вроде никак.
Можно использовать Settings Control, передавая GUID Фара, но:
-- во-первых это будет тоже чтение из базы, а не текущих настроек,
-- во-вторых так можно прочитать ограниченное количество настроек (что-то порядка 26).
- zg
- zero-gravity
- Posts: 6036
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Как читать far:config из макроса/плагина?
там FARConfigItem.Value возвращается, так что как раз текущие настройки, а не из базы.Shmuel wrote:-- во-первых это будет тоже чтение из базы, а не текущих настроек,
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Как читать far:config из макроса/плагина?
Не проверял, охотно верю. Но это не стыкуется с писанием:zg wrote:там FARConfigItem.Value возвращается, так что как раз текущие настройки, а не из базы.Shmuel wrote:-- во-первых это будет тоже чтение из базы, а не текущих настроек,
Писание wrote:Функция SettingsControl позволяет управлять загрузкой настроек из базы данных плагина или Far Manager, а также сохранением настроек в базу данных плагина.
Re: Как читать far:config из макроса/плагина?
Спасибо за наводку.
Хотел прочитать "Panel.Layout.ColumnTitles". Разобрался, нашёл, заработало, но скажу я вам... нет, я не скажу - вы и сами догадливые.
Хотел прочитать "Panel.Layout.ColumnTitles". Разобрался, нашёл, заработало, но скажу я вам... нет, я не скажу - вы и сами догадливые.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: Как читать far:config из макроса/плагина?
Вы, конечно, правы по поводу документации (её недостатков или же отсутствия).Acerbic wrote:но скажу я вам... нет, я не скажу - вы и сами догадливые.
Могу сказать только одно: подключайтесь и вместе сделаем её лучше.
- zg
- zero-gravity
- Posts: 6036
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Как читать far:config из макроса/плагина?
опыт показывает, что документацию никто не читает, поэтому мотивации тратить на неё какие-то большие силы — нет.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как читать far:config из макроса/плагина?
Мы может и догадливые, но почему бы вам действительно не описать доходчиво, глядишь и в документацию вошло бы.Acerbic wrote:Разобрался, нашёл, заработало, но скажу я вам... нет, я не скажу - вы и сами догадливые.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Как читать far:config из макроса/плагина?
Ну раз вам лень, то расскажу я.
Для полноты упомяну, что настройки плагинов хранятся в виде элементов типа FarSettingsItem, получить их можно через Enum, начиная перечисление с корня (FSSF_ROOT).
Пример работы с базами плагинов я уже приводил.
В отличии от плагинов, в базе фара хранятся элементы 2х типов (это кстати не отражено в мануале LuaFAR).
- FarSettingsItem
- FarSettingsHistory
Но получить весь список через Enum не получится: запрещено, и для корня, и для элементов типа FarSettingsItem.
Использовать Enum можно только для элементов FarSettingsHistory, например
Вот константы (far.Flags) для всех фаровских историй:
Кроме собственно историй, так же хранятся и ссылки на папки
Теперь что касается непосредственно темы заявленной в заголовке.
Эти настройки хранятся как FarSettingsItem, Enum запрещён, получить значения (Get) можно по имени параметра,
При работе с настроками фара тип параметра можно не указывать (с настройками плагинов иначе, тип там обязателен, доступен он через Enum)
В качестве корня можно указывать следующие константы: .
Как уже замечено, далеко не все настройки far:config доступны таким образом.
Список доступных можно узнать из исходников (config.cpp).
Вот пример кода, получаещего из config.cpp доступные параметры:
P.S.
Информация во многом добыта методом тыка, если что поправьте.
В примерах используется модуль Lua Explorer
Update
Пример работы с историями: http://forum.farmanager.com/viewtopic.php?f=15&t=8289
http://bugs.farmanager.com/view.php?id=2942
Для полноты упомяну, что настройки плагинов хранятся в виде элементов типа FarSettingsItem, получить их можно через Enum, начиная перечисление с корня (FSSF_ROOT).
Пример работы с базами плагинов я уже приводил.
В отличии от плагинов, в базе фара хранятся элементы 2х типов (это кстати не отражено в мануале LuaFAR).
- FarSettingsItem
- FarSettingsHistory
Но получить весь список через Enum не получится: запрещено, и для корня, и для элементов типа FarSettingsItem.
Использовать Enum можно только для элементов FarSettingsHistory, например
Вот константы (far.Flags) для всех фаровских историй:
Кроме собственно историй, так же хранятся и ссылки на папки
Теперь что касается непосредственно темы заявленной в заголовке.
Эти настройки хранятся как FarSettingsItem, Enum запрещён, получить значения (Get) можно по имени параметра,
При работе с настроками фара тип параметра можно не указывать (с настройками плагинов иначе, тип там обязателен, доступен он через Enum)
В качестве корня можно указывать следующие константы: .
Как уже замечено, далеко не все настройки far:config доступны таким образом.
Список доступных можно узнать из исходников (config.cpp).
Вот пример кода, получаещего из config.cpp доступные параметры:
P.S.
Информация во многом добыта методом тыка, если что поправьте.
В примерах используется модуль Lua Explorer
Update
Пример работы с историями: http://forum.farmanager.com/viewtopic.php?f=15&t=8289
http://bugs.farmanager.com/view.php?id=2942
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как читать far:config из макроса/плагина?
Спасибо, ссылки на Энциклопедию поправил.
Собственно тут должны были быть ссылки на LuaFAR manual, но он в данной части слишком минималистичен.
Собственно тут должны были быть ссылки на LuaFAR manual, но он в данной части слишком минималистичен.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Как читать far:config из макроса/плагина?
Да, кстати вот какая неправда есть в Энциклопедии по поводу SCTL_OPENSUBKEY/SCTL_CREATESUBKEY
Функция возвращает уровень вложенности ключа (!! требуется уточнение !!).
На самом деле эти функции возвращают значение Root для заданного подключа.
Тот самый Root, который принимают в качестве первого параметра все методы obj.
http://bugs.farmanager.com/view.php?id=2941
P.S.
Manual LuaFAR тут тоже ясности не добавляет:
Возможно стоит записать хотя бы так:
Root = obj:OpenSubkey (Root, Name)
или
newRoot = obj:OpenSubkey (Root, Name)
Функция возвращает уровень вложенности ключа (!! требуется уточнение !!).
На самом деле эти функции возвращают значение Root для заданного подключа.
Тот самый Root, который принимают в качестве первого параметра все методы obj.
http://bugs.farmanager.com/view.php?id=2941
P.S.
Manual LuaFAR тут тоже ясности не добавляет:
Code: Select all
subkey = obj:OpenSubkey (Root, Name)
Parameters:
Root: integer
Name: string
Returns:
subkey: integer, or nil
Root = obj:OpenSubkey (Root, Name)
или
newRoot = obj:OpenSubkey (Root, Name)
Re: Как читать far:config из макроса/плагина?
всё описано правильно. тот кто хоть немного работал с ф-ми виндового реестра, всё поймёт из одной строки.
то что вы предлагаете кроме путаницы ничего не даст.
то что вы предлагаете кроме путаницы ничего не даст.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: Как читать far:config из макроса/плагина?
Чуть помедленнее.
Где это правильно?
FarEncyclopedia.ru.chm: что такое "уровень вложенности", что такое "требуется уточнение"?
luafar_manual.chm: как понять что такое 'subkey'
Где это правильно?
FarEncyclopedia.ru.chm: что такое "уровень вложенности", что такое "требуется уточнение"?
luafar_manual.chm: как понять что такое 'subkey'