Скрипты: система их названий и описаний

Здесь обсуждается всё, что касается макросов.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Макросы: Система их названий и описаний

Post by IgorZ »

Latest post of the previous page:

John Doe wrote:IgorZ
Дело вот в чём: скрипт может определять 20 макросов. А может не определять ни одного.
Т.е. регистрировать скрипт целесообразнее независимо.
Но регистрируются в Far-е макросы, а не скрипты. В общем, неоднозначный вопрос, согласен. Идея моего предложения заключалась в том, чтобы ещё больше приблизить макросы к плагинам. Поскольку по возможностям они уже почти сравнялись.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Макросы: Система их названий и описаний

Post by John Doe »

IgorZ wrote:Но регистрируются в Far-е макросы, а не скрипты.
Регистрируются клавиатурные сочетания, вызывающие скрипт.
Регистрируются пункты меню плагинов, вызывающие скрипт.
Регистрируются обработчики событий.
Что из этого сейчас называть макросами?
IgorZ wrote:Идея моего предложения заключалась в том, чтобы ещё больше приблизить макросы к плагинам.
Как и моего.
Объединить всё многообразие связанных функций общим понятием скрипт.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Макросы: Система их названий и описаний

Post by IgorZ »

John Doe wrote:
IgorZ wrote:Но регистрируются в Far-е макросы, а не скрипты.
Регистрируются клавиатурные сочетания, вызывающие скрипт.
Регистрируются пункты меню плагинов, вызывающие скрипт.
Регистрируются обработчики событий.
Что из этого сейчас называть макросами?
Предлагаю так:
  • Скриптовый язык - язык пограммирования, программы на котором Far может исполнять, сам или с помощью соответствующих плагинов;
  • Макрос - некая программа на скриптовом языке, которую Far вызывает на непосредственное исполнение по нажатию заданной клавиатурной комбинации. Вероятно, сюда же можно отнести и пункты, вставляемые в меню плагинов - по общности вызова (прямые, явные действия пользователя);
  • Эвент(Событие) - некая программа на скриптовом языке, которую Far вызывает на непосредственное исполнение по наступлению заданного события Far-а;
  • Модуль - некая библиотека на скриптовом языке, к которой могут обращаться макросы и эвенты;
  • Скрипт - некий логически целостный пакет, могущий (но не обязанный) содержать макросы,эвенты и модули.
Хм. Почитал, что написал. Всё-таки чёткая формулировка сильно помогает. Действительно, обсуждаемое описание более всего подходит скрипту. С другой стороны, тогда потребуется разработка системы регистрации скриптов. Возьмётся ли Shmuel за такое? Объём работы, на первый взгляд, не маленький, если делать капитально, ведь тогда стоит в описание скрипта внести поля
  1. macros = { . . . };
  2.  
  3. events = { . . . };
  4.  
  5. modules = { . . . };
  6.  
  7. plugmenuitems = { . . . };
и, возможно, ещё что-нибудь, к примеру, список всех файлов, входящих в скрипт. В общем, хотелось бы выслушать начальника транспортного цеха Shmuel-я, что он думает по этому поводу.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Макросы: Система их названий и описаний

Post by Shmuel »

IgorZ wrote:Действительно, обсуждаемое описание более всего подходит скрипту. С другой стороны, тогда потребуется разработка системы регистрации скриптов. Возьмётся ли Shmuel за такое? Объём работы, на первый взгляд, не маленький, если делать капитально, ведь тогда стоит в описание скрипта внести поля
  1. macros = { . . . };
  2.  
  3. events = { . . . };
  4.  
  5. modules = { . . . };
  6.  
  7. plugmenuitems = { . . . };
и, возможно, ещё что-нибудь, к примеру, список всех файлов, входящих в скрипт. В общем, хотелось бы выслушать начальника транспортного цеха Shmuel-я, что он думает по этому поводу.
Думает, что это либо не нужно, либо преждевременно.
В то же время, из того, что вы предлагали выше, кое-что можно применить. Но прежде, чем усложнять систему, я бы предпочёл пока заниматься решением/улучшением некоторых моментов в существующей.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Макросы: Система их названий и описаний

Post by John Doe »

IgorZ wrote:[...]если делать капитально, ведь тогда стоит в описание скрипта внести поля
  1. macros = { . . . };
  2.  
  3. events = { . . . };
  4.  
  5. modules = { . . . };
  6.  
  7. plugmenuitems = { . . . };
