Condensed View

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 4997
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

Реализация Condensed View

Postby Shmuel » Mon 06 Jun, 2016 16:54

Latest post of the previous page:


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

Реализация Condensed View

Postby John Doe » Mon 06 Jun, 2016 17:07

Небольшое дополнение е сказанному HaRT'ом:
buniak_a_h wrote:Source of the post return a не годится
В общем случае годится:
Boolean is the type of the values false and true. Both nil and false make a condition false; any other value makes it true.
Та же f1 может легко возвращать и boolean, наряду с прочими значениями.

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Mon 06 Jun, 2016 17:18

John Doe wrote:Небольшое дополнение е сказанному HaRT'ом:
<...>В общем случае годится <...> Та же f1 может легко возвращать и boolean, наряду с прочими значениями.
Я сейчас не буду искать, но где-то было написано такое: если condition возвращает числовое значение, то оно используется как приоритет. Надо точно знать, что a - не число (EditorID - как раз число). Или что такой приоритет не помешает остальному. А что будет, если приоритет = 0?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

Реализация Condensed View

Postby John Doe » Mon 06 Jun, 2016 17:27

buniak_a_h wrote:Source of the post если condition возвращает числовое значение, то оно используется как приоритет.
Что ж вы так упорно хотите число вернуть.
Даже если на входе число, всегда можно превратить его в то что вам надо.

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Mon 06 Jun, 2016 17:42

John Doe wrote:Source of the post Что ж вы так упорно хотите число вернуть. <...>
Так нужно передать идентификатор редактора. Не я придумал, что это - число. Ну или передавать через внешнюю переменную. Тогда получится всё тоже самое, против чего Вы протестуете. Третьего варианта я не вижу.
Перепишите, на это у Вас времени уйдёт меньше, чем на переписку. Сами же признавали, что макрос полезный. На авторских правах я не зациклен, у меня и без этого имеется достаточно продуктов, достаточно широко распространённых. Просто хотелось поделиться. Тем более, что за более чем полгода эксплуатации ошибок в функционале не выявлено. Остальное - дело вкуса.
Правильной считается программа, выполняющая ожидаемые от неё действия за приемлемое время Н. Вирт, "введение в структурное программирование"©
:)
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

Реализация Condensed View

Postby John Doe » Mon 06 Jun, 2016 18:15

buniak_a_h wrote:Source of the post Третьего варианта я не вижу.
А он есть. И не один.
buniak_a_h wrote:Source of the post Ну или передавать через внешнюю переменную. Тогда получится всё тоже самое, против чего Вы протестуете.
Вот честно, не стал бы затевать этот разговор, если бы эти переменные использовались только для передачи из condition в action.
buniak_a_h wrote:Source of the post Просто хотелось поделиться.
Ок. Спасибо.

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Wed 08 Jun, 2016 22:45

John Doe
Кардинально переделал макрос (эффективность в угоду "замкнутости" кода). Если будет времечко - гляньте...
John Doe wrote:Source of the post А он есть. И не один.
Убрал передачу информации о редакторе через внешние переменные. Теперь функция action сама вызывает editor.GetInfo().
John Doe wrote:Source of the post Вот честно, не стал бы затевать этот разговор, если бы эти переменные использовались только для передачи из condition в action.
Они и используются только для этого. Или Вы имеете в виду, что в теле функции action их надо присвоить внутренней переменной функции, чтоб за время выполнения на них не повлияло изменение внешних ei, EID? Есть в этом сермяга, просто делал по образцу других макросов, т.к. язык и среда совершенно незнакомы.
Last edited by buniak_a_h on Sat 11 Jun, 2016 13:27, edited 2 times in total.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Sat 11 Jun, 2016 00:10

