The System.Terminal project was started before global using directives became a thing. Most C# files back then contained a using directive for the System namespace. The idea was that, by putting the code in the System namespace, users would not need to add an extra using directive whenever they wanted to use terminal APIs, thus making it less likely that they would reach for .NET's console APIs. This is no longer a major concern since we emit global using directives when the user has them enabled in their project.
All System namespaces have been changed to Cathode.
For the extensions package, the namespace is now Cathode.Extensions. There are now global usings in place if the package is used from a Microsoft.NET.Sdk.Web project.
The System.Terminal project was started before
global using
directives became a thing. Most C# files back then contained ausing
directive for theSystem
namespace. The idea was that, by putting the code in theSystem
namespace, users would not need to add an extrausing
directive whenever they wanted to use terminal APIs, thus making it less likely that they would reach for .NET's console APIs. This is no longer a major concern since we emitglobal using
directives when the user has them enabled in their project.Additionally, I was not yet aware of Microsoft.CodeAnalysis.BannedApiAnalyzers. We now use that to ban the Windows-oriented console APIs that .NET ships with.
Finally, it seems that there is work planned for a console API redesign in .NET 7. It would be unfortunate if we have name clashes with any potential new types introduced in that effort.
So, at this point, I'm thinking that it would probably make sense to rebrand the project somehow. What the new name might be, I have no idea yet.