From 86b6b7772e2b5a9d589baec233d523dbfd7df460 Mon Sep 17 00:00:00 2001 From: khorevaa Date: Fri, 9 Feb 2018 14:56:26 +0300 Subject: [PATCH] =?UTF-8?q?#7=20=D0=A1=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 18 ++++- docs/readme.md | 81 +++++++++++++++---- ...20\274\320\260\320\275\320\264\321\213.os" | 46 ++++++----- 3 files changed, 105 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 6beca4b..bba861d 100644 --- a/README.md +++ b/README.md @@ -160,14 +160,13 @@ $ opm install -f <ПутьКФайлу> * Строка * Число * Дата -* Длительность (в работе) Также опция может принимать массивы данных типов, например: * МассивЧисел * МассивСтрок * МассивДат -* МассивДлительностей (в работе) +* Перечисление Для простых типов поддерживается определение типа по значение по умолчанию. Пример, @@ -191,9 +190,21 @@ $ opm install -f <ПутьКФайлу> .СкрытьВСправке(); // Любой тип ``` - `ВОкружении` Возможна передача нескольких переменных окружения разделенных через **пробел** +Пример `перечисления` опции: + +```bsl +ЦветКонсоли = Команда.Опция("c color", "green" ,"Описание опции") + .ТПеречисление() // тип опции перечисление + .Перечисление("green", Новый ЗеленыйЦвет(), "Консоль будет зеленого цвета") + .Перечисление("red", Цвета.Красный, "Консоль будет красного цвета") + .Перечисление("Случайный", СлучайныйЦвет(), "Консоль будет случайного цвета") + ; +``` + +Перечисление ограничивает пользователя в выборе значения опции, при этом разработчик для каждой опции может задавать свой тип значения + Подробное описание возможностей параметров команд и приложения [](./docs/ПараметрКоманды.md) ## Пример синтаксиса опций @@ -248,6 +259,7 @@ $ opm install -f <ПутьКФайлу> * МассивЧисел * МассивСтрок * МассивДат +* Перечисление (см. пример опций) Пример `Строки` аргумента: diff --git a/docs/readme.md b/docs/readme.md index f141af4..0235190 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -76,7 +76,10 @@ - [ТМассивДат](#тмассивдат) - [ТМассивЧисел](#тмассивчисел) - [ТМассивСтрок](#тмассивстрок) + - [ТПеречисление](#тперечисление) + - [Перечисление](#перечисление) - [Описание](#описание-1) + - [ПодробноеОписание](#подробноеописание-2) - [Псевдоним](#псевдоним) - [Обязательный](#обязательный) - [ВФайле](#вфайле) @@ -623,7 +626,7 @@ // СтрокаПеременнаяОкружения - строка - имя переменной окружения, откуда получать значение // допустимо использование нескольких переменных окружения через пробел // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### СкрытьВСправке @@ -633,7 +636,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### ПоУмолчанию @@ -646,7 +649,7 @@ // ВходящееЗначение - произвольный - значение параметра по умолчанию // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### Флаговый @@ -656,7 +659,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию ``` @@ -668,7 +671,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию ``` @@ -680,7 +683,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию ``` @@ -695,7 +698,7 @@ // ФорматДаты - Строка - формат даты, при приведении к дате из строки параметра по умолчанию (yyyy-MM-dd_HH:mm:ss) // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию ``` @@ -707,7 +710,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию ``` @@ -719,7 +722,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию ``` @@ -735,7 +738,7 @@ // ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### ТМассивЧисел @@ -748,7 +751,7 @@ // ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### ТМассивСтрок @@ -761,7 +764,40 @@ // ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект +``` + +##### ТПеречисление + +```bsl +// Функция устанавливает тип параметра "Перечисление" +// возвращает текущий параметр команды +// +// Параметры: +// ДоступныеПеречисления - Соответсвие +// Ключ - Строка +// Значение - Структура ("Наименование, Значение, ДополнительнаяСправка") +// Возвращаемое значение: +// ПараметрКоманды - значение из переменной ЭтотОбъект +// Вызов необязателен, автоматически определяется при создании параметра, +// если передано значение по умолчанию + +``` + +##### Перечисление + +```bsl +// Функция устанавливает произвольный тип параметра +// возвращает текущий параметр команды +// +// Параметры: +// НаименованиеПеречисления - строка - пользовательное значение перечисления +// ЗначениеПеречисления - произвольный - системное значение перечисления +// ДополнительнаяСправкаПеречисления - строка - дополнительная строка для справки +// +// Возвращаемое значение: +// ПараметрКоманды - значение из переменной ЭтотОбъект +// ``` ##### Описание @@ -774,9 +810,22 @@ // НовыеОписание - строка - строка с новым описанием, отличным от переданного в момент создания // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` +##### ПодробноеОписание + +```bsl +// Функция устанавливает подробное описание параметра для справки +// возвращает текущий параметр команды +// +// Параметры: +// ВходящееПодробноеОписание - строка - строка с новым описанием, отличным от переданного в момент создания +// +// Возвращаемое значение: +// ПараметрКоманды - значение из переменной ЭтотОбъект +// +``` ##### Псевдоним ```bsl @@ -787,7 +836,7 @@ // СтрокаПсевдонима - строка - строка с новым псевдонимом, отличным от переданного в момент создания // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### Обязательный @@ -800,7 +849,7 @@ // Признак - булево - признак обязательности указания данного параметра (по умолчанию Истина) // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` ##### ВФайле @@ -829,5 +878,5 @@ // ВходящийТипЭлементаПараметра - Тип - тип элементов значения параметра, если тип Массив // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект ``` \ No newline at end of file diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/cmd/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/cmd/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" index a119d8a..6c06a8a 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/cmd/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/cmd/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\232\320\276\320\274\320\260\320\275\320\264\321\213.os" @@ -210,7 +210,7 @@ // СтрокаПеременнаяОкружения - строка - имя переменной окружения, откуда получать значение // допустимо использование нескольких переменных окружения через пробел // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ВОкружении(Знач СтрокаПеременнаяОкружения) Экспорт ПеременнаяОкружения = СтрокаПеременнаяОкружения; @@ -223,7 +223,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция СкрытьВСправке() Экспорт СкрытьЗначение = Истина; @@ -239,7 +239,7 @@ // ВходящееЗначение - произвольный - значение параметра по умолчанию // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ПоУмолчанию(ВходящееЗначение) Экспорт Значение = ВходящееЗначение; @@ -252,7 +252,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция Флаговый() Экспорт @@ -265,7 +265,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция Флаг() Экспорт @@ -278,7 +278,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция ТБулево() Экспорт @@ -298,7 +298,7 @@ // ФорматДаты - Строка - формат даты, при приведении к дате из строки параметра по умолчанию (yyyy-MM-dd_HH:mm:ss) // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция ТДата(Знач ФорматДаты = "yyyy-MM-dd_HH:mm:ss" ) Экспорт @@ -315,7 +315,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция ТЧисло() Экспорт @@ -331,7 +331,7 @@ // возвращает текущий параметр команды // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция ТСтрока() Экспорт @@ -351,7 +351,7 @@ // ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ТМассивДат(Знач ФорматДаты = "yyyy-MM-dd_HH:mm:ss", Знач ВходящийРазделительМассива = Неопределено) Экспорт ТипОпции = Тип("Массив"); @@ -372,7 +372,7 @@ // ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ТМассивЧисел(Знач ВходящийРазделительМассива = Неопределено) Экспорт ТипОпции = Тип("Массив"); @@ -393,7 +393,7 @@ // ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ТМассивСтрок(Знач ВходящийРазделительМассива = Неопределено) Экспорт ТипОпции = Тип("Массив"); @@ -414,7 +414,7 @@ // НовыеОписание - строка - строка с новым описанием, отличным от переданного в момент создания // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция Описание(Знач НовыеОписание) Экспорт Описание = Описание; @@ -430,7 +430,7 @@ // СтрокаПсевдонима - строка - строка с новым псевдонимом, отличным от переданного в момент создания // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция Псевдоним(СтрокаПсевдонима) Экспорт Если Синонимы.Найти(СтрокаПсевдонима) = Неопределено Тогда @@ -449,7 +449,7 @@ // Признак - булево - признак обязательности указания данного параметра (по умолчанию Истина) // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция Обязательный(Знач Признак = Истина) Экспорт ТребоватьУстановкиПользователем = Признак; @@ -466,7 +466,7 @@ // МестоВФайле - строка - путь в файле, в формате "general.force" // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ВФайле(Знач ПутьКФайлу, Знач МестоВФайле) Экспорт Возврат ЭтотОбъект; @@ -482,7 +482,7 @@ // ВходящийТипЭлементаПараметра - Тип - тип элементов значения параметра, если тип Массив // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект Функция ПроизвольныйТип(Знач ВходящийКлассЗначенияПараметра, Знач ВходящийТипПараметра, ВходящийТипЭлементаПараметра = Неопределено) Экспорт ТипОпции = ВходящийТипПараметра; @@ -501,7 +501,7 @@ // Ключ - Строка // Значение - Структура ("Наименование, Значение, ДополнительнаяСправка") // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект // Вызов необязателен, автоматически определяется при создании параметра, // если передано значение по умолчанию Функция ТПеречисление(Знач ДоступныеПеречисления = Неопределено) Экспорт @@ -526,6 +526,9 @@ // ЗначениеПеречисления - произвольный - системное значение перечисления // ДополнительнаяСправкаПеречисления - строка - дополнительная строка для справки // +// Возвращаемое значение: +// ПараметрКоманды - значение из переменной ЭтотОбъект +// Функция Перечисление(Знач НаименованиеПеречисления, Знач ЗначениеПеречисления = Неопределено, Знач ДополнительнаяСправкаПеречисления = "") Экспорт Если Не ТипЗнч(ТипЗначенияПараметра) = Тип("ТипПеречисление") Тогда @@ -542,14 +545,15 @@ КонецФункции -// Функция устанавливает признак обязательности указания данного параметра +// Функция устанавливает подробное описание параметра для справки // возвращает текущий параметр команды // // Параметры: -// Признак - булево - признак обязательности указания данного параметра (по умолчанию Истина) +// ВходящееПодробноеОписание - строка - строка с новым описанием, отличным от переданного в момент создания // // Возвращаемое значение: -// ЭтотОбъект - класс ПараметрКоманды +// ПараметрКоманды - значение из переменной ЭтотОбъект +// Функция ПодробноеОписание(Знач ВходящееПодробноеОписание) Экспорт ПодробноеОписаниеПараметра = ВходящееПодробноеОписание;