Shmuel wrote:Source of the post Macro - это функция, загружающая макрос,
Родилось несколько вопросов:
1. Можно ли вызвать эту функцию RunTime из локальной функции (тем самым при начале некоего процесса загружать макрос, а по окончании как-то выгружать)? Кстати, а как выгружать?
2. Про Event не расскажете? Например, было бы полезно включать и выключать обработчик (не через condition, а именно как в языках ООП: OnEvent:=func();
ОnEvent:=nil;

Может, подскажете, где это описано?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

Shmuel
Posts: 4997
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

Реализация Condensed View

Postby Shmuel » Sat 11 Jun, 2016 01:55

buniak_a_h wrote:Source of the post 1. Можно ли вызвать эту функцию RunTime из локальной функции (тем самым при начале некоего процесса загружать макрос, а по окончании как-то выгружать)? Кстати, а как выгружать?
Есть far.MacroAdd / far.MacroDelete, но их функциональность несколько неполная.
buniak_a_h wrote:Source of the post 2. Про Event не расскажете? [...] Может, подскажете, где это описано?
Encyclopedia\macroapi_manual.ru.chm.

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

Реализация Condensed View

Postby sToLp » Sat 11 Jun, 2016 09:05

Win10x64entRu Far b4699 x64.
При попытке перезагрузки макросов из редактора после установки сабжевого макроса Фар повисает.
При перезагрузке макросов из панелей вылезает ошибка:

Code: Select all

LuaMacro
C:\Far\Profile\Macros\scripts\edi_lua\CondView.lua:279: bad argument #1 to 'maxn' (table expected, got nil)

И после этого всякая попытка загрузить любой текстовый файл в редактор вешает Фар.

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

Реализация Condensed View

Postby John Doe » Sat 11 Jun, 2016 09:31

buniak_a_h wrote:Source of the post Может, подскажете, где это описано?
У нас тут чётко заданная тема, я прошу не использовать её как какой-то общий чат.

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Sat 11 Jun, 2016 13:26

sToLp wrote:Source of the post При перезагрузке макросов из панелей вылезает ошибка:
1. Исправил (на первой странице).
2. Не подскажете, Вы перед перезагрузкой макросов пользовались этим CVondView ?
Last edited by buniak_a_h on Sun 12 Jun, 2016 06:24, edited 1 time in total.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

Реализация Condensed View

Postby sToLp » Sat 11 Jun, 2016 14:01

buniak_a_h wrote:2. Не подскажете, Вы перед перезагрузкой макросов пользовались этим CVondView ?
Нет. Вот этим.
buniak_a_h wrote:1. Исправил ...
Ошибка при загрузке Фара и при перезагрузке макросов не вылезает. Но при наличии сабжевого макроса текстовые файлы в редактор не грузятся — Фар зависает. В том числе:
sToLp wrote:Source of the post При попытке перезагрузки макросов из редактора после установки сабжевого макроса Фар повисает.
После же изъятия макроса всё встаёт на свои места.

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Sat 11 Jun, 2016 14:53

sToLp
Извините за серость, я на форуме впервые, терминологии не знаю. Что такое сабжевый макрос?
sToLp wrote:Source of the post 2. Не подскажете, Вы перед перезагрузкой макросов пользовались этим CVondView ?
Нет. Вот этим.
Вы описали, как макросы перезагружали. Я спрашивал, пользовались ли Вы макросом CondView до перезагрузки (вообще в этом сеансе работы). Ну, а раз такое получается, не могли бы Вы проверить, портится ли ФАР при "обычной" перезагрузке (macro:load в командной строке).
Извините за беспокойство.
ЗЫ.
У меня никак не воспроизводится. Ни через команду, ни макросом. :-(
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

Shmuel
Posts: 4997
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

Реализация Condensed View

Postby Shmuel » Sat 11 Jun, 2016 15:19

buniak_a_h wrote:Source of the post я на форуме впервые, терминологии не знаю. Что такое сабжевый макрос?
От слова "subject". То-есть речь о макросе, которому посвящена данная тема.

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

Реализация Condensed View

Postby sToLp » Sat 11 Jun, 2016 15:45

buniak_a_h
Во-первых, отличная новость — в Far 3.0.4700 x64 сабжевый макрос в последней редакции нормально загружается, выгружается, работает и ни чему другому не мешает.
И отвечая на предыдущие вопросы:
пользовались ли Вы макросом CondView до перезагрузки (вообще в этом сеансе работы)
Нет. Утром, в Far b4699 x64 под Win10x64entRu скопировал макрос, загрузил его в редактор и далее как описывал выше. Однообразно в чистом Фаре и в совокупности с КонЭму. Перезагрузки системы не помогали. Повторяемость была 100%-ая.
не могли бы Вы проверить, портится ли ФАР при "обычной" перезагрузке (macro:load в командной строке)
Не очень понятен вопрос в части того, что значит "портится ли Фар". Поэтому отвечаю как понял. Последняя версия макроса из панелей перезагружается нормально любым способом. Но после загрузки макроса в Far 3.0.4699 x64 нельзя было грузить файлы в редактор — Фар попросту вешался.

И, повторюсь, в Far 3.0.4700 x64 всё нормально.

buniak_a_h
Posts: 256
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 31 times
Been thanked: 3 times
Contact:

Реализация Condensed View

Postby buniak_a_h » Sat 11 Jun, 2016 15:50

sToLp
Спасибо.
sToLp wrote:Source of the post Не очень понятен вопрос в части того, что значит "портится ли Фар".
Имел в виду - теряет функциональность. В частности, перестаёт грузить файлы в редактор.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании


Return to “Полезные макросы и скрипты”

Who is online

Users browsing this forum: No registered users and 1 guest