Макрос:в редакторе показать diff между двумя одноименными...

Здесь обсуждается всё, что касается макросов.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by Max Rusov »

Latest post of the previous page:

HaRT wrote:Если нет плагина, то лично я предпочту, чтобы макрос вызвал встроенную функциональность, а не аварийно завершился.
Так на то есть Plugin.Exist. Вопрос в том что чаще требуется в $else части - сделать какие-то значимые действия, или просто выдать сообщение об ошибке?...
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by Skirda »

John Doe wrote:Я вижу тут обратное: что за религия запрещает прерывать макрос в случаях отличных от перечисленных выше четырёх догм?
Я так понимаю, что тебе доставляют огромное наслаждение те программы, которые неожиданно по ассерту вылетают (или просто молча схлопываются)...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by John Doe »

HaRT wrote:Если нет плагина, то лично я предпочту, чтобы макрос вызвал встроенную функциональность, а не аварийно завершился.
В таких случаях предварительно вызывается Plugin.Exist и обходимся без аварийного завершения.

Зачем выдумывать примеры, когда всё есть в титульном сообщении: Без Farcmds макрос не имеет смысла, но без Colorer может работать, да.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by John Doe »

DrKnS wrote:Патамучта макрос может, например, менять под свои нужды окружение, что-то делать и потом восстанавливать как было, и внезапные прерывания хз где приведут хз к чему.
Что значит "внезапные"? Любую внезапность можно будет при необходимости исключить предварительной проверкой Plugin.Exist.

И я вам гарантирую, что намного более вероятным является противоположный сценарий: юзер не проверил код возврата, а макрос пошёл себе дальше делать непонятно что.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by John Doe »

Skirda wrote:Я так понимаю, что тебе доставляют огромное наслаждение те программы, которые неожиданно по ассерту вылетают (или просто молча схлопываются)...
Абсолютно некорректная аналогия.
Во-первых в данном случае я могу в нужных местах проверить наличие плагина.
Но зато при терепешнем раскладе если я забуду это сделать, и макрос наделает делов, то это будет намного хуже чем если бы он мирно завершился (не молча, а с понятным сообщением об ошибке).

То что предлагаю я ничуть не уступает в гибкости теперешнему поведению но вдобавок ещё и:
а) более "дуракоустойчиво"
б) менее громоздко
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by Centaur »

Skirda wrote:В редакторе показать diff между двумя одноименными файлами с противоположных панелей.
Разрешите провокационный вопрос. Чем это лучше пункта в User Menu с хоткеем '=' и командой view:<diff -Nau "!.!" "!#!\!^!.!"? (Раскраска Colorer’ом достигается через автоопределение типа по первой строке. FarCmds и diff.exe считаем стоящими Всегда или подлежащими установке при первой надобности [с опциональными матами в адрес человека, настраивавшего машину].)
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by HaRT »

По здравом размышлении я согласен, что если в случае аварийного завершения макроса будет выводиться сообщение, в какой строке и позиции и по какой причине макрос завершился, то на практике и впрямь удобнее не писать проверки на каждый вызов и при этом не опасаться непредсказуемых последствий.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by Skirda »

Centaur wrote:Чем это лучше пункта в User Menu с хоткеем '=' и командой view:<diff -Nau "!.!" "!#!\!^!.!"?
Эээ... где я употребил слово "лучше"?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by NightRoman »

Извините, что вклиниваюсь, если что. Если кому что-то подобное для PowerShellFar интересно, то вот:
http://forum.farmanager.com/viewtopic.p ... 213#p93213
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Макрос:в редакторе показать diff между двумя одноименным

Post by Maximus5 »

Мне тоже кажется, что если Plugin.Menu будет прерывать макрос (в случае отсутствия ест-но) с внятным сообщением - пользоваться ей станет удобнее. Для навороченных макросов (которые меняют окружение хз где) вполне себе будет работать Plugin.Exist.
btw, прерываемость можно было бы регулировать mmode(5) например ;)
Post Reply

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