Skip to content

Conversation

dmpas
Copy link
Member

@dmpas dmpas commented Aug 11, 2025

Summary by CodeRabbit

  • Новые возможности

    • Добавлены опции: -l для показа локальных пакетов и -p/--path для вывода столбца «Каталог пакета».
  • Рефакторинг

    • Динамическое вычисление ширины колонок и улучшенное выравнивание таблицы.
    • Улучшено объединение и обновление строк при дубликатах; для установленных пакетов сервер отображается как «Локальный», путь пакета показывается при запросе.
    • Сохранена сортировка по имени пакета.

@dmpas dmpas requested a review from nixel2007 August 11, 2025 21:11
Copy link

coderabbitai bot commented Aug 11, 2025

Walkthrough

Добавлены опции -p/--path и -l/--local; введены флаги для вывода пути и локальных пакетов; кэш установленных пакетов и сбор данных изменены для передачи каталога пакета; таблица пакетов расширена колонкой каталога (опционально); вывод переделан на динамические ширины; обновлены сигнатуры процедур вывода.

Changes

Cohort / File(s) Summary
Опции, флаги и кэш
src/cmd/Классы/КомандаOpm_List.os
Добавлены опции path (-p) и local (-l); введены флаги ВыводитьПутьКПакетам, ВыводЛокальныхПакетов; КэшУстановленныхПакетов инициализируется с условным путём (локальный путь или пусто); получение каталога из УстановленныйПакет.Значение.КаталогПакета.
Модель данных пакетов
src/cmd/Классы/КомандаOpm_List.os
Структура Пакеты расширена колонкой КаталогПакета (показывается при ВыводитьПутьКПакетам); при сборке строк обновляется существующая запись или создаётся новая; для локальных пакетов ИменаСерверов = "Локальный".
Вывод и форматирование
src/cmd/Классы/КомандаOpm_List.os
Перевод на динамические ширины столбцов: формируется массив Длины из заголовков; ВывестиИнформациюОПакетах, ВывестиШапкуИнфо, ВывестиСтрокуИнфо переписаны для работы с Знач-типами и новым форматом; добавлена ШаблоннаяСтрока(); выравнивание по вычисленным длинам; сортировка по ИмяПакета сохранена.
Сигнатуры процедур
src/cmd/Классы/КомандаOpm_List.os
Обновлены публичные сигнатуры: ВывестиИнформациюОПакетах(Знач Пакеты), ВывестиСтрокуИнфо(Знач ИнфоОПакете, Знач Длины), ВывестиШапкуИнфо(Знач Пакеты, Знач Длины).

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
Loading

Estimated code review effort

🎯 3 (Умеренная) | ⏱️ ~20 минут

Poem

Прыг-скок по строкам, хвост — как курсор,
Путь в колонке светит, видно ясно вдруг.
Шаблон и длины ровно выровнял я,
Локальный сервер кивает друг другу.
Я — кролик, щёлк: обновлён список, ура! 🐇📦


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1f4dc76 and 861b716.

