far.Guids?

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

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

Post by 2useven10 » Tue 02 Apr, 2013 19:07

Latest post of the previous page:

John Doe я не знаком с Вашим рядом.
Одна очевидная причина для изменения гуида - акцентировать внимание на изменениях в диалоге.
Ну и всё это скорее просто риторика (кто за этим будет следить ?), к тому же несколько мимо темы :)

Smitis
Posts: 1452
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

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

Post by Smitis » Tue 02 Apr, 2013 19:13

2useven10 wrote:Одна очевидная причина для изменения гуида - акцентировать внимание на изменениях в диалоге.
А это реально хоть раз кто-то использовал? До недавнего времени гуидов-то было всего ничего. Да и сейчас пока немного, но тенденция увеличения есть, однако...
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 11126
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Tue 02 Apr, 2013 19:16

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

Слово за автором.
Ждать константы от LuaMacro, или свои модули начинать конструировать?

Smitis
Posts: 1452
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

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

Post by Smitis » Tue 02 Apr, 2013 19:27

Немного не к месту - сейчас обратил внимание, LuaExplorer показывает в far.Flags 666 констант. Welcome to hell... :shock:
Разум когда-нибудь победит.

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

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

Post by Shmuel » Tue 02 Apr, 2013 20:31

John Doe wrote:Слово за автором.
Ждать константы от LuaMacro, или свои модули начинать конструировать?
Может добавить эти гуиды в far.Flags ?

User avatar
John Doe
Бюрократ
Posts: 11126
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Tue 02 Apr, 2013 20:33

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

В пользу отдельности - таблицу может и посмотреть захочется.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

far.Guids?

Post by sToLp » Thu 18 Jun, 2015 06:00

Подскажите, а где можно посмотреть актуальный перечень гуидов?
И нельзя ли его публиковать в составе сборок Фара?

User avatar
John Doe
Бюрократ
Posts: 11126
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

Re: far.Guids?

Post by John Doe » Thu 18 Jun, 2015 06:13

В Энциклопедии есть.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

far.Guids?

Post by sToLp » Thu 18 Jun, 2015 06:30

Спасибо! Но полон ли он? И как часто он там обновляется?
Например, сегодня в http://svn.code.sf.net/p/farmanager/cod ... /changelog объявлен новый гуид:
1. Меню выбора макроса присвоен GUID ("165AA6E3-C89B-4F82-A0C5-C309243FD21B").
А там его пока нет.

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

far.Guids?

Post by Shmuel » Thu 18 Jun, 2015 06:41

sToLp wrote: полон ли он?
Сравните с файлом DlgGuid.hpp в исходниках Фара.
sToLp wrote: А там его пока нет.
Там его и не будет, поскольку в списке нет гуидов диалогов и меню плагинов, а только самого Фара.

Smitis
Posts: 1452
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

far.Guids?

Post by Smitis » Wed 16 Sep, 2015 10:45

Кому нужны все стандартные guid-ы ФАРа
1. Скачиваем свежий DlgGuid.hpp в папку masros\scripts профиля
2. Создаём там, если его ещё нет, файл _macroinit.lua
3. Помещаем в него следующий текст
  1. _G.far.Guids = far.Guids or {}
  2. for str in io.lines(debug.getinfo(1,"S").source:match('@(.+\\)').."DlgGuid.hpp") do
  3.     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+)')
  4.     if name and x11 then
  5.         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))
  6.     end
  7. end
4. PROFIT
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 11126
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

far.Guids?

Post by John Doe » Wed 16 Sep, 2015 11:18

Я в процессе изучения 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: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

far.Guids?

Post by HaRT » Wed 16 Sep, 2015 11:57

John Doe wrote: включать не этот код, а уже его результат
Тогда уж лучше написать код, который скачивает заголовочник, конвертирует его текст в lua-скрипт и кладёт результат в правильное место.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Smitis
Posts: 1452
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

far.Guids?

Post by Smitis » Wed 16 Sep, 2015 12:52

John Doe wrote:И это тут точно лишнее: debug.getinfo
А как определить местоположение DlgGuid.hpp?
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 11126
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

far.Guids?

Post by John Doe » Wed 16 Sep, 2015 12:56

win.GetEnv
Или ...

Smitis
Posts: 1452
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

far.Guids?

Post by Smitis » Wed 16 Sep, 2015 13:02

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

Smitis
Posts: 1452
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

far.Guids?

Post by Smitis » Sat 19 Sep, 2015 14:30

Ну вот, сбылась многолетняя мечта :) теперь есть таблица far.Guids
Спасибо!
Разум когда-нибудь победит.

Post Reply

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