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

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

IgorZ
Дело вот в чём: скрипт может определять 20 макросов. А может не определять ни одного.
Т.е. регистрировать скрипт целесообразнее независимо.
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

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

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

Post by John Doe »

IgorZ wrote:Но регистрируются в Far-е макросы, а не скрипты.
Регистрируются клавиатурные сочетания, вызывающие скрипт.
Регистрируются пункты меню плагинов, вызывающие скрипт.
Регистрируются обработчики событий.
Что из этого сейчас называть макросами?
IgorZ wrote:Идея моего предложения заключалась в том, чтобы ещё больше приблизить макросы к плагинам.
Как и моего.
Объединить всё многообразие связанных функций общим понятием скрипт.
IgorZ
Posts: 793
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: 6840
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: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 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: 10866
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: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 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: 10866
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: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

IgorZ wrote:Легко могу представить ситуацию, когда сложный скрипт состоит из нескольких файлов.
Представить можно, но функция отображения "соседних" макросов/событий, находящихся в одном файле, имеет смысл в любом случае:
— Не каждый макрос обязан принадлежать какому-то скрипту.
— И не каждый скрипт обязан регистрироваться (в первую очередь давайте подумаем что даёт нам эта регистрация).
IgorZ wrote: Ещё легче представить ситуацию, когда в одном файле собрана куча независимых мелких скриптов.
Опять же, надо отталкиваться от того, зачем мы собрали скрипты в один файл, и для чего нам их регистрировать отдельно (а не как единый скрипт).
IgorZ wrote:Кстати, возможна ли ситуация, когда один и тот же макрос/эвент относится к нескольким независимым скриптам? Поскольку тогда нужна возможность задания для одного макроса/эвента нескольких suid.
Полагаю, такой ситуации возникнуть не может никогда.
IgorZ
Posts: 793
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: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

IgorZ wrote:Но, надеюсь, выгода и удобство победят, и наличие suid станет нормой.
В чём заключаются выгода и удобство?
IgorZ wrote:Например, куча мелких макросов, по сложности на уровне клавиатурных или чуть выше, не имеющих практически ничего общего и собранных вместе только для того, чтобы не плодить десятки файлов, каждый из пары строк.
Допустим. Как и для чего вы собираетесь их регистрировать?
IgorZ wrote:Возможно, неплохо было бы ввести поле
  1. uses="список используемых модулей";
для указания внешних ссылок.
Что с этим полем предполагается потом делать?
IgorZ
Posts: 793
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: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 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:А вообще, как показывает практика, спустя некоторое время после введения новых возможностей число способов их использования может стать куда больше изначально предполагаемого.
Согласен. Но уже сейчас есть какие-то идеи - высказывайтесь.
Я уже занимаюсь реализацией.
Post Reply

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