При наборе текста программного кода многие из нас привыкли к автодополнению (контекстной подсказке), т.е. подсказывающему списку вариантов продолжения слова. Иногда он открывается автоматически (например после ".") и иногда мы открываем его явно сочетанием CTRL+Space.
В ТурбкоКонфе есть ряд улучшений этого механизма, включающих открытие собственного списка (Т9) через ALT+ или Ctrl+Space, когда штатный список не открывается или уже открыт (клавиша CTRL должна быть отжата). Однако в нем до сих пор отсутствовал глубокий анализ контекста. Адаптер ИР добавляет собственный мощный анализатор кода и потому список подсказки ТурбоКонфа теперь будет содержать значительно более релевантные элементы в огромном числе ситуаций.
Список подсказки при открытии всегда фильтруется по фрагменту левее каретки и применяет умную сортировку с учетом окружения и статистики выбора слов. Нажатием Alt+ или Ctrl+Space фильтрация и умная сортировка отключаются.
Видео и к нему демо конфигурация
Анализатор кода может учитывать фактические значения некоторых параметров функции при вычислении результата каждого ее вызова. Это более затратный режим анализа, т.к. каждый вызов такого метода рассчитывается заново. Поэтому он применяется при выполнении следующих условий:
Пример
Функция Главный()
я = ЗначенияВМассивЛкс(Новый Структура)[0].Количество();
я = ОбщийМодуль("ирОбщий").скопироватьк();
КонецФункции
Функция ОбщийМодуль(Имя) Экспорт
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции
// Параметры:
// п1 - Произвольный -
Функция ЗначенияВМассивЛкс(п1) Экспорт
М = Новый Массив();
М.Добавить(п1);
Возврат М;
КонецФункции
Сброс всех кэшей в памяти (памятного кэша) приложения ИР можно вызывать вручную командой "Обновить кэш объектов конфигурации" в списке подсказки
Подсказка работает в следующих типах окружения встроенного языка:
Если применять приложение ИР во всех базах, где редактируется код, то удобнее отключить автовызов штатной подсказки (автоподсказку) после нажатия ".".
В Турбоконф 6.1+ адаптер переключает эти настройки полуавтоматически через всплывающее уведомление.
В окне "Выражение" в TurboConf 6.0+ используется контекст последнего активного модуля.
А в нижних версиях TurboConf используется контекст последнего модуля, в котором вызывалась команда адаптера. Для этих версий есть специальная команда для открытия этого окна с передачей контекста Вычислить выражение с контекстом
В окнах "Условие останова" (8.3.23-) и "Параметры точки останова" (8.3.24+) поведение аналогичное
В конфигураторе встроенный анализатор кода не предоставляет возможности явно назначить документирующий тип выражению.
Поэтому приходилось применять различные обходные пути типа таких.
Анализатор кода ИР допускает явное назначение типов с помощью комментариев:
Используется расширенный стандарт типизирующих комментариев EDT. Подробнее тут
Также поддерживаются произвольные инструкции для анализатора кода, не поддерживаемые со стороны EDT. Строка такой инструкции начинается с "//!" или "//:".
Примеры:
МояПеременная3 = 0; // ОбработкаОбъект.ЗагрузкаЦен
Для каждого МояПеременная4 из Массив Цикл // Структура
Структура.Вставить("ф"); // см. ирОбщий.ВсеОбработчикиСобытийФормаЛкс[0]
Таблица.Колонки.Добавить("ф"); // см. ирОбщий.ВсеОбработчикиСобытийФормаЛкс
//! МояПеременная1 = Обработки.ЗагрузкаЦен.Создать();
//! МояПеременная2 = 0; // ОбработкаОбъект.ЗагрузкаЦен
Подсказка работает в редакторе модуля внутри строкового литерала с полным текстом запроса и учитывает просто вычисляемый контекст встроенного языка, включающий таблицы-параметры и сессию менеджера временных таблиц
Подсказка работает в любом окне редактора полного текста запроса. Например в редакторе запроса схемы компоновки данных
ИР Кнопка "Прервать" в окне "Выражение"
ИР Кнопка "Перейти" в окне "Событие"
ИР Кнопка "Изменить" в окне "Пользователь"
ИР Кнопка "Список" в окне "Выбор картинки"
ИР Кнопка "Сравнить" в окне "Различие между"
ИР Кнопка "Сравнить" в окне "Сравнение модулей"
ИР Кнопка "Установить тип" в окне "Редактирование параметров выбора"
ИР Кнопка "Только помеченные" в окне "Редактирование типа данных"