Это излишне.
Достаточно будет в начале файла сопоставить скрипту гуид, и остальное приложится, т.к. для macros/events/menuitems имя файла известно.
Разные файлы могут автоматически объединяться в пакет по общности гуида.
Модули регистрировать не нужно. Но можно (тоже автоматически, по общности гуида).
и, возможно, ещё что-нибудь, к примеру, список всех файлов, входящих в скрипт.
Что-то подобное может в перспективе пригодиться, например для деинсталляции. Лучше не список файлов, а функция, получится универсальнее.
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Макросы: Система их названий и описаний

Post by HaRT »

John Doe wrote:Что-то подобное может в перспективе пригодиться, например для деинсталляции. Лучше не список файлов, а функция, получится универсальнее.
Зачем изобретать велосипед?! Уже давным-давно есть возможность делать на базе Windows Installer полноценные де-/инсталляторы скриптов и даже плагинов — в формате MSI или завёрнутые в EXE.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Скрипты (Макросы): Система их названий и описаний

Post by John Doe »

Из пушки по воробьям, имхо.
Во всяком случае оглядевшись по сторонам не нашёл проектов, в которых было бы принято для плагинов и расширений использовать msi.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Макросы: Система их названий и описаний

Post by DrKnS »

HaRT wrote:Зачем изобретать велосипед?! Уже давным-давно есть возможность делать на базе Windows Installer полноценные де-/инсталляторы скриптов и даже плагинов — в формате MSI или завёрнутые в EXE.
http://www.rsdn.ru/forum/flame.comp/5245011.1
User avatar
HaRT
Moderator
Posts: 10855
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Макросы: Система их названий и описаний

Post by HaRT »

DrKnS wrote:
HaRT wrote:Зачем изобретать велосипед?! Уже давным-давно есть возможность делать на базе Windows Installer полноценные де-/инсталляторы скриптов и даже плагинов — в формате MSI или завёрнутые в EXE.
http://www.rsdn.ru/forum/flame.comp/5245011.1
Windows Installer — стандарт де-факто. Чтобы скрыть его недостатки, есть соответствующие инструменты. Для скриптов или плагинов в большинстве случаев хватит банального ZipInstaller.
Фар есть инструмент, а не нянька. © 2009 DrKnS
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Скрипты (Макросы): Система их названий и описаний

Post by AleXH »

Или Inno Setup, он прост и удобен, написан людьми для людей, в то время как Windows Installer писан хищниками для чужих. Но сама уже идея использовать сторонний установщик, который в сотни раз тяжелее заключённого в нём скрипта, отдаёт безумием.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Скрипты (Макросы): Система их названий и описаний

Post by John Doe »

IgorZ wrote:Легко могу представить ситуацию, когда сложный скрипт состоит из нескольких файлов.
Представить можно, но функция отображения "соседних" макросов/событий, находящихся в одном файле, имеет смысл в любом случае:
— Не каждый макрос обязан принадлежать какому-то скрипту.
— И не каждый скрипт обязан регистрироваться (в первую очередь давайте подумаем что даёт нам эта регистрация).
IgorZ wrote: Ещё легче представить ситуацию, когда в одном файле собрана куча независимых мелких скриптов.
Опять же, надо отталкиваться от того, зачем мы собрали скрипты в один файл, и для чего нам их регистрировать отдельно (а не как единый скрипт).
IgorZ wrote:Кстати, возможна ли ситуация, когда один и тот же макрос/эвент относится к нескольким независимым скриптам? Поскольку тогда нужна возможность задания для одного макроса/эвента нескольких suid.
Полагаю, такой ситуации возникнуть не может никогда.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Скрипты (Макросы): Система их названий и описаний

Post by IgorZ »

