Страница 38 из 243

Добавлено: Пт ноя 23, 2012 22:16
Loopback
Flasher писал(а):Только в справке это располагается в разделе "Планы",
Планы это планы, а это в новом разделе "файл конфигурации". Впрочем, вполне можно было и не заметить.
Flasher писал(а):Получается плагин будет начинать поиск с решётки? Может, стоит взять другой символ, чтобы не проверять строки комментариев?
Да никакой разницы, проверять решетку или что-то другое. По-сути это не команда, а директива препроцессора, т.е. управляющая конструкция, которую нужно найти до выполнения скрипта. Раньше этого не было, а теперь скрипт грузится сразу, при этом убираются комментарии и он делится на секции.

Добавлено: Сб ноя 24, 2012 19:45
Flasher
Loopback писал(а):Впрочем, вполне можно было и не заметить.
Ага, не заметил, вроде планы обычно в конце пишутся, даже не обратил внимания на последующие заголовки.

Замечания по ReadMe
Опечатки:
Стандартный таймаут ожаидания (дважды)
имя библиотеки с раСширением "dll" (отсутствие С)
Кстати, не очень понятно, что такое "таймаут ожидания"? Это не тавтология?
В нескольких местах фигурирует "тотал" с маленькой буквы.

Историю и Планы стоит сместить вниз для удобства перехода к основному описанию.
При этом кавычки другого типа могут быть использованы в тексте параметра. Если нужно использовать в тексте кавычки обоих типов, то кавычки того типа, с которых начинается параметр, в тексте должны быть задвоены. Пример: "этот ""текст"" в кавычках"
Не очень понятно, что понимается под использованием кавычек в тексте параметра. Если кавычки используются для того же, что и тут, т.е. учёта пробелов, то это одно, если же в параметрах прописывается некое название с наличием этих кавычек, то - другое. Надо об этом как-то конкретней написать.
И приведённый пример не проясняет ситуацию использования обоих типов кавычек.
Loopback писал(а): которую нужно найти до выполнения скрипта
Вот я и пишу про поиск. Фильтрация-то начинается с первого символа - решётки.

Добавлено: Сб ноя 24, 2012 19:59
MVV
Думаю, комментарии лучше не трогать. Для директив можно завести функцию типа Pragma, которой в параметре указывать саму директиву. И парсить легко, и подсветку синтаксиса можно сделать для выделения таких строк, скажем, красным цветом, и не путать их с комментариями.

А для точки, после которой идут команды завершения, надо завести внутреннюю функцию с именем SuspendUntilTerminate, WaitForTermination, WaitForExit или типа того (типа, на ней выполнение скрипта "замораживается" до завершения работы тотала), или же Pragma-директиву: Pragma WaitForTermination, Pragma FinalizeSection и т.п. Парсинг имен функций и параметров по идее уже есть в плагине, не придётся дописывать ничего нового.

Добавлено: Сб ноя 24, 2012 20:15
Flasher
MVV писал(а):WaitForTermination, WaitForExit или типа того
Тоже хотел написать, важная вещь.

Добавлено: Сб ноя 24, 2012 21:45
MVV
Не, я имел в виду не опцию ожидания завершения запущенных процессов, а ожидание выгрузки плагина тоталом, т.е. закрытия тотала. Ожидание завершения процессов - это уже параметры запуска этих самых процессов.

Добавлено: Сб ноя 24, 2012 22:59
Loopback
Flasher писал(а):Историю и Планы стоит сместить вниз для удобства перехода к основному описанию.
Только вчера об этом подумал, а то история разрослась уже.
Flasher писал(а):Не очень понятно, что понимается под использованием кавычек в тексте параметра.
Я думаю к релизу переведу справку в html, как и в других плагинах, там можно будет сделать выделение цветом для большей понятности. Ну и перефразировать заодно.
Flasher писал(а):Вот я и пишу про поиск. Фильтрация-то начинается с первого символа - решётки.
Я в том смысле, что никакой разницы в накладных расходах на поиск нет.
MVV писал(а):Думаю, комментарии лучше не трогать. Для директив можно завести функцию типа Pragma, которой в параметре указывать саму директиву. И парсить легко, и подсветку синтаксиса можно сделать для выделения таких строк, скажем, красным цветом, и не путать их с комментариями.
Ну понятно, кому что ближе :) В С++ используется #pragma, в паскале - директивы в фигурных скобках, типа {$E wdx}, что по-сути комментарии.
В принципе я сначала и хотел сделать такую псевдофункцию, но как-то не придумалось достойное имя. Если появится хорошая идея - можно и переделать. Можно и Pragma, но оно по-моему не дает очевидного представления о назначении функции. Ну и вообще, все же хотелось бы, чтобы директивы отличались от функций.

