Введение

LXR Cross Referencer, обычно известный как LXR, — это универсальный индексатор и средство перекрестных ссылок для исходного кода, предназначенное для облегчения его понимания. Он предоставляет веб-интерфейс для просмотра исходного кода со ссылками на определения и примеры использования любого идентификатора.

История

LXR возник из необходимости в инструменте для всестороннего отслеживания разработки ядра Linux (отсюда и его первоначальное название: LXR расшифровывалось как "Linux Cross Referencer"). Такой инструмент особенно важен, учитывая недостаток документации и большое количество разработчиков. Два норвежских студента, Арне Георг Гледич и Пер Кристиан Гермшус, заинтересовавшись архитектурой Linux, начали разработку небольшой программы, отображающей файлы через веб-браузер и показывающей использование переменных при нажатии на их имя. Понимая общий интерес, они быстро опубликовали её на SourceForge (уже в 1994 году?). С такими характеристиками LXR является типичным проектом, размещенным на SourceForge, но демонстрирует исключительную продолжительность жизни среди небольших проектов. Один из первоначальных создателей начал изучать новые технологии, что привело к созданию ответвления LXRng. Эта экспериментальная разработка не содержит всех функций, присутствующих в традиционной версии, и значительно отходит от основополагающих принципов LXR. Несмотря на отсутствие активной коммуникации вокруг инструмента, LXR упоминался в некоторых публикациях, например, в Linux Journal. Однако при поиске упоминаний LXR в интернете возникает путаница между самим инструментом и экземплярами LXR, отображающими проиндексированный исходный код (поскольку многие сайты используют "LXR" в его первоначальном значении "Linux Cross Referencer"). После адаптации LXR для индексации исходного кода Mozilla Application Suite, Mozilla разветвила LXR, создав MXR (Mozilla Cross Reference). MXR был создан для удовлетворения потребностей разработки Mozilla, в частности, для навигации по коду, написанному на C++ и JavaScript. После многих лет использования MXR, Mozilla начала работу над новым инструментом с упором на улучшенный статический анализ и динамический интерфейс на основе Ajax. Результатом стал DXR (Dehydra Cross Reference). После достижения DXR зрелости, экземпляр MXR на mxr.mozilla.org был выведен из эксплуатации. Впоследствии DXR был устаревшим и заброшенным в 2020 году.

Использование

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