Skip to content

Modernize and clean up the code base a bit#2004

Merged
patriksvensson merged 1 commit intospectreconsole:mainfrom
patriksvensson:feature/modernize-mk2
Jan 11, 2026
Merged

Modernize and clean up the code base a bit#2004
patriksvensson merged 1 commit intospectreconsole:mainfrom
patriksvensson:feature/modernize-mk2

Conversation

@patriksvensson
Copy link
Copy Markdown
Contributor

  • Move extension methods closer to implementations
  • Fix namespaces
  • Make structs read-only where applicable
  • Use ArgumentNullException.ThrowIfNull
  • Use collection expressions

* Move extension methods closer to implementations
* Fix namespaces
* Make structs read-only where applicable
* Use ArgumentNullException.ThrowIfNull
* Use collection expressions
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request modernizes the Spectre.Console codebase by consolidating extension methods, updating null checks, using collection expressions, and making appropriate structs readonly. The changes improve code organization and leverage modern C# features.

Changes:

  • Moved extension methods from separate files in Extensions/ folder to be co-located with their target types
  • Replaced manual null checks with ArgumentNullException.ThrowIfNull
  • Updated collection initializations to use collection expression syntax ([])
  • Made several structs readonly (Size, Measurement, Region, Padding, FileSize, DisplayNameOptions)
  • Fixed namespace for IRenderable and internal classes

Reviewed changes

Copilot reviewed 195 out of 200 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Spectre.Console/Widgets/TreeNode.cs Added TreeNodeExtensions inline, used collection expression
src/Spectre.Console/Widgets/Tree.cs Added TreeExtensions inline, used collection expression
src/Spectre.Console/Widgets/TextPath.cs Added TextPathExtensions inline, used collection expressions
src/Spectre.Console/Widgets/Table/*.cs Modernized null checks and collection expressions
src/Spectre.Console/Widgets/Rule.cs Added RuleExtensions inline, improved formatting
src/Spectre.Console/Widgets/Paragraph.cs Updated null checks and collection expressions
src/Spectre.Console/Widgets/Panel.cs Added PanelExtensions inline
src/Spectre.Console/Widgets/Charts/*.cs Added chart extensions inline, used collection expressions
src/Spectre.Console/Live/**/*.cs Consolidated live display extensions
src/Spectre.Console/Prompts/*.cs Updated null checks and collection expressions
src/Spectre.Console/*.cs Made structs readonly, moved extensions inline
src/Spectre.Console/Internal/*.cs Fixed namespaces and collection expressions
src/Spectre.Console/Rendering/*.cs Updated IRenderable namespace and implementations
src/Spectre.Console/Extensions/*.cs Deleted extension files (moved inline)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@patriksvensson patriksvensson merged commit 86abe0c into spectreconsole:main Jan 11, 2026
9 checks passed
@patriksvensson patriksvensson deleted the feature/modernize-mk2 branch January 11, 2026 19:08
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