Page 1 of 7

Как не захламлять историю макросами

Posted: Wed 19 May, 2010 19:15
by SUSim
чтобы не захламлять историю я использую два подхода:
1 в меню пользователя у меня есть пункт !??! и я команды на выполнения принчу туда :)
2 после выполнения команды из макроса, я тем же макросом удаляю последнюю строку истории...

Re: Как не захламлять историю макросами

Posted: Wed 19 May, 2010 19:56
by John Doe
Допустим, историю команд вы исправили. Но ещё ведь есть история открытия редактора/вьювера, история смены папок...

Я склонен поддержать автора изначальной темы:
Zzzz wrote:Добавьте пожалуйста в макросы функцию отключения истории команд, эдитбоксов... - чтоб не захламлять.
Т.е. неплохо бы иметь макрофукцию, управляющую сохранением истории (в разрезе TechInfo #79).
Или хотя бы просто режим, отключающий для данного макроса все истории разом.

Re: Как не захламлять историю макросами

Posted: Thu 20 May, 2010 04:22
by SUSim
эти истории я чищу например для редактора:
ShiftF2 CtrlDown $IF (ItemCount > 1) ShiftDel Esc $Else ShiftDel $End Esc %comment="Чистим историю.";

AltF11 ShiftDel Esc %comment="Чистим историю.";

ну правда не АЙС :)

Re: Как не захламлять историю макросами

Posted: Thu 20 May, 2010 05:47
by Smitis
Очень пригодилось бы "одноразовое" отключение истории Copy/Move. Лучше всего чекбокс, который при следующей операции будет автоматически сбрасываться.
Например, переименовываю файлы макросом. Чтобы всё это не добавлялось в историю, в макросе просто устанавливается чекбокс "Не добавлять в историю".

Re: Как не захламлять историю макросами

Posted: Thu 20 May, 2010 09:32
by John Doe
Чекбокс только в диалогах Copy/Move?
Не, это как-то очень половинчато, и вообще ...

Лучше сделать это режимом макроса, таким же как, например [x] Disable screen output.
А ещё универсальнее - макрофункцией, типа DisableHistory(Flags).

Re: Как не захламлять историю макросами

Posted: Thu 20 May, 2010 17:17
by Smitis
История сама по себе не имеет никакого отнашения к макросам. Поэтому такой режим макроса, по моему, сосвсем не к месту. В диалоге же, вполне уместен чекбокс. Там же, где диалогов нет, например, при выполнении команды... Ну, макрофункция, как вариант.

Re: Как не захламлять историю макросами

Posted: Tue 05 Apr, 2011 16:25
by John Doe

Re: Как не захламлять историю макросами

Posted: Tue 05 Apr, 2011 17:09
by SUSim
Не обязательно, хотя и хорошо бы... макрос на 2 строки короче будет :)

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 15:54
by NightRoman
А не лучше бы было, если история была выключена по умолчанию в режиме проигрывания макроса? Кажется, почти всегда история бесполезна, когда играет макрос. И только для редких случаев, когда она реально нужна, предоставить функу, которая это дело включает.

В этом есть логика. Макрос, который реально работает с историей или производит *полезную* историю, о ней и беспокоится. Те же макросы, которым история вредна, фиолетова, или просто не хочется хламить в ней, ничего не делают (таких большинство).

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 16:39
by AlexII
NightRoman, как только появится реализация вызова плагинных макрофункций, затем реализация давно просимой макрофункции exec (хотя б и вышеозвученным путём) для вызова плагинов и исполнения внешних программ не из командной строки — сама нужда в функционале, описанном данным топиком, думаю, отпадёт.

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 16:41
by Skirda
NightRoman wrote:А не лучше бы было, если история была выключена по умолчанию в режиме проигрывания макроса?
Кстати, да. Было бы разумнее.
Тогда нужно будет переименовать/переделать history.disable в history.enable (с соответствующим изменением смысла битов на противоположный)

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 16:44
by NightRoman
AlexII
Не отпадет. Всегда будут макросы, которые просто тупо эмулируют нажатия кнопок. И вызываться могут 150 раз. И засорять при этом историю безбожно, если не позаботиться. А кто будет заботиться, если это только что записанный макрос (контрол точкой) и его тут же запустили в дело 150 раз. Никто. А если бы испория была вырублена в макросах по умолчанию, все было бы ок.

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 16:49
by AlexII
NightRoman wrote:Всегда будут макросы, которые просто тупо эмулируют нажатия кнопок. И вызываться могут 150 раз.
Не спорю. Главное — чтоб была возможность включить историю при нужде.

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 16:51
by Skirda
В общем то переделка - делов на 2 минуты (уже готово).
Если нет веских соображений против утверждения "истории всегда задисаблены во время проигрывания макроса", то завтра закоммичу изменения "history.disable() переименована в history.enable(), истории по умолчанию для воспроизведения макросов отключены"...

Кстати, вот тут все время фигурирует "воспроизведения макросов", а как быть с "записью"? Я так думаю, что во время записи макроса историю тоже нужно отрубать.
Не?

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 16:55
by NightRoman
Skirda
Гуд. Афигеть как все просто получилось. :)

Я не читал тред внимательно. Это на какие истории будет распространяться, все? В диалогах тоже?

В своих плагинах, кстати, я делаю специальные приседания в некоторых диалогах, где историю к комбам подключаю только в зависимости от режима макроса. Видимо, от этого можно будет отказаться скоро. Хорошая новость.

Re: Как не захламлять историю макросами

Posted: Tue 12 Apr, 2011 17:02
by Skirda
NightRoman wrote:Это на какие истории будет распространяться, все? В диалогах тоже?
Здесь, правда относительно history.disable