diff --git a/docs/set_custom_signatures.md b/docs/set_custom_signatures.md index c558d41..0063507 100644 --- a/docs/set_custom_signatures.md +++ b/docs/set_custom_signatures.md @@ -16,7 +16,7 @@ setCustomSignatures(`{ "Состояние": [ { - "label": "(ТекстСообщения, Прогресс?)", + "label": "(ТекстСообщения, Прогресс?: Число)", "documentation": "Вывод текстового состояния с прогрессом", "parameters": [ { @@ -24,13 +24,13 @@ setCustomSignatures(`{ "documentation": "Строка, предназначенная для вывода в панель состояния. Если параметр не указан, возобновляется вывод системного текста в панель состояния." }, { - "label": "Прогресс", + "label": "Прогресс?: Число", "documentation": "Число, Значение индикатора прогресса (от 1 до 100). Если не задан, индикатор прогресса не отображается." } ] }, { - "label": "(Прогресс, Картинка?, Пояснение?)", + "label": "(Прогресс, Картинка?: КартинкаДляОтображения, Пояснение?)", "documentation": "Вывод индикатора состояния с картинкой", "parameters": [ { @@ -38,7 +38,7 @@ setCustomSignatures(`{ "documentation": "Число, Значение индикатора прогресса (от 1 до 100). Если не задан, индикатор прогресса не отображается." }, { - "label": "Картинка", + "label": "Картинка?: КартинкаДляОтображения", "documentation": "Картинка для отображения в окне состояния" }, { diff --git a/src/bsl_helper.js b/src/bsl_helper.js index be8085c..fd0da14 100644 --- a/src/bsl_helper.js +++ b/src/bsl_helper.js @@ -3340,16 +3340,23 @@ class bslHelper { if (svalue.hasOwnProperty('СтрокаПараметров') && svalue.hasOwnProperty('Параметры')) { + let sig_label = svalue.СтрокаПараметров; + let sig_params = sig_label.split(','); + let signature = { - label: svalue.СтрокаПараметров, + label: sig_label, parameters: [] } + let param_index = 0; + for (const [pkey, pvalue] of Object.entries(svalue.Параметры)) { + let param_label = (param_index < sig_params.length) ? sig_params[param_index].trim() : pkey; signature.parameters.push({ - label: pkey, + label: param_label, documentation: pvalue }); + param_index++; } signatures.push(signature); @@ -3382,19 +3389,26 @@ class bslHelper { if (cvalue.hasOwnProperty('signature')) { + let sig_label = cvalue.signature; + let sig_params = sig_label.split(','); + let signature = { - label: cvalue.signature, + label: sig_label, documentation: cvalue.hasOwnProperty('description') ? cvalue.description : '', parameters: [] } if (cvalue.hasOwnProperty('params')) { + let param_index = 0; + for (const [pkey, pvalue] of Object.entries(cvalue.params)) { + let param_label = (param_index < sig_params.length) ? sig_params[param_index].trim() : pkey; signature.parameters.push({ - label: pkey, + label: param_label, documentation: pvalue }); + param_index++; } }