Skip to content

refactor(grid): decompose 3100-line result_grid_view.dart into focused modules #1035

Description

@ZhuchkaTriplesix

Summary

Декомпозировать самый большой файл кодовой базы result_grid_view.dart (3180 строк) на сфокусированные модули с четким разделением ответственности.

Context

В result_grid_view.dart сосредоточена критически важная логика виртуализированного рендеринга, но файл стал God-классом: в нем одновременно находятся расчет ширин колонок, скроллинг, выделение ячеек, клавиатурная навигация, форматирование, контекстные меню и интеграция с буфером обмена.

Implementation Details

Выделить подмодули в lib/features/workspace/grid/:

  1. grid_column_sizer.dart — алгоритмы авторасчета ширины по сэмплу строк.
  2. grid_keyboard_navigation.dart — обработка стрелок, Tab, Enter, Space.
  3. grid_selection_manager.dart — выделение областей ячеек и строк.
  4. grid_cell_renderer.dart — визуализация ячеек, hover-эффекты и бейджи.
  5. grid_clipboard_service.dart — копирование TSV/CSV/JSON.

Acceptance Criteria

  • Размер result_grid_view.dart уменьшен до <600 строк.
  • Высокая частота обновления (90/120/144 Hz) и плавность скролла сохраняются.
  • Все тесты Data Grid проходят без регрессий.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority / Parity & Refactoringdata-gridInteractive data grid, cell editor, filtering, groupingsenhancementNew feature or requestperformanceTheme parser epic label: performanceuiUser interface components and widgets

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions