StackTracePlus @Xer0X — расширенный анализ стека, полный обзор контекста ошибки или любого другого runtime-контекстa

Здесь обсуждается всё, что касается макросов.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by skipik »

Latest post of the previous page:

citRiks wrote: Wed 17 Feb, 2021 14:13 Еще вот что, StackTracePlus надо класть в директорию модулей, а не в скрипты.
Да, конечно, это по ошибке он туда попал, в нормальной моей сборке лежит в модулях.
Спасибо большое за ответ и исправление! Добавил "_G" и всё завелось. Порядок.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by Ann »

citRiks,
skipik wrote: Wed 17 Feb, 2021 15:27Добавил "_G" и всё завелось. Порядок
Да, после внесения рекомендованных Вами изменений красное недовольство LuaMacro при загрузке Фара прекратилось, и Фар стал грузиться спокойно. Спасибо.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by citRiks »

починка бага, косметика рефакторинг:
https://github.com/dr-dba/far-lua-diagnostics/

надо обновить и этот модуль:
https://github.com/dr-dba/far-lua-general-utils/
Last edited by citRiks on Fri 19 Feb, 2021 20:41, edited 1 time in total.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by skipik »

citRiks,
Сразу при запуске фара.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by citRiks »

skipik, Sorry, надо убрать эту строчку из _макроинит.луа,
здесь я ее уже убрал:
https://github.com/dr-dba/far-lua-diagn ... roinit.lua
можно снова взять или просто удлаить строчку:
Xer0X.fnc_far_mod_require("ffi-usg")
(не нужно оно)
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by Ann »

citRiks,

А нельзя ли для того, чтобы в каждом новом экземпляре Фара не копипастить Ваше дополнение в _макроинит.луа, сделать с ним примерно то, что в своё время сделал со своим дополнением 2useven10? Он преобразовал его в макрос с flags="RunAfterFARStart" (см. viewtopic.php?p=133096#p133096).
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

StackTracePlus @Xer0X — расширенный анализ стека

Post by buniak_a_h »

Ann, а что, этот макрос копипастить не придётся?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by citRiks »

buniak_a_h wrote: Sat 20 Feb, 2021 09:44 Ann, а что, этот макрос копипастить не придётся?
абсолютно верно :) да и _макроинит.луа когда-нибудь, и думаю что вскоре, устаканится
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by citRiks »

Ann, понимаю вашу усталось от зависимостей
Кроме сказанного @А. Буняк, RunAfterFarStart не поддается контролю за очередностью загрузки,
т.е. скрипты которые должны получить подготовленную другим скриптом почву,
не факт что будут запущены после подготовки а на перед.

С другой стороны, можно запихнуть то что в _макроините в модуль,
который будет реквайрится каждым зависимым от него скриптом,
но это не сильно поменяет дело, так как все равно будет модуль как зависимость.

думаю все же организую со временем модуль для этого все же,
возможно что юзерам так проще будет
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

StackTracePlus @Xer0X — расширенный анализ стека

Post by Ann »

buniak_a_h wrote: Sat 20 Feb, 2021 09:44 Ann, а что, этот макрос копипастить не придётся?
В настоящий момент включение дополнения в _макроинит производится в следующем порядке:

1) файл по ссылке сохраняем в папку, находящуюся за пределами %FarProfile%\Macros\scripts\

2) открываем его в редакторе, выделяем содержимое и помещаем в буфер

3) переводим курсор на нативный %FarProfile%\Macros\scripts\_macroinit.lua

4) открываем его в редакторе, находим нужный блок и взамен его содержимого и помещаем требуемый блок (разумеется, эта копипаста гораздо надёжнее чем непосредственно с гитХаба, но ведь это тоже копипаста)

5) выходим из редактора

6) перезагружаем Фар.

и я предполагал, что, в случае возможности преобразования дополнения в RunAfterFARStart-макрос, процедура сократится до двух простых шагов:

1) файл по ссылке сохраняем в %FarProfile%\Macros\scripts\ рядом с _macroinit.lua

2) перезагружаем Фар.
citRiks wrote: Sat 20 Feb, 2021 13:41думаю все же организую со временем модуль для этого
И тогда моё маленькое чаяние будет осуществлено, спасибо.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

