ИР Автодополнение / контекстная подсказка

tormozit 18 2

При наборе текста программного кода многие из нас привыкли к автодополнению (контекстной подсказке), т.е. подсказывающему списку вариантов продолжения слова. Иногда он открывается автоматически (например после "."), но чаще всего мы открываем его явно сочетанием CTRL+Space.

В ТурбкоКонфе есть ряд улучшений этого механизма, включающих открытие собственного списка (Т9) через ALT+Space или через Ctrl+Space, когда штатный список не открывается или уже открыт. Однако в нем до сих пор отсутствовал глубокий анализ контекста. Адаптер ИР добавляет собственный мощный анализатор кода и потому собственный список подсказки ТурбоКонфа теперь будет содержать значительно более релевантные элементы в огромном числе ситуаций. Список подсказки при открытии всегда фильтруется по фрагменту левее каретки, но фильтр можно отключить повторным нажатием Alt+ или Ctrl+Space.

Анализ кода ИР включает

  1. Вычисление типов, например:
  • возвращаемых значений методов модулей
  • параметров через локальные вызовы метода
  • параметров через подписки на события объектов и форм
  • нетипизированных свойств и переменных по модулю объекта
  • из закомментированного кода
  • из типизирующих комментариев (подробнее далее)
  1. Вычисление динамических свойств объектов, например:
  • колонок и параметров запроса, построителя запроса, построителя отчетов
  • колонок таблицы значений, дерева значений, выборки результата запроса
  • свойств структуры
  • свойств данных управляемой и обычной формы
  1. Другие виды анализа, которые можно найти в задачах проекта ИР

Анализ кода ИР опирается на

  1. Метаданные в своем приложении. Обновляются при перезапуске приложения ИР.
  2. Собственный кэш модулей. Кэш модулей целиком предлагается заполнить при первом подключении базы, но можно делать это и в любой момент. Кэш модуля обновляется при вызове любой команды ИР в его окне.
  3. Собственный кэш управляемых форм. Кэш управляемой формы обновляется в окне ее модуля при вызове любой команды ИР с обращением к отсутствующему в кэше конкретному элементу, реквизиту, команде или по прошествии 5 минут с последнего обновления этой формы.

Подсказка работает в следующих типах окружения встроенного языка:

  1. Инструкция встроенного языка
  2. Комментарий - например ввод имени типа, указателя на объект метаданных или метод модуля
  3. Строковый литерал - зависит от контекста, которым обычно является формальный параметр метода, либо аналогично комментарию

Рекомендуется использовать такие настройки ТурбоКонфа

В окне "Выражение" используется контекст последнего модуля, в котором вызывалась команда адаптера. Есть специальная команда для его открытия с передачей контекста Вычислить выражение с контекстом

В окне "Условие останова" так же используется контекст последнего модуля, в котором вызывалась команда адаптера.

Типизирующие комментарии

В конфигураторе встроенный анализатор кода не предоставляет возможности явно назначить документирующий тип выражению.
Поэтому приходилось применять различные обходные пути типа таких.
Анализатор кода ИР допускает явное назначение типов с помощью комментариев:

  • переменным
  • параметрам методов
  • возвращаемым значениям функций
  • левым операндам в инструкциях присвоения
  • итераторам при обходе коллекций

Используется расширенный стандарт типизирующих комментариев EDT. Подробнее тут

Язык запросов

Подсказка работает в редакторе модуля внутри строкового литерала с полным текстом запроса

Подсказка работает в любом окне редактора полного текста запроса. Например в редакторе запроса схемы компоновки данных

0

Еще в "TurboConf ИР"

ИР Проверить модуль

ИР Найти последнее изменение метода

ИР Запустить толстый клиент

ИР Найти ссылки на метод

ИР Список общих методов

ИР Вычислить выражение с контекстом

ИР Отладить объект

ИР Выделить метод

ИР Получить ссылку строки модуля

ИР Перейти к определению

Модератору