John Doe wrote:
IgorZ wrote:Легко могу представить ситуацию, когда сложный скрипт состоит из нескольких файлов.
Представить можно, но функция отображения "соседних" макросов/событий, находящихся в одном файле, имеет смысл в любом случае:
— Не каждый макрос обязан принадлежать какому-то скрипту.
— И не каждый скрипт обязан регистрироваться (в первую очередь давайте подумаем что даёт нам эта регистрация).
Собственно, я и не возражал, просто заметил, что этот способ - не панацея, а суррогат. А что не обязан регистрироваться - это да. Но, надеюсь, выгода и удобство победят, и наличие suid станет нормой. Кстати, если макрос не принадлежит скрипту - это значит, что сам макрос и является скриптом, который состоит из единственного макроса - данного. Уф, ну и сформулировал.
John Doe wrote:
IgorZ wrote: Ещё легче представить ситуацию, когда в одном файле собрана куча независимых мелких скриптов.
Опять же, надо отталкиваться от того, зачем мы собрали скрипты в один файл, и для чего нам их регистрировать отдельно (а не как единый скрипт).
Например, куча мелких макросов, по сложности на уровне клавиатурных или чуть выше, не имеющих практически ничего общего и собранных вместе только для того, чтобы не плодить десятки файлов, каждый из пары строк.
John Doe wrote:
IgorZ wrote:Кстати, возможна ли ситуация, когда один и тот же макрос/эвент относится к нескольким независимым скриптам? Поскольку тогда нужна возможность задания для одного макроса/эвента нескольких suid.
Полагаю, такой ситуации возникнуть не может никогда.
Да, наверное, это я расфантазировался. Но есть схожая, вполне реальная ситуация - с модулями. Возможно, неплохо было бы ввести поле
  1. uses="список используемых модулей";
для указания внешних ссылок.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Скрипты (Макросы): Система их названий и описаний

Post by John Doe »

IgorZ wrote:Но, надеюсь, выгода и удобство победят, и наличие suid станет нормой.
В чём заключаются выгода и удобство?
IgorZ wrote:Например, куча мелких макросов, по сложности на уровне клавиатурных или чуть выше, не имеющих практически ничего общего и собранных вместе только для того, чтобы не плодить десятки файлов, каждый из пары строк.
Допустим. Как и для чего вы собираетесь их регистрировать?
IgorZ wrote:Возможно, неплохо было бы ввести поле
  1. uses="список используемых модулей";
для указания внешних ссылок.
Что с этим полем предполагается потом делать?
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Скрипты (Макросы): Система их названий и описаний

Post by IgorZ »

John Doe wrote:
IgorZ wrote:Но, надеюсь, выгода и удобство победят, и наличие suid станет нормой.
В чём заключаются выгода и удобство?
Однозначный и универсальный способ указать все компоненты, входящие в составной скрипт. Этого мало? Хочу напомнить, что uid тоже поначалу не казался нужной и очевидной вещью.
John Doe wrote:
IgorZ wrote:Например, куча мелких макросов, по сложности на уровне клавиатурных или чуть выше, не имеющих практически ничего общего и собранных вместе только для того, чтобы не плодить десятки файлов, каждый из пары строк.
Допустим. Как вы и для чего их регистрировать?
О регистрации в данном случае речь не шла. Я говорил о том, что в одном файле могут оказаться несколько независимых друг от друга макросов, и привёл пример.
John Doe wrote:
IgorZ wrote:Возможно, неплохо было бы ввести поле
  1. uses="список используемых модулей";
для указания внешних ссылок.
Что с этим полем предполагается потом делать?
Примеры возможных действий:
  • Автоматическая проверка при загрузке наличия необходимых для работы скрипта модулей.
  • Автоматизация сборки файлов, содержащих скрипт и все компоненты, от которых он зависит. К примеру, выбираешь в списке нужный макрос, сборщик проходится по ссылкам, составляет список всех файлов и экспортирует их в виде архива.
А вообще, как показывает практика, спустя некоторое время после введения новых возможностей число способов их использования может стать куда больше изначально предполагаемого.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Скрипты (Макросы): Система их названий и описаний

Post by John Doe »

IgorZ wrote:Однозначный и универсальный способ указать все компоненты, входящие в составной скрипт. Этого мало?
Раз вы подразумеваете множество применений, значит стоит попытаться их перечислить, ведь от этого зависит решение задачи.
IgorZ wrote:Хочу напомнить, что uid тоже поначалу не казался нужной и очевидной вещью.
Но пока что пользуются им ровно 2 человека )
IgorZ wrote:О регистрации в данном случае речь не шла. Я говорил о том, что в одном файле могут оказаться несколько независимых друг от друга макросов, и привёл пример.
Могут оказаться. Но даже если макросы технически независимы, их объединяют в одном файле по какому-то общему признаку, поэтому функция "показать все макросы из файла" вполне осмыслена.
IgorZ wrote:Возможно, неплохо было бы ввести поле
  1. uses="список используемых модулей";