Вообще, если бы я начинал делать плагин сейчас, то использовал бы другой символ комментария. Может для директив какой-нибудь незадействованный символ применить, $ например?

Добавлено: Сб ноя 24, 2012 23:28
MVV
Lingvo писал(а):pragma
указание транслятору, псевдокомментарий
По-моему, очень даже в точку. :)

Символов можно на выбор взять целую кучу. Можно @, $, ~. Но слово pragma по-моему хорошо бы подошло, и приметное, и осмысленное. В паскале эти комментарии хрен отличишь от обычных...

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

Добавлено: Сб ноя 24, 2012 23:31
Flasher
Loopback писал(а):$ например?
Пойдёт.

А можно прояснить момент с последовательным запуском процессов по ShellExec? Необходим параметр WaitOnReturn для возобновления вызова последующих команд только после завершения вызванного процесса. Или это по умолчанию предусмотрено? Иначе без этого ряд вещей работает некорректно.

Добавлено: Вс ноя 25, 2012 10:38
Loopback
MVV писал(а):По-моему, очень даже в точку.
Ну, наверно технический словарь. В обычном оно не переводится. Ладно, подумаю.
MVV писал(а):А делать лучше сразу так, чтобы потом не пришлось переделывать.
На раннем этапе обычно никогда не удается спланировать всё идеально. А сейчас уже приходится подгонять под имеющиеся реалии. Если посмотреть, то AutorunBlockUnload как раз бы хорошо смотрелся директивой.
Flasher писал(а):А можно прояснить момент с последовательным запуском процессов по ShellExec?
Да, теперь вспомнил про что речь. Уж очень далеко в ветке это обсуждение осталось, не домотал. Этого пока нет, посмотрю.

Добавлено: Вс ноя 25, 2012 11:11
MVV
Ну, наверно технический словарь. В обычном оно не переводится. Ладно, подумаю.
Хз, что тут за словарь, а у меня оно есть в словарях Computers, LingvoComputer и Polytechnical. В общих вообще очень большой кучи милых нашему уху слов нет. А посмотри, как в общем словаре переводится file, долго будешь смеяться. :D
На раннем этапе обычно никогда не удается спланировать всё идеально. А сейчас уже приходится подгонять под имеющиеся реалии. Если посмотреть, то AutorunBlockUnload как раз бы хорошо смотрелся директивой.
Согласен. Думаю, можно даже придерживаться такой схемы: глобальные директивы называются Autorun..., а локальные, если будут - с другой приставки.

Добавлено: Пн ноя 26, 2012 11:13
Loopback
Flasher
Оказывается, ожидание уже давно сделал, но совершенно про это забыл. В функции ShellExec используй ключ /WAIT для ожидания завершения. Ключ может быть в виде /WAIT:хххх, где параметр - таймаут ожидания в миллисекундах.

Добавлено: Пн ноя 26, 2012 13:00
Flasher
Loopback
Мм.. Т.е. сам плагин отследить этот момент не может? Только в виде такой задержки?

Добавлено: Пн ноя 26, 2012 13:56
Loopback
Flasher писал(а):Мм.. Т.е. сам плагин отследить этот момент не может? Только в виде такой задержки?
Задержка опциональна. По-умолчанию ожидание до завершения процесса.

Добавлено: Пн ноя 26, 2012 13:57
Flasher
Loopback
Понял. Ценная вещь. Благодарю! Давно ждал. :)

Добавлено: Пн ноя 26, 2012 16:23
Loopback
Десятая бета.

Скачать

В основном в ней сведены последние решения, идеи и исправления.

Код: Выделить всё

+ Дополнительные примеры использования кавычек в справке
+ Документирован параметр /WAIT в функции ShellExec
* AutorunBlockUnload теперь используется в Pragma (функция оставлена для совместимости)
* FinalizeSection переименовано в AutorunFinalizeSection и используется в Pragma
+ Ключевое слово Pragma для работы с директивами
* FileExist работает с каталогами с завершающим "\"