Skip to content

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

Closed

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

  1. added
    enhancementNew feature or request
    performanceTheme parser epic label: performance
    uiUser interface components and widgets
    data-gridInteractive data grid, cell editor, filtering, groupings
    P2Medium priority / Parity & Refactoring
    on Oct 4, 2026
  2. ZhuchkaTriplesix commented on Oct 7, 2026

    @ZhuchkaTriplesix
    MemberAuthor

    Merged in #1083

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