Closed tormozit closed 2 years ago
Пока прикрутил отображение имени метода и сигнатуры через свойство documentation. Неудобство в том, что если описание параметра достаточно большое, то переданные таким образом имя метода и сигнатуры не отображаются, т.к. располагаются за пределами видимой области в самом низу текста подсказки.
Заголовок подсказки - это обычная строка. Мне неизвестен способ сделать его хотя бы многострочным, чтобы в первой строке выводить имя метода. Могу предложить только такой вариант:
Да. Это уже лучше. Но не всегда. Иногда имя метода будет очень длинным, а нужно оно по большому счету только чтобы в сложных выражениях понимать, внутри вызова какого из нескольких методов находится каретка. Поэтому предлагаю
- Имя метода показывать с обрезкой до 20 символов, включая "..." либо дать возможность отображаемое имя передавать явно через API.
Ты и так передаешь label
в setCustomSignatures
. Можешь вместо вот этого
{
"label": "(Включить [Булево])",
}
передать это
{
"label": "ОписаниеТипов(Включить [Булево])",
}
- Уменьшить размер шрифта этой подсказки по умолчанию и сделать этот размер настраиваемым.
Отдельной опции для размера шрифта в окне подсказки по вызову метода нет. Тут только с decorations.css играть
По п. 2 согласен - свойства label достаточно. Про изменение размера штрифта не смог пока найти имя элемента стиля в 1С. Как искать в обычной форме, где не открывается консоль разработчика? Пришлось смотреть в браузере. Стиль - editor-widget parameter-hints-widget. Еще шрифт сейчас используется моноширинный. А для подсказки по вызову метода это не несет большой пользы и потому просто расточительно. Очень хотелось бы многоширинный шрифт, но не понял как его назначить через стиль.
Все мои попытки влиять на шрифт (размер, семью и прочее) через стили окончились неудачей. Пробовал например так
//РедакторHTML.setFontSize(13);
//РедакторHTML.setFontFamily("Lucida Console");
.editor-widget parameter-hints-widget {
font-size: 10px;
}
При этом шрифт в этом окне упорно продолжает использовать стандартные параметры.
Как изменить шрифт через стили описал тут #194
Появилась старая проблема неверного выделения текущего параметра в заголовке подсказки, если он содержит имя параметра. Все таки только явная передача положения (диапазонов) параметров в заголовке даст надежную работу этой функции.
ЗначениеВСтрокуВнутр()
Проверю
Воспроизведение проблемы
setCustomSignatures(`{
"ЗначениеВСтрокуВнутр": [
{
"label": "ЗначениеВСтрокуВнутр(Значение) [Строка]",
"documentation": "Получает системное строковое представление переданного объекта",
"parameters": [
{
"label": "Значение",
"documentation": "Значение, представление которого необходимо получить"
}
]
}
]
}`)
Проблема наблюдается и в самой последней версии monaco editor.
Причём проблема только при использовании кириллицы. Английские названия функции и параметров такого глюка не вызывают. Надо смотреть ядро.
Проблема устранена
Если внутри выражения вызова метода расположен вызов метода, то иногда становится сложно понимать, к какому методу относится подсказка по вызову метода. Поэтому прошу показывать имя метода в этой подсказке и расположить первым
Также у метода может быть несколько сигнатур и при их переключении хочется видеть название текущей сигнатуры. Например у конструктора объекта "Структура" они называются