Repository navigation
refactor!: Kumiko* naming, collision-free public types, one type per file (#16) - #136
Conversation
…mes, one type per file (#16) - DataGridView -> KumikoDataGrid on MAUI and Uno (XAML included). - Renamed public types that collide with Microsoft.Maui.Controls, Microsoft.UI.Xaml (WinUI and Uno) or System.Windows.Forms: DataGridSelectionMode, DataGridSelectionChangedEventArgs, DataGridSelectionModel, DataGridSortDirection, DataGridRowStyle, GridTextChangedEventArgs, GridTimeChangedEventArgs, GridColumnReorderedEventArgs, DrawnComboBoxItem, DrawnFocusManager, DrawnCheckState; RowTappedEventArgs2 -> RowTappedEventArgs. - Every public type in its own file named after it; no namespace or behaviour change. - eng/TypeNameCheck: reads public type names from the pinned MAUI, Windows App SDK WinUI, Uno.WinUI and Windows Desktop reference packages and fails CI on any simple-name collision (Core, SkiaSharp, Maui and Uno assemblies). - Product name 'KumikoUI DataGrid' in package metadata and the README; CHANGELOG and CONTRIBUTING. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
TypeNameCheck: drop an unused local, LINQ instead of filtering/mapping foreach loops, Path.Join. Core (moved files): catch only conversion exceptions in NumericUpDownEditorDescriptor and ProgressBarCellRenderer; merge the nested CSV check in GridColorTypeConverter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…CellStyle; name check covers more frameworks - CellStyle -> DataGridCellStyle (pairs with DataGridRowStyle). - TypeNameCheck now also reads Microsoft.Maui.Core/Graphics, WPF, the Windows Community Toolkit DataGrid, CommunityToolkit.Maui and Avalonia (+ DataGrid), and flags duplicate simple names among the KumikoUI assemblies; CI passes Core + SkiaSharp + host together. - Renamed what it found: DataGridColumn -> GridColumn (and DataGridColumnType -> GridColumnType), DataGridSelectionMode -> GridSelectionMode, DataGridSortDirection -> GridSortDirection, HitTestResult -> GridHitTestResult, FocusChangedEventArgs -> GridFocusChangedEventArgs. - KumikoUI.Uno drops Uno.Resizetizer's source generator, which added a public KumikoUI.Uno.WindowExtensions app-icon helper (clashes with Microsoft.Maui.WindowExtensions). - CONTRIBUTING prefix rules and CHANGELOG updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All DataGrid* and Grid* types become Kumiko*: KumikoSource, KumikoColumn, KumikoColumnType, KumikoStyle, KumikoTheme, KumikoThemeMode, KumikoCellStyle, KumikoRowStyle, KumikoRenderer, KumikoSelectionModel, KumikoSelectionMode, KumikoSelectionChangedEventArgs, KumikoSortDirection, KumikoColor (+ TypeConverter), KumikoFont, KumikoFontMetrics, KumikoPaint, KumikoRect, KumikoSize, KumikoPoint, KumikoTextAlignment, KumikoVerticalAlignment, KumikoKey, KumikoKeyEventArgs, KumikoPointerEventArgs, KumikoInputController, KumikoHitTester, KumikoHitTestResult, KumikoLayoutEngine, KumikoTextChangedEventArgs, KumikoTimeChangedEventArgs, KumikoColumnReorderedEventArgs, KumikoFocusChangedEventArgs. Drawn components keep Drawn*. Member names are unchanged (KumikoDataGrid.GridSelectionMode, GridStyle). Files, tests, docs, CONTRIBUTING naming rules and CHANGELOG follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #16.
Breaking renames: one prefix,
Kumiko*Every grid type now uses the
Kumikoprefix. Drawn components keepDrawn, and other types keep descriptive unprefixed names (FilterDescription,EditSession, …). Namespaces (KumikoUI.*) and member names are unchanged, e.g.KumikoColumn.SortDirection,KumikoDataGrid.GridSelectionModeandKumikoDataGrid.GridStyle. The full old → new list is in the CHANGELOG.DataGridView→KumikoDataGrid(MAUI and Uno, including XAML)DataGridSource→KumikoSource,DataGridColumn→KumikoColumn,DataGridColumnType→KumikoColumnTypeDataGridStyle→KumikoStyle,DataGridTheme(Mode)→KumikoTheme(Mode),CellStyle→KumikoCellStyle,RowStyle→KumikoRowStyleDataGridRenderer→KumikoRendererSelectionModel/SelectionMode/SelectionChangedEventArgs→KumikoSelectionModel/KumikoSelectionMode/KumikoSelectionChangedEventArgs;SortDirection→KumikoSortDirectionGridColor,GridFont,GridFontMetrics,GridPaint,GridRect,GridSize,GridPoint,GridTextAlignment,GridVerticalAlignment→Kumiko*GridKey,GridKeyEventArgs,GridPointerEventArgs,GridInputController,GridHitTester,HitTestResult,GridLayoutEngine→Kumiko*TextChangedEventArgs,TimeChangedEventArgs,ColumnReorderedEventArgs,FocusChangedEventArgs→Kumiko*;RowTappedEventArgs2→RowTappedEventArgsComboBoxItem→DrawnComboBoxItem,FocusManager→DrawnFocusManager,CheckState→DrawnCheckStateKumikoUI.Uno.WindowExtensions. Uno.Resizetizer's source generator added this app-icon helper to the library, and it clashed withMicrosoft.Maui.WindowExtensions; the library build now drops that generator.The naming rules are in CONTRIBUTING.md under "Public type names". New
DataGrid*/Grid*type names are not allowed, because other grids (WPF, Windows Community Toolkit, Avalonia) use those prefixes.One type per file
Every top-level type in
src/now lives in its own file named after it. For example,GridState.csis nowScrollState.cs,KumikoStyle.csandDragHandlePosition.cs. Code was moved verbatim.CI name-collision check (
eng/TypeNameCheck)System.Reflection.Metadata. It fails when a KumikoUI type shares a simple name with:Microsoft.UI.Xaml, or the Windows Community Toolkit DataGridSystem.Windows.*)Directory.Packages.props), so the tool needs no workloads.build-core(Core + SkiaSharp),build-maui(Core + SkiaSharp + Maui, Windows TFM) andbuild-uno(Core + SkiaSharp + Uno, desktop head).Verification (local, macOS)
Notes
model:sonnetlabel) and was reviewed and extended here.UnoWinUIVersionmust track the Uno.WinUI version that Uno.Sdk resolves.🤖 Generated with Claude Code