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.051ZApplied 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.
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 По Длина Цикл + Результат = Результат + " "; + КонецЦикла; + Возврат Результат; КонецФункции
nixel2007
left a comment
There was a problem hiding this comment.
Можно пример вывода до и после?
Я не совсем понимаю, решает ли это задачу вывода пакетов в oscript_modules
|
вот вывод вне каталога annotations - пакета gui уже нет - я его локально ставил |
|
вывод для opm list --local --path |
There was a problem hiding this comment.
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
Новые возможности
Рефакторинг