Как удалить запись из истории команд?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
fml2
Posts: 518
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 7 times

Как удалить запись из истории команд?

Post by fml2 » Sat 23 Nov, 2013 21:39

Как из макро, написанном на Луа, удалить запись из истории запущенных команд? Команда, которую требуется удалить, была получена с помощью следующего фрагмента (это один из элементов массива "historyItems"):


Заранее спасибо за дельные советы.

Shmuel
Posts: 5834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Re: Как удалить запись из истории команд?

Post by Shmuel » Sat 23 Nov, 2013 21:55

fml2 wrote:Как из макро, написанном на Луа, удалить запись из истории запущенных команд?
Насколько я знаю, Фар не позволяет удаления из своих историй через API. Плагин может удалять из своих историй, но не из фаровских.

fml2
Posts: 518
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 7 times

Re: Как удалить запись из истории команд?

Post by fml2 » Sat 23 Nov, 2013 23:01

Хо-хо, интересно! Действительно, попробовал запустить команду, а потом удалить ее через историю команд AltHistory. Из плагиновской истории она удалилась, а из родной фаровской -- нет. Т.е. все плагины вынуждены вести собственную историю? А как же они синхронизируют ее с фаровской -- например, если была выполнена команда? Фар посылает об этом какие-то уведомления, которые обрабатываются плагинами (я понимаю, что это все вопросы к авторам соответствующих плагинов)? Как-то это не очень удобно, мне кажется (хотя и плюсы есть: каждый плагин может "украшать" историю по своему усмотрению). А сложно было бы добавить в АПИ функцию для удаления команды?

User avatar
zg
zero-gravity
Posts: 5572
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 89 times
Contact:

Re: Как удалить запись из истории команд?

Post by zg » Sat 23 Nov, 2013 23:18

fml2 wrote:А сложно было бы добавить в АПИ функцию для удаления команды?
сложно.

Shmuel
Posts: 5834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Re: Как удалить запись из истории команд?

Post by Shmuel » Sun 24 Nov, 2013 06:12

fml2 wrote:Т.е. все плагины вынуждены вести собственную историю? А как же они синхронизируют ее с фаровской -- например, если была выполнена команда? Фар посылает об этом какие-то уведомления, которые обрабатываются плагинами (я понимаю, что это все вопросы к авторам соответствующих плагинов)?
Фар не посылает уведомлений. Плагин может использовать поле Time, чтобы определить, какие команды добавились в истории Фара после его (плагина) предыдущего запуска.

fml2
Posts: 518
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 7 times

Re: Как удалить запись из истории команд?

Post by fml2 » Sun 24 Nov, 2013 09:54

Ладно, буду тогда удалять через стандартную фаровскую историю. Хотя, казалось бы, функция удаления уже есть (иначе как это делает фаровская история?), и мне не очень понятно, почему очень сложно предоставить ее через плагиновское АПИ. Или это делается из идеологических соображений (чтобы плагины ее не попортили)? Но плагины могут и в других областях уже много чего напортить, т.е. "доверие" к ним все-таки есть. Непонятно.

User avatar
zg
zero-gravity
Posts: 5572
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 89 times
Contact:

Re: Как удалить запись из истории команд?

Post by zg » Sun 24 Nov, 2013 10:48

fml2 wrote:Но плагины могут и в других областях уже много чего напортить
например?

fml2
Posts: 518
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 7 times

Re: Как удалить запись из истории команд?

Post by fml2 » Sun 24 Nov, 2013 11:28

zg wrote:
fml2 wrote:Но плагины могут и в других областях уже много чего напортить
например?
Например, плагин может поудалять кучу файлов. Или попортить настройки Фара (либо через встроенное АПИ, либо, если такового нет, путем прямого манипулирования файлов настроек -- ведь известно, где они находятся). Я это все к тому, что если доверия к плагинам нет, то стоит их вообще исключить как класс. Но из того, что они до сих пор существуют, я залючаю, что доверие все же есть. Так почему бы его не распространить и на настройки и, в частности, на историю команд?

User avatar
zg
zero-gravity
Posts: 5572
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 89 times
Contact:

Re: Как удалить запись из истории команд?

Post by zg » Sun 24 Nov, 2013 13:03

fml2 wrote:Например, плагин может поудалять кучу файлов.
при помощи farapi?
Или попортить настройки Фара (либо через встроенное АПИ
ссылку на описание этого апи можно?

fml2
Posts: 518
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 7 times

Re: Как удалить запись из истории команд?

Post by fml2 » Sun 24 Nov, 2013 13:09

Я же сказал, что плагины могут это делать и НЕ черз фаровское АПИ. Какая разница как? Главное -- есть к плагинам доверие или нет. Фаровское АПИ все равно не сможет гарантировать, что плагин не выполняет никаких вредоносных действий. Еще раз: речь, по-моему, идет о доверии к плагинам. Если оно есть, то можно расширить АПИ. Если его нет, то лучше уничтожить концепцию плагинов как таковую, потому что мало ли что они там наделают.

Shmuel
Posts: 5834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Re: Как удалить запись из истории команд?

Post by Shmuel » Sun 24 Nov, 2013 13:32

zg wrote:
fml2 wrote:Например, плагин может поудалять кучу файлов.
при помощи farapi?
  1. editor.Editor(filename,nil,nil,nil,nil,nil,{EF_DELETEONCLOSE=1,EF_NONMODAL=1,EF_IMMEDIATERETURN=1})
  2. editor.Quit()
Итерацию по файлам также легко сделать с помощью Фар API.

User avatar
zg
zero-gravity
Posts: 5572
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 89 times
Contact:

Re: Как удалить запись из истории команд?

Post by zg » Sun 24 Nov, 2013 16:18

а чего не через просмотр? но в любом случае, да, одна дыра есть, надо закрывать, да.

Shmuel
Posts: 5834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Re: Как удалить запись из истории команд?

Post by Shmuel » Sun 24 Nov, 2013 17:02

zg wrote:но в любом случае, да, одна дыра есть, надо закрывать, да.
Ну и заодно отменить ECTL_DELETEBLOCK, ECTL_DELETESTRING, ECTL_SETSTRING и особенно ECTL_SAVEFILE. Ибо удалять файл станет нельзя, но портить всё ещё можно.

2useven10
Posts: 3890
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 162 times

Re: Как удалить запись из истории команд?

Post by 2useven10 » Sun 24 Nov, 2013 18:23

но в любом случае, да, одна дыра есть, надо закрывать, да.
да, надо отменить луа.

fml2
Posts: 518
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 7 times

Re: Как удалить запись из истории команд?

Post by fml2 » Sun 24 Nov, 2013 18:38

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

Интересно, что думают по этому поводу другие разработчики. Мне кажется, это вопрос не технический, а вопрос подхода.

Shmuel
Posts: 5834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Re: Как удалить запись из истории команд?

Post by Shmuel » Sun 24 Nov, 2013 19:45

fml2 wrote:Интересно, что думают по этому поводу другие разработчики. Мне кажется, это вопрос не технический, а вопрос подхода.
Вы воспринимаете слишком всерьёз группу последних сообщений в этой ветке. Иногда разработчикам и пошутить хочется.

Post Reply

Return to “Нужна помощь”