LXR Cross Referencer - LXR Cross Referencer
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
изначальный выпуск | c. 1994 г.[1] |
---|---|
Стабильный выпуск | 2.3.5 / 20 марта 2019 г. |
Репозиторий | |
Написано в | Perl |
Тип | Индексатор и автор перекрестных ссылок |
Лицензия | GNU GPL 2 |
Интернет сайт | lxr |
LXR Cross Referencer, обычно известный как LXR, является универсальным исходный код индексатор и автор перекрестных ссылок за понимание кода что обеспечивает сеть -просмотр исходного кода со ссылками на определение и использование любых идентификатор.
История
LXR был рожден из-за потребности в инструменте для синтетического наблюдения за Ядро Linux во время его разработки (откуда его первоначальное название: LXR расшифровывалось как «Linux Cross-Referencer»). Такой инструмент тем более необходим, поскольку документации мало, а количество участников велико.
Двое норвежских студентов, Арне Георг Гледич и Пер Кристиан Гьермсхус, интересуются Архитектура Linux, начал писать небольшую программу, отображающую свои файлы через веб-браузер и показывающую использование переменных после щелчка по имени. Осознавая всеобщий интерес, они быстро разместили его на SourceForge (еще в 1994?[1]).
Прошло время, и фанаты присоединились к команде разработчиков, чтобы сделать код более зрелым; однако их число никогда не превышало десяти.[2] С этими характеристиками LXR является типичным SourceForge - размещенный проект, но демонстрирует исключительную продолжительность жизни среди небольших проектов.
Один из первых создателей исследовал новые технологии, дающие LXRng Дополнительная выгода. Эта экспериментальная разработка не содержит всех функций, присутствующих в традиционной версии, и заметно отличается от основополагающих принципов LXR.
Хотя на самом деле никакого взаимодействия с инструментом не было, LXR пробился через некоторые бумажные колонки, например Linux журнал.[3] Однако при сборе ссылок на LXR в Интернете существует двусмысленность между самим инструментом и экземплярами LXR, отображающими индексированный исходный код (поскольку многие сайты используют «LXR» в его первоначальном смысле «перекрестный справочник Linux»).
После принятия LXR для индексации исходного кода для Пакет приложений Mozilla, Mozilla раздвоенный LXR в MXR (перекрестная ссылка Mozilla). MXR был создан для удовлетворения потребностей разработки Mozilla, а именно для навигации по коду смешанного C ++ и JavaScript кодовая база. После нескольких лет использования MXR, Mozilla начала работу над новым инструментом с упором на улучшение статический анализ и динамичный Аякс UI. Результат DXR (Перекрестная ссылка Дегидры[4]). Когда DXR достиг зрелости, экземпляр MXR на mxr.mozilla.org был списан.
Технологии
LXR минималистичен и придерживается принципа наименьших усилий.
Умышленное пристрастие к минимализм избегает использования слишком большого количества различных технологий. Таким образом, это ограничивает зависимости, и программное обеспечение может поддерживаться многими конфигурациями без специальной адаптации.
- Варианты дизайна включают интерпретируемые языки (такие как Ява или же JavaScript ) запретный или строгий HTML 4.01 соответствие.
Принцип наименьшего усилия запрещает программирование инструмента, если он уже существует (по крайней мере, как Открытый исходный код ).
- Это приводит к веб-браузер использование для отображения (HTML и CSS позволяют создавать причудливую компоновку страниц), определения и ссылки, хранящиеся в доступном реляционная база данных и разбор файлов с помощью Обильные теги инструмент.
LXR написан на Perl, удобный выбор для CGI скрипты, но не совсем подходят для лексического или синтаксического анализа.[5]
LXR пытается наложить как можно меньше ограничений:
- несколько вариантов базы данных: MySQL, PostgreSQL, SQLite или же Oracle,
- выбор для полнотекстовый поиск между Случайно заметить и SWISH-E,
- свободный выбор HTTP-сервера при условии, что он может выполнять сценарии CGI (инструкции приведены для Apache, Чероки, lighttpd, Nginx и thttpd ),
- исходный файл хранится в реальном каталог или в система управления версиями репозиторий (выбор[6] между CVS, Git,[7] Mercurial и Subversion ).
использование
После установки программного обеспечения, что является нетривиальной задачей, но не требует специальных знаний, необходимо предварительно обработать исходный код и настроить LXR для его отображения.
- Различные версии исходного кода реализованы как подкаталоги.
- В альтернативном варианте исходный код хранится в системе управления версиями.
Код индексируется на втором этапе: собираются идентификаторы и их местоположение вводится в базу данных. Повторное индексирование необходимо только при изменении исходного кода или добавлении новой версии.
После этого все, что нужно, - это запустить веб-браузер с URL в соответствии с исходным кодом и перемещаться по файлам через гиперссылки связанные с идентификаторами.
Возможности и ограничения
Исходный код может быть написан на любом языке, который Обильные теги может справиться, но синтаксические анализаторы не столь детализированы.
Две версии одного и того же файла можно сравнивать бок о бок с визуально улучшенными различиями (через разница команда, запущенная LXR).
Помимо гиперссылок под переменные, форма позволяет искать идентификатор, введенный пользователем.
Чтобы обойти ограничения фазы индексации, можно выполнить поиск по любой последовательности символов (полнотекстовый) за счет обширного обхода исходных файлов.
Ограничения LXR связаны с инструментами поддержки, в основном с Exuberant ctags. Но основная причина трудностей заключается в неправильном права доступа в файлы.
Еще одно ограничение связано с тем, что при выборе дизайна выполняется только статический анализ кода, в отличие от другие решения которые выполняют семантический анализ на этапе компиляции,
Опытный пользователь может изменить макет и рендеринг LXR на странице настройки. шаблоны (написано в HTML) и каскадная таблица стилей (CSS).
Коллекции LXR
- Сам LXR
- Просмотр ядра Linux
- [1] (запускается экспериментальная вилка LXRng, предоставленная lxr.linux.no)
- Просмотр ядер Linux (до 2017 года использовала очень старую версию LXR)
- Glibc 2.3.2
- (в архивах показана только структура каталогов - март 2016 г.)
- (в архиве показана только структура каталогов - март 2016 г.)
- (архив недоступен - март 2016)
Смотрите также
Рекомендации
- ^ а б По датам в CVS-репозитории SourceForge
- ^ «Проект с открытым исходным кодом LXR Cross Referencer в Open Hub: участники».
- ^ Камран Соомро (1 июня 2007 г.). "Читать исходный код в формате HTML".
- ^ «Дегидра». Веб-документы MDN. Получено 2020-11-13.
- ^ А конечный автомат обычно сканирует текст (или исходный код) слева направо без возврата. С помощью обычные выражения в Perl рискует многократным сканированием текста с ложной заменой на уже обработанные фрагменты.
- ^ Изначально можно было использовать BitKeeper, но поддержка прекратилась (примерно в 2005 г.), когда лицензия стала проприетарной.
- ^ В версии 1.0 исправлена поддержка Git.
внешняя ссылка
LXRng (вилка)