для указания внешних ссылок.
Это чтобы совсем не читать и не думать?
Вот если бы была возможность не отходя от кассы скачать недостающие модули, тогда польза была бы действительно ощутима.
IgorZ wrote:[*]Автоматизация сборки файлов, содержащих скрипт и все компоненты, от которых он зависит. К примеру, выбираешь в списке нужный макрос, сборщик проходится по ссылкам, составляет список всех файлов и экспортирует их в виде архива.
Понятно. Задача весьма специфическая.
Чтобы было универсально, можно разрешить произвольные поля. Посмотрим, какие приживутся.
IgorZ wrote:А вообще, как показывает практика, спустя некоторое время после введения новых возможностей число способов их использования может стать куда больше изначально предполагаемого.
Согласен. Но уже сейчас есть какие-то идеи - высказывайтесь.
Я уже занимаюсь реализацией.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Скрипты (Макросы): Система их названий и описаний

Post by IgorZ »

John Doe wrote:
IgorZ wrote:Однозначный и универсальный способ указать все компоненты, входящие в составной скрипт. Этого мало?
Раз вы подразумеваете множество применений, значит стоит попытаться их перечислить, ведь от этого зависит решение задачи.
В данном случае я рассуждаю методом дедукции: однозначная привязка компонента к пакету открывает возможность манипулировать пакетом как единым целым. Применений для этого может быть почти бесконечно много. Лично для меня актуальнее всего возможность фильтрации по этому признаку для удобства просмотра и редактирования.
Хотя, можно пойти старым, проверенным путём и складывать все компоненты скрипта в отдельный подкаталог. Тоже вариант, кстати. И почему-то подумал я о нём только сейчас. Надо обмозговать. Впрочем, один недостаток (общий, кстати, для всех вариантов решений) виден сходу - никто не гарантирует обязательность того, что это будет сделано.
John Doe wrote:
IgorZ wrote:Хочу напомнить, что uid тоже поначалу не казался нужной и очевидной вещью.
Но пока что пользуются им ровно 2 человека )
Лиха беда начало. Думаю, остальных пока сдерживает отсутствие поддержки "искаропки".
John Doe wrote:
IgorZ wrote:О регистрации в данном случае речь не шла. Я говорил о том, что в одном файле могут оказаться несколько независимых друг от друга макросов, и привёл пример.
Могут оказаться. Но даже если макросы технически независимы, их объединяют в одном файле по какому-то общему признаку, поэтому функция "показать все макросы из файла" вполне осмыслена.
Я не отрицаю её полезность, я указал на её ограниченность.
John Doe wrote:
IgorZ wrote:Возможно, неплохо было бы ввести поле
  1. uses="список используемых модулей";
для указания внешних ссылок.
Это чтобы совсем не читать и не думать?
Вот если бы была возможность не отходя от кассы скачать недостающие модули, тогда польза была бы действительно ощутима.
Кто знает? Скрипты уже достигли уровня сложности плагинов, так что появление со временем аналога UpdateEx или Renewal меня не удивит. Возможно даже, сам когда-либо дойду до его написания. И наличие к тому времени (и активное использование) подобного поля было бы огромным подспорьем.
John Doe wrote:
IgorZ wrote:[*]Автоматизация сборки файлов, содержащих скрипт и все компоненты, от которых он зависит. К примеру, выбираешь в списке нужный макрос, сборщик проходится по ссылкам, составляет список всех файлов и экспортирует их в виде архива.
Понятно. Задача весьма специфическая.
Чтобы было универсально, можно разрешить произвольные поля. Посмотрим, какие приживутся.
Возможно, это наилучший вариант на первое время. А там, глядишь, самые востребованные перенесутся в разряд постоянных.
John Doe wrote:
IgorZ wrote:А вообще, как показывает практика, спустя некоторое время после введения новых возможностей число способов их использования может стать куда больше изначально предполагаемого.
Согласен. Но уже сейчас есть какие-то идеи - высказывайтесь.
Я уже занимаюсь реализацией.
Ждём-с. И кое-что планирую. Хотя мгновенной реакции на обновление не обещаю - у меня запарка продлится до середины сентября минимум.
Post Reply

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