Поиск кода

Вкладка Поиск кода позволяет просматривать все скрипты базы данных. Эти параметры можно сочетать:
| Кнопка | Параметр | Действие |
|---|---|---|
.* | Регулярное выражение | Толкует запрос как 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»). |
