far.Guids?

Здесь обсуждается всё, что касается макросов.
2useven10
Posts: 5205
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Re: LuaMacro — Lua как язык макросов

Post by 2useven10 »

Latest post of the previous page:

John Doe я не знаком с Вашим рядом.
Одна очевидная причина для изменения гуида - акцентировать внимание на изменениях в диалоге.
Ну и всё это скорее просто риторика (кто за этим будет следить ?), к тому же несколько мимо темы :)
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: LuaMacro — Lua как язык макросов

Post by Smitis »

2useven10 wrote:Одна очевидная причина для изменения гуида - акцентировать внимание на изменениях в диалоге.
А это реально хоть раз кто-то использовал? До недавнего времени гуидов-то было всего ничего. Да и сейчас пока немного, но тенденция увеличения есть, однако...
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Завязываем с риторикой.

Слово за автором.
Ждать константы от LuaMacro, или свои модули начинать конструировать?
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: LuaMacro — Lua как язык макросов

Post by Smitis »

Немного не к месту - сейчас обратил внимание, LuaExplorer показывает в far.Flags 666 констант. Welcome to hell... :shock:
Разум когда-нибудь победит.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

John Doe wrote:Слово за автором.
Ждать константы от LuaMacro, или свои модули начинать конструировать?
Может добавить эти гуиды в far.Flags ?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

А зачем смешивать?
far.Flags содержит константы из FAR Plugin API
far.Flags и far.Colors например отдельно

В пользу отдельности - таблицу может и посмотреть захочется.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

far.Guids?

Post by sToLp »

Подскажите, а где можно посмотреть актуальный перечень гуидов?
И нельзя ли его публиковать в составе сборок Фара?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: far.Guids?

Post by John Doe »

В Энциклопедии есть.
https://t.me/FarManager — Telegram чат
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

far.Guids?

Post by sToLp »

Спасибо! Но полон ли он? И как часто он там обновляется?
Например, сегодня в http://svn.code.sf.net/p/farmanager/cod ... /changelog объявлен новый гуид:
1. Меню выбора макроса присвоен GUID ("165AA6E3-C89B-4F82-A0C5-C309243FD21B").
А там его пока нет.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

far.Guids?

Post by Shmuel »

sToLp wrote: полон ли он?
Сравните с файлом DlgGuid.hpp в исходниках Фара.
sToLp wrote: А там его пока нет.
Там его и не будет, поскольку в списке нет гуидов диалогов и меню плагинов, а только самого Фара.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

far.Guids?

Post by Smitis »

Кому нужны все стандартные guid-ы ФАРа
1. Скачиваем свежий DlgGuid.hpp в папку masros\scripts профиля
2. Создаём там, если его ещё нет, файл _macroinit.lua
3. Помещаем в него следующий текст
  1. _G.far.Guids = far.Guids or {}
  2.  
  3. for str in io.lines(debug.getinfo(1,"S").source:match('@(.+\\)').."DlgGuid.hpp") do
  4.  
  5.     local name,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11 = str:match('DEFINE_GUID%((%w+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+),0x(%x+)')
  6.  
  7.     if name and x11 then
  8.  
  9.         far.Guids[name] = ('%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X'):format(tonumber(x1,16),tonumber(x2,16),tonumber(x3,16),tonumber(x4,16),tonumber(x5,16),tonumber(x6,16),tonumber(x7,16),tonumber(x8,16),tonumber(x9,16),tonumber(x10,16),tonumber(x11,16))
  10.  
  11.     end
  12.  
  13. end
4. PROFIT
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

far.Guids?

Post by John Doe »

Я в процессе изучения lua штук 10 вариаций подобной функции написал, вот например:

Code: Select all

for name,id in text:gmatch("DEFINE_GUID%((%w+)%s*,(.-)%)") do
  local hex = assert(loadstring("return "..id))
  print(("%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X"):format(hex()))
end

Code: Select all

for guid,name in text:gmatch("// {(.-)}%s*DEFINE_GUID%((%w+)") do
  print(("  %-23s = %q,"):format(name,guid:upper()))
end
Только в macroinit.lua мне кажется стоит включать не этот код, а уже его результат.

P.S.
И это тут точно лишнее: debug.getinfo
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

far.Guids?

Post by HaRT »

John Doe wrote: включать не этот код, а уже его результат
Тогда уж лучше написать код, который скачивает заголовочник, конвертирует его текст в lua-скрипт и кладёт результат в правильное место.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

far.Guids?

Post by Smitis »

John Doe wrote:И это тут точно лишнее: debug.getinfo
А как определить местоположение DlgGuid.hpp?
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

far.Guids?

Post by John Doe »

win.GetEnv
Или ...
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

far.Guids?

Post by Smitis »

А, ну да, можно и через ..., через DebugInfo это я больше по привычке
Разум когда-нибудь победит.
Post Reply

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