-
Notifications
You must be signed in to change notification settings - Fork 31
opm list ищет в локальном каталоге #250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
opm list ищет в локальном каталоге #250
Conversation
WalkthroughДобавлены опции Changes
Sequence Diagram(s)sequenceDiagram
actor Пользователь
participant Cmd as КомандаOpm_List
participant Cache as КэшУстановленныхПакетов
participant Консоль
Пользователь->>Cmd: opm list [-p|--path] [-l|--local]
Cmd->>Cmd: Разбор опций → ВыводитьПутьКПакетам, ВыводЛокальныхПакетов
Cmd->>Cache: Инициализация (локальный путь или пусто)
Cmd->>Cache: Запрос списка установленных пакетов
Cache-->>Cmd: Список установленных пакетов (+КаталогПакета)
Cmd->>Cmd: Сбор Пакетов, заполнение КаталогПакета, формирование массива Длины
alt ВыводитьПутьКПакетам
Cmd->>Консоль: Вывести шапку с колонкой "Каталог пакета"
Cmd->>Консоль: Вывести строки с КаталогПакета
else
Cmd->>Консоль: Вывести шапку без колонки пути
Cmd->>Консоль: Вывести строки без путей
end
Estimated code review effort🎯 3 (Умеренная) | ⏱️ ~20 минут Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🧰 Additional context used🧠 Learnings (1)📚 Learning: 2025-07-18T17:19:16.051Z
Applied to files:
🔇 Additional comments (12)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
src/cmd/Классы/КомандаOpm_List.os (2)
2-4
: Неиспользуемая функциональность логированияБиблиотека
logos
подключена и переменнаяЛог
инициализирована, но логирование не используется в коде. Либо добавьте логирование в критических местах (например, при ошибках получения пакетов), либо удалите неиспользуемый код.Also applies to: 212-212
206-210
: Потенциальное ограничение длины строкиФункция
ШаблоннаяСтрока()
возвращает фиксированную строку пробелов (~200 символов). Это может быть недостаточно для очень длинных путей к пакетам или имен серверов. Рассмотрите возможность динамической генерации строки нужной длины.-Функция ШаблоннаяСтрока() - Возврат " " - + " " - ; +Функция ШаблоннаяСтрока(Знач Длина = 200) + Результат = ""; + Для Индекс = 1 По Длина Цикл + Результат = Результат + " "; + КонецЦикла; + Возврат Результат; КонецФункции
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно пример вывода до и после?
Я не совсем понимаю, решает ли это задачу вывода пакетов в oscript_modules
|
вот вывод вне каталога annotations - пакета gui уже нет - я его локально ставил |
вывод для opm list --local --path
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/cmd/Классы/КомандаOpm_List.os
(5 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
PR: oscript-library/opm#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-18T17:19:16.051Z
Learning: Applies to oscript_modules/** : Для работы с зависимостями используется пакетный менеджер OneScript Package Manager (opm), зависимости устанавливаются в подкаталог oscript_modules, расположенный в корне проекта.
🔇 Additional comments (10)
src/cmd/Классы/КомандаOpm_List.os (10)
11-12
: LGTM! Новые опции добавлены корректно.Добавлены осмысленные опции для управления выводом пути к пакетам и локального поиска пакетов. Описания опций понятные и соответствуют функциональности.
22-23
: LGTM! Флаги корректно извлекаются из опций.Переменные правильно инициализируются из значений опций командной строки.
52-52
: LGTM! Условное добавление колонки реализовано правильно.Колонка "КаталогПакета" добавляется с заголовком только при включенном выводе пути, что обеспечивает корректное отображение таблицы.
79-88
: LGTM! Логика обработки существующих пакетов улучшена.Корректно реализована проверка существования пакета в таблице и обновление информации для уже добавленных пакетов из хаба.
91-91
: LGTM! Информация о каталоге пакета корректно сохраняется.Каталог пакета правильно извлекается из структуры установленного пакета и сохраняется в соответствующем поле.
105-110
: LGTM! Динамическое вычисление ширины колонок реализовано правильно.Инициализация массива длин на основе заголовков колонок позволяет корректно вычислить ширину каждой колонки для форматирования таблицы.
118-125
: LGTM! Корректное вычисление максимальной ширины колонок.Алгоритм правильно вычисляет максимальную длину для каждой колонки, учитывая как заголовки, так и содержимое ячеек. Проверка
ЗначениеЗаполнено(Колонка.Заголовок)
предотвращает обработку пустых колонок.
143-172
: LGTM! Вывод шапки таблицы переработан качественно.Новая реализация использует динамические длины колонок и корректно форматирует заголовки с выравниванием. Применение
ШаблоннаяСтрока
для генерации разделителей улучшает читаемость кода.
175-204
: LGTM! Вывод строк данных реализован корректно.Процедура правильно использует динамические длины колонок и форматирует данные в соответствии с вычисленными ширинами. Логика аналогична выводу шапки, что обеспечивает консистентность форматирования.
207-209
: LGTM! Утилитная функция реализована эффективно.Функция
ШаблоннаяСтрока
использует элегантный подход сСтрСоединить(Новый Массив(Длина), Символ)
для генерации строки повторяющихся символов. Это более эффективно, чем циклическая конкатенация.
во, я как раз хотел предложить флаг --local |
Summary by CodeRabbit
Новые возможности
Рефакторинг