StackTracePlus @Xer0X — расширенный анализ стека, дает ПОЛНЫЙ обзор контекста ошибки, + любого другого runtime контекстa

Post by buniak_a_h »

Ann, Как-то вы усложнили сильно.
1. Перезапускать FAR совершенно не обязательно; достаточно выдать macro:load или выполнить макрос, перезагружающий макросы (здесь таких много. Я пользуюсь Reload Macros).
2. Поместите _macroinit.lua в ту папку, в которой находятся скрипты, в нём упомянутые. И копипастить не придётся, и порядок наведёте. Не надо сваливать все скрипты в %FarProfile%\macros\scripts - свалку получите.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

StackTracePlus @Xer0X — расширенный анализ стека, дает ПОЛНЫЙ обзор контекста ошибки, + любого другого runtime контекстa

Post by Ann »

buniak_a_h wrote: Sat 20 Feb, 2021 16:32 Ann, Как-то вы усложнили сильно.
...
Поместите _macroinit.lua в ту папку, в которой находятся скрипты, в нём упомянутые
А разве допустимо иметь несколько одноимённых _macroinit.lua, разбросанных по разным подпапкам %FarProfile%\Macros\scripts\ ?
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

StackTracePlus @Xer0X — расширенный анализ стека, дает ПОЛНЫЙ обзор контекста ошибки, + любого другого runtime контекстa

Post by buniak_a_h »

Ann wrote: Sat 20 Feb, 2021 17:43А разве допустимо…
1. Я только что проверил.
2.
Для каждого дерева rootN первым всегда исполняется макрофайл rootN\_macroinit.lua, если такой файл существует.
Ну я и решил попробовать…
Last edited by buniak_a_h on Sat 20 Feb, 2021 18:01, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

StackTracePlus @Xer0X — расширенный анализ стека, дает ПОЛНЫЙ обзор контекста ошибки, + любого другого runtime контекстa

Post by John Doe »

buniak_a_h wrote: Sat 20 Feb, 2021 16:32 Поместите _macroinit.lua в ту папку, в которой находятся скрипты, в нём упомянутые.
Похоже главная ошибка тут - использовать _macroinit.lua не по назначению.
_macroinit.lua служит для запуска того, что должно ГАРАНТИРОВАННО быть выполнено до всего остального.
И если для сабжевого скрипта это действительно, необходимо, то это должна быть одна строчка, ссылающаяся на исполняемый код (в модуле или где угодно).
https://t.me/FarManager — Telegram чат
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

StackTracePlus @Xer0X — расширенный анализ стека, дает ПОЛНЫЙ обзор контекста ошибки, + любого другого runtime контекстa

Post by Ann »

buniak_a_h wrote: Sat 20 Feb, 2021 18:00
Ann wrote: Sat 20 Feb, 2021 17:43А разве допустимо…
1. Я только что проверил.
2.
Для каждого дерева rootN первым всегда исполняется макрофайл rootN\_macroinit.lua, если такой файл существует.
Ну я и решил попробовать…
Сделал по Вашему совету и подтверждаю, что это вполне работает.

Большая благодарность за подсказку и растолковывание описания роли _macroinit.lua, изложенной в разделе "Загрузка макрофайлов" Справки по системе макросов Far Manager %FarHome%\Encyclopedia\macroapi_manual.ru.chm.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

StackTracePlus @Xer0X — расширенный анализ стека, дает ПОЛНЫЙ обзор контекста ошибки, + любого другого runtime контекстa

Post by Ann »

citRiks,
Ann wrote: Sat 20 Feb, 2021 05:15А нельзя ли для того, чтобы в каждом новом экземпляре Фара не копипастить Ваше дополнение в _макроинит.луа, сделать с ним примерно то, что в своё время сделал со своим дополнением 2useven10? Он преобразовал его в макрос с flags="RunAfterFARStart" (см. viewtopic.php?p=133096#p133096)
Отбой. buniak_a_h указал как надо делать в соответствии с %FarHome%\Encyclopedia\macroapi_manual.ru.chm и я проверил и подтверждаю это.

Т.е. вполне можно сразу же пользоваться указанной Вами ссылкой на _macroinit.lua без лишней суеты.
Post Reply

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