Поиск кода

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

Вкладка Поиск кода позволяет просматривать все скрипты базы данных. Эти параметры можно сочетать:

КнопкаПараметрДействие
.*Регулярное выражениеТолкует запрос как RegExp, давая всю мощь шаблонов (кванторы, классы, привязки…). Параметры «С учётом регистра» и «Слово целиком» по-прежнему можно сочетать с ним.
AaС учётом регистраЕсли отмечено, поиск учитывает регистр: «A» и «a» считаются разными символами.
\bСлово целикомОграничивает результаты вхождениями, не примыкающими к другим буквам или цифрам. Совпадают слова, отделённые пробелами, знаками препинания и т. п.

Три кнопки находятся в поле ввода справа, в этом порядке; когда поле не пустое, за ними следует крестик, который очищает его.

Поиск запускается, когда вы покидаете поле ввода — щелчком в другом месте, клавишей Tab или, начиная с версии 3.2.0, клавишей Enter, — либо когда вы выбираете поиск из истории. Начиная с той же версии, Esc закрывает поле и отменяет введённое: на экране остаётся текущий поиск. Искомый текст и три параметра запоминаются браузером для всех баз.

История поиска

Щелчок в поле ввода раскрывает 20 ваших последних поисков, самый свежий — вверху; во время ввода список фильтруется. Крестик удаляет поиск из истории.

Результаты

Счётчик показывает число отображаемых результатов и общее число найденных. Результаты выводятся порциями по 100: внизу списка +100 показывает следующие 100 (+N, когда осталось меньше 100), а Все (N) — оставшиеся N.

Как читать результат

Каждый результат — строка, представленная так же, как на вкладке Поля и формулы: значок типа, значок зависимостей, «Fx», затем навигационная цепочка элемента, где выделенный жирным фрагмент обозначает код, в котором найден текст.

  • При наведении на выделенный жирным фрагмент код появляется во всплывающей подсказке, найденный текст подсвечен.
  • Щелчок по выделенному жирным фрагменту открывает редактор Ninox на этом коде, найденный текст подсвечен.
  • Красная кнопка, которая появляется при наведении справа от строки в режиме редактирования («Edit mode»), для строки, относящейся к полю, выделяет это поле в его форме, а для остальных строк открывает редактор кода.
  • Щелчок по значку зависимостей поля открывает это поле на вкладке Поля и формулы.

Где ведётся поиск

Поиск охватывает весь код базы:

  • глобальный код и триггер «After Open»;
  • триггеры таблиц;
  • формулы и триггеры полей: кнопки, триггеры после создания или изменения, «Display only if», права на чтение и запись, форматы отображения, динамические варианты выбора, ограничения;
  • колонки представлений: их формулы и условное форматирование;
  • печатные отчёты: тексты с формулами в фигурных скобках, блоки HTML, колонки ревизий, поля изображений с формулой и источник данных отчётов Carbone (читается только формула источника, а не файл Word).

Пример регулярного выражения

Нужно освежить в памяти синтаксис RegExp? Краткое пособие есть по адресу https://regexone.com.

Следующее выражение находит все select, у которых условие where фильтрует по ID:

\bselect\b[^;]*(?<!\.)\bid\b

Это помогает быстро найти места, где first(select myTable where ID = searchId) можно заменить на более быстрый вариант record(myTable, searchId).

Как это работает, шаг за шагом:

Шаблон RegExpПояснение
\bselect\bСовпадает со словом select целиком (не даёт совпасть словам вроде «selected»).
[^;]*Совпадает с нулём и более символов, кроме ;, — так между select и id не окажется точки с запятой.
(?<!\.)Отрицательный ретроспективный просмотр: непосредственно перед id не должно быть ..
\bid\bСовпадает со словом id целиком (не даёт совпасть подстрокам вроде «userid» или «ident»).