📒 Files selected for processing (1)
  • src/cmd/Классы/КомандаOpm_List.os (5 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-18T17:19:16.051Z
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, расположенный в корне проекта.

Applied to files:

  • src/cmd/Классы/КомандаOpm_List.os
🔇 Additional comments (12)
src/cmd/Классы/КомандаOpm_List.os (12)

11-12: Добавлены новые опции для управления выводом пакетов.

Опции path и local корректно определены и имеют понятные описания. Логика их использования позволяет пользователям получать более детальную информацию о локальных пакетах.


22-23: Корректно извлечены значения новых опций.

Флаги ВыводЛокальныхПакетов и ВыводитьПутьКПакетам правильно устанавливаются на основе пользовательского ввода.


38-41: Нормализуйте путь к локальному каталогу установки пакетов.

Использование ОбъединитьПути(ТекущийКаталог(), КонстантыOpm.ЛокальныйКаталогУстановкиПакетов) является правильным подходом для создания корректного пути. Это исправление предыдущей проблемы с "./" + КонстантыOpm.ЛокальныйКаталогУстановкиПакетов.


49-53: Добавлена новая колонка для отображения каталогов пакетов.

Структура таблицы корректно расширена. Использование тернарного оператора для условного заголовка колонки КаталогПакета обеспечивает правильное отображение только при необходимости.


80-89: Улучшена логика обработки установленных пакетов.

Код корректно обрабатывает случаи, когда пакет уже существует в таблице (найден на хабе) или является только локальным. Логика установки флага Выводить и значения ИменаСерверов для локальных пакетов реализована правильно.


91-92: Добавлено заполнение информации о каталоге пакета.

Присвоение версии и каталога пакета выполняется корректно, обеспечивая полную информацию для отображения.


106-111: Переработана сигнатура и логика вычисления ширин колонок.

Изменение сигнатуры на Знач Пакеты и динамическое вычисление ширин колонок является хорошим улучшением. Код корректно инициализирует массив Длины на основе заголовков колонок.


119-127: Реализован динамический расчет максимальных ширин колонок.

Логика корректно вычисляет максимальную ширину для каждой колонки, учитывая как заголовки, так и содержимое строк. Проверка ЗначениеЗаполнено(Колонка.Заголовок) правильно исключает колонки без заголовков из расчета.


130-140: Обновлены вызовы процедур с новыми сигнатурами.

Вызовы ВывестиШапкуИнфо и ВывестиСтрокуИнфо корректно адаптированы под новые сигнатуры с передачей таблицы Пакеты и массива Длины.


144-173: Переработана процедура вывода заголовка таблицы.

Новая реализация ВывестиШапкуИнфо корректно работает с динамическими ширинами колонок. Использование функции ШаблоннаяСтрока для создания пустых строк и разделителей является хорошим решением. Логика формирования заголовков и разделительных линий реализована правильно.


176-206: Переработана процедура вывода строк данных.

Новая реализация ВывестиСтрокуИнфо успешно адаптирована для работы с новой структурой данных. Получение ссылки на таблицу через ИнфоОПакете.Владелец() и динамическое форматирование строк выполнено корректно.


208-210: Добавлена утилитарная функция для создания шаблонных строк.

Функция ШаблоннаяСтрока элегантно решает задачу создания строк из повторяющихся символов. Использование СтрСоединить(Новый Массив(Длина), Символ) является эффективным способом генерации таких строк.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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 По Длина Цикл
+		Результат = Результат + " ";
+	КонецЦикла;
+	Возврат Результат;
 КонецФункции
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between df37504 and 4b59d59.

📒 Files selected for processing (1)
  • src/cmd/Классы/КомандаOpm_List.os (6 hunks)

Copy link
Member

@nixel2007 nixel2007 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно пример вывода до и после?
Я не совсем понимаю, решает ли это задачу вывода пакетов в oscript_modules

@dmpas
Copy link
Member Author

dmpas commented Aug 12, 2025

Можно пример вывода до и после? Я не совсем понимаю, решает ли это задачу вывода пакетов в oscript_modules

-------------------------------------------------------------------------------------------------------------------------------------------
Пакет         |Имена серверов                               |Версия  |Каталог пакета                                                     
-------------------------------------------------------------------------------------------------------------------------------------------
1bdd          |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.15.1  |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\1bdd       
1commands     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\1commands  
1connector    |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |2.3.3   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\1connector             
1testrunner   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.9.2   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\1testrunner
asserts       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.4.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\asserts    
bin           |Локальный                                    |<НЕТ>   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\bin        
cli           |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.11.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\cli                    
cli-selector  |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.5.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\cli-selector           
cmdline       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\cmdline    
coverage      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.7.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\coverage   
datetime      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.1.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\datetime               
decorator     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\decorator              
delegate      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.2.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\delegate   
fluent        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.6.1   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\fluent                 
fs            |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.2.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\fs         
gitrunner     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.7.1   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\gitrunner              
gui           |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.2.4 |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\gui        
ibcmdrunner   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.3.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\ibcmdrunner            
json          |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\json       
lambdas       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.1.2   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\lambdas                
logos         |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.7.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\logos      
notify        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.2.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\notify                 
opm           |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\opm                    
packageinfo   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0     |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\packageinfo
ParserFileV8i |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.0.5   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\ParserFileV8i          
reflector     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.7.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\reflector  
semver        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\semver     
strings       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.5.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\strings    
tempfiles     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\tempfiles  
v8find        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.3.0   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8find                 
v8runner      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.10.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8runner               
v8storage     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.6.5   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8storage              
v8unpack      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.6   |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8unpack               
-------------------------------------------------------------------------------------------------------------------------------------------
Пакет         |Имена серверов                               |Версия  |Каталог пакета                                                     
-------------------------------------------------------------------------------------------------------------------------------------------

@dmpas
Copy link
Member Author

dmpas commented Aug 12, 2025

@nixel2007

-------------------------------------------------------------------------------------------------------------------------------
Пакет         |Имена серверов                               |Версия |Каталог пакета                                           
-------------------------------------------------------------------------------------------------------------------------------
1bdd          |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.15.1 |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\1bdd         
1commands     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\1commands    
1connector    |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |2.3.3  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\1connector   
1testrunner   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.9.2  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\1testrunner  
asserts       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.4.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\asserts      
cli           |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.11.0 |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\cli          
cli-selector  |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.5.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\cli-selector 
cmdline       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\cmdline      
coverage      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.7.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\coverage     
datetime      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.1.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\datetime     
decorator     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\decorator    
delegate      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.2.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\delegate     
fluent        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.6.1  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\fluent       
fs            |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.2.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\fs           
gitrunner     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.7.1  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\gitrunner    
ibcmdrunner   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.3.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\ibcmdrunner  
json          |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.1  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\json         
lambdas       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.1.2  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\lambdas      
logos         |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.7.1  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\logos        
notify        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.2.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\notify       
opm           |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\opm          
packageinfo   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0    |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\packageinfo  
ParserFileV8i |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.0.5  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\ParserFileV8i
reflector     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.7.1  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\reflector    
semver        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\semver       
strings       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.5.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\strings      
tempfiles     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.1  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\tempfiles    
v8find        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.3.0  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8find       
v8runner      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.10.0 |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8runner     
v8storage     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.6.5  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8storage    
v8unpack      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.6  |C:\opt\OneScript-2.0.0-rc.7+573-fdd-x64\lib\v8unpack     
-------------------------------------------------------------------------------------------------------------------------------
Пакет         |Имена серверов                               |Версия |Каталог пакета                                           
-------------------------------------------------------------------------------------------------------------------------------

вот вывод вне каталога annotations - пакета gui уже нет - я его локально ставил

@dmpas dmpas requested a review from nixel2007 August 12, 2025 07:15
@dmpas
Copy link
Member Author

dmpas commented Aug 13, 2025

вывод для opm list --local --path

Установленные пакеты:
----------------------------------------------------------------------------------------------------------------------------------------
Пакет       |Имена серверов                               |Версия  |Каталог пакета                                                     
----------------------------------------------------------------------------------------------------------------------------------------
1bdd        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.15.1  |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\1bdd       
1commands   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.5.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\1commands  
1testrunner |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.9.2   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\1testrunner
asserts     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.4.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\asserts    
bin         |Локальный                                    |<НЕТ>   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\bin        
cmdline     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\cmdline    
coverage    |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.7.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\coverage   
delegate    |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.2.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\delegate   
fs          |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.2.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\fs         
gui         |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.2.4 |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\gui        
json        |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\json       
logos       |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.7.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\logos      
packageinfo |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0     |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\packageinfo
reflector   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.7.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\reflector  
semver      |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.0.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\semver     
strings     |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |0.5.0   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\strings    
tempfiles   |ОсновнойСерверПакетов, ЗапаснойСерверПакетов |1.1.1   |C:\Users\dmpas\Documents\wp\annotations\oscript_modules\tempfiles  
----------------------------------------------------------------------------------------------------------------------------------------
Пакет       |Имена серверов                               |Версия  |Каталог пакета                                                     
----------------------------------------------------------------------------------------------------------------------------------------

Copy link

@coderabbitai coderabbitai bot left a 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

📥 Commits

Reviewing files that changed from the base of the PR and between 03bc853 and 1f4dc76.

📒 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! Утилитная функция реализована эффективно.

Функция ШаблоннаяСтрока использует элегантный подход с СтрСоединить(Новый Массив(Длина), Символ) для генерации строки повторяющихся символов. Это более эффективно, чем циклическая конкатенация.

@nixel2007
Copy link
Member

во, я как раз хотел предложить флаг --local

@nixel2007 nixel2007 merged commit 5ad57e2 into oscript-library:master Aug 14, 2025
1 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants