diff --git a/docfx/ReadMe.md b/docfx/ReadMe.md
index fa9afc1c77..d7377923f9 100644
--- a/docfx/ReadMe.md
+++ b/docfx/ReadMe.md
@@ -21,7 +21,8 @@ a project via MSBUILD. Instead it focused on a .NET tool to do it all via the
command line. Ultimately the docfx.json serves as the "project" file for the
different site builds. The PowerShell script `Build-Docs.ps1` was updated to use
the new tool directly. Using that script should have little or no impact on the
-overall flow.
+overall flow. There is a "no-targets" project in the solution to enable easier access to the
+input files but does not itself, generate any docs - it's just a placeholder.
## Files used by the docs generation
There are a lot of files used to generate the docs and the concept of a Table of
diff --git a/docfx/TextUX/api/index.md b/docfx/TextUX/api/index.md
deleted file mode 100644
index b42088e420..0000000000
--- a/docfx/TextUX/api/index.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# About
-Ubiquity.NET.TextUX contains general extensions for .NET. to support console (text) based applications
diff --git a/docfx/TextUX/index.md b/docfx/TextUX/index.md
deleted file mode 100644
index b42088e420..0000000000
--- a/docfx/TextUX/index.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# About
-Ubiquity.NET.TextUX contains general extensions for .NET. to support console (text) based applications
diff --git a/docfx/TextUX/toc.yml b/docfx/TextUX/toc.yml
deleted file mode 100644
index 262c8b726b..0000000000
--- a/docfx/TextUX/toc.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# TOC (Left nav) for the 'extensions' folder
-- name: Overview
- href: index.md
-- name: Namespaces
- href: api/toc.yml
diff --git a/docfx/docfx.json b/docfx/docfx.json
index 6cd584d387..90e4750149 100644
--- a/docfx/docfx.json
+++ b/docfx/docfx.json
@@ -87,18 +87,6 @@
// in this project let alone all the ones found on-line.)
"TargetFramework": "net8.0"
}
- },
- {
- // TextUX library
- "memberLayout":"separatePages",
- "namespaceLayout":"nested",
- "src": [
- {
- "src": "../src/Ubiquity.NET.TextUX",
- "files": ["**.csproj"]
- }
- ],
- "dest": "TextUX/api"
}
],
"build": {
@@ -201,18 +189,6 @@
"**/namespaces/**.md",
"**/*-xref.yml"
]
- },
- {
- // TextUX project additional content, Includes the generated metadata API folder
- // NOTE: File paths are relative to the location of this file
- "files": [
- "TextUX/**.{md,yml}"
- ],
- // Exclude the namespace overwrites and XREF maps as they are listed explicitly elsewhere
- "exclude": [
- "**/namespaces/**.md",
- "**/*-xref.yml"
- ]
}
],
"resource": [
diff --git a/docfx/documentation.msbuildproj b/docfx/documentation.msbuildproj
index 63f05cc76c..cec6be247f 100644
--- a/docfx/documentation.msbuildproj
+++ b/docfx/documentation.msbuildproj
@@ -8,10 +8,8 @@
AnyCPU
true
-
-
-
@@ -67,44 +64,41 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
- <__Line Include="{"/>
- <__Line Include=" "FullBuildNumber" : "$(FullBuildNumber)"," />
- <__Line Include=" "BuildMajor" : $(BuildMajor)," />
- <__Line Include=" "BuildMinor" : $(BuildMinor)," />
- <__Line Include=" "BuildPatch" : $(BuildPatch)," />
- <__Line Include=" "PreReleaseName" : "$(PreReleaseName)"," />
- <__Line Include=" "CiBuildName" : "$(CiBuildName)"," />
- <__Line Include=" "CiBuildIndex" : $(CiBuildIndex)," />
- <__Line Condition="'$(PreReleaseNumber)'!=''" Include=""PreReleaseNumber" : $(PreReleaseNumber)," />
- <__Line Condition="'$(PreReleaseFix)'!=''" Include=""PreReleaseFix" : $(PreReleaseFix)," />
- <__Line Condition="'$(BuildMeta)'!=''" Include=""BuildMeta" : "$(BuildMeta)"," />
- <__Line Include="}"/>
+ <__Line Include="{" />
+ <__Line Include=" "FullBuildNumber" : "$(FullBuildNumber)"," />
+ <__Line Include=" "BuildMajor" : $(BuildMajor)," />
+ <__Line Include=" "BuildMinor" : $(BuildMinor)," />
+ <__Line Include=" "BuildPatch" : $(BuildPatch)," />
+ <__Line Include=" "PreReleaseName" : "$(PreReleaseName)"," />
+ <__Line Include=" "CiBuildName" : "$(CiBuildName)"," />
+ <__Line Include=" "CiBuildIndex" : $(CiBuildIndex)," />
+ <__Line Condition="'$(PreReleaseNumber)'!=''" Include=""PreReleaseNumber" : $(PreReleaseNumber)," />
+ <__Line Condition="'$(PreReleaseFix)'!=''" Include=""PreReleaseFix" : $(PreReleaseFix)," />
+ <__Line Condition="'$(BuildMeta)'!=''" Include=""BuildMeta" : "$(BuildMeta)"," />
+ <__Line Include="}" />
-
+
-
\ No newline at end of file
diff --git a/docfx/index.md b/docfx/index.md
index 9805e57b63..833e5e6ed8 100644
--- a/docfx/index.md
+++ b/docfx/index.md
@@ -1,9 +1,9 @@
# Ubiquity.NET
-Ubiquity.NET family of libraries provides support for a number of scenarios but the primary focus is
-AOT code generation of .NET for Embedded systems. We aren't quite there yet, but are rather close. In
-the mean time this set of libraries provides the building blocks needed for creating a Domain Specific
-Language (DSL) implementation including JIT execution. Several useful generalized libraries are also
-included.
+Ubiquity.NET family of libraries provides support for a number of scenarios but the primary
+focus is AOT code generation of .NET for Embedded systems. We aren't quite there yet, but
+are rather close. In the mean time this set of libraries provides the building blocks needed
+for creating a Domain Specific Language (DSL) implementation or custom language compiler,
+including JIT execution. Several useful generalized libraries are also included.
## The Libraries in this repository
(At least the ones generating docs at this point anyway! :grin:)
@@ -14,6 +14,5 @@ included.
| [Ubiquity.NET.Runtime.Utils](runtime-utils/index.md) | This library contains common support for DSL runtime and language implementors |
| [Ubiquity.NET.Extensions](extensions/index.md) | This library contains general extensions and helpers for many scenarios using .NET |
| [Ubiquity.NET.Antlr.Utils](antlr-utils/index.md) | This library contains extensions and helpers for using ANTLR with .NET |
-| [Ubiquity.NET.TextUX](TextUX/index.md) | This library contains extensions and helpers for Text User eXperience (UX) applications (console) |
| [Ubiquity.NET.CommandLine](CommandLine/index.md) | This library contains extensions and helpers for command line parsing via `System.CommandLine` |
| [Ubiquity.NET.InteropHelpers](interop-helpers/index.md) | This library contains extensions and helpers for implementing interop support for native libraries |
diff --git a/docfx/toc.yml b/docfx/toc.yml
index 3fb7c595c3..567f16aa0f 100644
--- a/docfx/toc.yml
+++ b/docfx/toc.yml
@@ -17,8 +17,6 @@
href: extensions/index.md
- name: ANTLR Utilities
href: antlr-utils/index.md
- - name: TextUX Utilities
- href: TextUX/index.md
- name: Interop Helpers
href: interop-helpers/index.md
- name: CommandLine Parsing
diff --git a/src/Interop/LlvmBindingsGenerator/Program.cs b/src/Interop/LlvmBindingsGenerator/Program.cs
index fedf1ca8f3..93f336507a 100644
--- a/src/Interop/LlvmBindingsGenerator/Program.cs
+++ b/src/Interop/LlvmBindingsGenerator/Program.cs
@@ -7,7 +7,6 @@
using CppSharp;
using Ubiquity.NET.CommandLine;
-using Ubiquity.NET.TextUX;
namespace LlvmBindingsGenerator
{
diff --git a/src/Samples/Kaleidoscope/Chapter8/Program.cs b/src/Samples/Kaleidoscope/Chapter8/Program.cs
index 9d9f829177..a8e3f7ffe6 100644
--- a/src/Samples/Kaleidoscope/Chapter8/Program.cs
+++ b/src/Samples/Kaleidoscope/Chapter8/Program.cs
@@ -10,7 +10,6 @@
using Ubiquity.NET.CommandLine;
using Ubiquity.NET.Llvm;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
using static Ubiquity.NET.Llvm.Library;
diff --git a/src/Samples/Kaleidoscope/Chapter9/Program.cs b/src/Samples/Kaleidoscope/Chapter9/Program.cs
index 9c339966a5..1bae66a033 100644
--- a/src/Samples/Kaleidoscope/Chapter9/Program.cs
+++ b/src/Samples/Kaleidoscope/Chapter9/Program.cs
@@ -10,7 +10,6 @@
using Ubiquity.NET.CommandLine;
using Ubiquity.NET.Llvm;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
using static Ubiquity.NET.Llvm.Library;
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.BinaryPrototypeContext.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.BinaryPrototypeContext.cs
index 191b48d2ab..e9c6da38ac 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.BinaryPrototypeContext.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.BinaryPrototypeContext.cs
@@ -9,7 +9,7 @@
using Antlr4.Runtime;
using Ubiquity.NET.ANTLR.Utils;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Kaleidoscope.Grammar.ANTLR
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.FunctionPrototypeContext.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.FunctionPrototypeContext.cs
index 1137248e1c..ca044e8b71 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.FunctionPrototypeContext.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.FunctionPrototypeContext.cs
@@ -5,7 +5,7 @@
using System.Linq;
using Ubiquity.NET.ANTLR.Utils;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Kaleidoscope.Grammar.ANTLR
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.PrototypeContext.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.PrototypeContext.cs
index 4ca5b81512..98fb49d4da 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.PrototypeContext.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.PrototypeContext.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Kaleidoscope.Grammar.ANTLR
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.UnaryPrototypeContext.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.UnaryPrototypeContext.cs
index ea423f452d..15a1a38b95 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.UnaryPrototypeContext.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/ANTLR/KaleidoscopeParser.UnaryPrototypeContext.cs
@@ -6,7 +6,7 @@
using Antlr4.Runtime;
using Ubiquity.NET.ANTLR.Utils;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Kaleidoscope.Grammar.ANTLR
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/BinaryOperatorExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/BinaryOperatorExpression.cs
index 275d3409da..3d3e311744 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/BinaryOperatorExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/BinaryOperatorExpression.cs
@@ -3,8 +3,8 @@
using System.Collections.Generic;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConditionalExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConditionalExpression.cs
index db1aea4d99..1f9a1f6e14 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConditionalExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConditionalExpression.cs
@@ -3,8 +3,8 @@
using System.Collections.Generic;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConstantExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConstantExpression.cs
index 0685938c01..453a288897 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConstantExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ConstantExpression.cs
@@ -4,8 +4,8 @@
using System.Collections.Generic;
using System.Globalization;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ForInExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ForInExpression.cs
index e63c7965af..d9f517fad3 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ForInExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ForInExpression.cs
@@ -3,8 +3,8 @@
using System.Collections.Generic;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionCallExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionCallExpression.cs
index ae8f4175f1..8cd0bcfb17 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionCallExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionCallExpression.cs
@@ -4,8 +4,8 @@
using System.Collections.Generic;
using System.Linq;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionDefinition.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionDefinition.cs
index 170a91963c..2c70b5e630 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionDefinition.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/FunctionDefinition.cs
@@ -4,8 +4,8 @@
using System.Collections.Generic;
using System.Collections.Immutable;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/LocalVariableDeclaration.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/LocalVariableDeclaration.cs
index 32bfbe6b1d..0a970cbbe4 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/LocalVariableDeclaration.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/LocalVariableDeclaration.cs
@@ -5,8 +5,8 @@
using System.Collections.Generic;
using System.Text;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ParameterDeclaration.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ParameterDeclaration.cs
index d5a12137f6..2b4a419a8a 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ParameterDeclaration.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ParameterDeclaration.cs
@@ -3,8 +3,8 @@
using System.Collections.Generic;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ProtoType.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ProtoType.cs
index ae59042cd9..6f2d26b172 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ProtoType.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/ProtoType.cs
@@ -5,8 +5,8 @@
using System.Linq;
using System.Text;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/RootNode.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/RootNode.cs
index 4d84b5ad8d..eae7ac17af 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/RootNode.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/RootNode.cs
@@ -4,8 +4,8 @@
using System.Collections.Generic;
using System.Collections.Immutable;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VarInExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VarInExpression.cs
index e380787071..c590c776fc 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VarInExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VarInExpression.cs
@@ -4,8 +4,8 @@
using System.Collections.Generic;
using System.Text;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VariableReferenceExpression.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VariableReferenceExpression.cs
index 31cb6f14b5..ca7f2845ac 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VariableReferenceExpression.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Grammar/AST/VariableReferenceExpression.cs
@@ -3,8 +3,8 @@
using System.Collections.Generic;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Grammar.AST
{
diff --git a/src/Samples/Kaleidoscope/Kaleidoscope.Runtime/ReadEvaluatePrintLoopBase.cs b/src/Samples/Kaleidoscope/Kaleidoscope.Runtime/ReadEvaluatePrintLoopBase.cs
index ee21e7e63a..bf511cb8af 100644
--- a/src/Samples/Kaleidoscope/Kaleidoscope.Runtime/ReadEvaluatePrintLoopBase.cs
+++ b/src/Samples/Kaleidoscope/Kaleidoscope.Runtime/ReadEvaluatePrintLoopBase.cs
@@ -8,8 +8,8 @@
using Kaleidoscope.Grammar;
+using Ubiquity.NET.CommandLine;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Kaleidoscope.Runtime
{
diff --git a/src/Ubiquity.NET.ANTLR.Utils/AntlrParseErrorListenerAdapter.cs b/src/Ubiquity.NET.ANTLR.Utils/AntlrParseErrorListenerAdapter.cs
index 02296c0970..42cb2fafea 100644
--- a/src/Ubiquity.NET.ANTLR.Utils/AntlrParseErrorListenerAdapter.cs
+++ b/src/Ubiquity.NET.ANTLR.Utils/AntlrParseErrorListenerAdapter.cs
@@ -8,8 +8,8 @@
using Antlr4.Runtime;
using Antlr4.Runtime.Misc;
+using Ubiquity.NET.Extensions;
using Ubiquity.NET.Runtime.Utils;
-using Ubiquity.NET.TextUX;
namespace Ubiquity.NET.ANTLR.Utils
{
diff --git a/src/Ubiquity.NET.ANTLR.Utils/LocationExtensions.cs b/src/Ubiquity.NET.ANTLR.Utils/LocationExtensions.cs
index af91874b55..18d0a2410e 100644
--- a/src/Ubiquity.NET.ANTLR.Utils/LocationExtensions.cs
+++ b/src/Ubiquity.NET.ANTLR.Utils/LocationExtensions.cs
@@ -6,7 +6,7 @@
using Antlr4.Runtime;
using Antlr4.Runtime.Tree;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Ubiquity.NET.ANTLR.Utils
{
diff --git a/src/Ubiquity.NET.TextUX.UT/ArgumentExceptionReporterTests.cs b/src/Ubiquity.NET.CommandLine.UT/ArgumentExceptionReporterTests.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX.UT/ArgumentExceptionReporterTests.cs
rename to src/Ubiquity.NET.CommandLine.UT/ArgumentExceptionReporterTests.cs
index ef23c224ab..9e94e6a576 100644
--- a/src/Ubiquity.NET.TextUX.UT/ArgumentExceptionReporterTests.cs
+++ b/src/Ubiquity.NET.CommandLine.UT/ArgumentExceptionReporterTests.cs
@@ -6,7 +6,9 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
-namespace Ubiquity.NET.TextUX.UT
+using Ubiquity.NET.CommandLine;
+
+namespace Ubiquity.NET.Commandline.UT
{
[TestClass]
public class ArgumentExceptionReporterTests
diff --git a/src/Ubiquity.NET.CommandLine/ArgsParsing.cs b/src/Ubiquity.NET.CommandLine/ArgsParsing.cs
index c6b940874c..12b992c821 100644
--- a/src/Ubiquity.NET.CommandLine/ArgsParsing.cs
+++ b/src/Ubiquity.NET.CommandLine/ArgsParsing.cs
@@ -7,8 +7,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
-using Ubiquity.NET.TextUX;
-
namespace Ubiquity.NET.CommandLine
{
/// Results of invoking the default handlers for or
diff --git a/src/Ubiquity.NET.TextUX/ArgumentExceptionReporter.cs b/src/Ubiquity.NET.CommandLine/ArgumentExceptionReporter.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX/ArgumentExceptionReporter.cs
rename to src/Ubiquity.NET.CommandLine/ArgumentExceptionReporter.cs
index 8ad3f93595..754b970f97 100644
--- a/src/Ubiquity.NET.TextUX/ArgumentExceptionReporter.cs
+++ b/src/Ubiquity.NET.CommandLine/ArgumentExceptionReporter.cs
@@ -4,7 +4,7 @@
using System;
using System.Text;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
/// Implementation of that throws for any errors reported.
public class ArgumentExceptionReporter
diff --git a/src/Ubiquity.NET.TextUX/ColoredConsoleReporter.cs b/src/Ubiquity.NET.CommandLine/ColoredConsoleReporter.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/ColoredConsoleReporter.cs
rename to src/Ubiquity.NET.CommandLine/ColoredConsoleReporter.cs
index 8c6007fa39..86297fdbf4 100644
--- a/src/Ubiquity.NET.TextUX/ColoredConsoleReporter.cs
+++ b/src/Ubiquity.NET.CommandLine/ColoredConsoleReporter.cs
@@ -9,7 +9,7 @@
using Ubiquity.NET.Extensions;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
/// Implementation of that uses colorized console output
public sealed class ColoredConsoleReporter
diff --git a/src/Ubiquity.NET.TextUX/ConsoleReporter.cs b/src/Ubiquity.NET.CommandLine/ConsoleReporter.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX/ConsoleReporter.cs
rename to src/Ubiquity.NET.CommandLine/ConsoleReporter.cs
index 754434009c..6948f9496e 100644
--- a/src/Ubiquity.NET.TextUX/ConsoleReporter.cs
+++ b/src/Ubiquity.NET.CommandLine/ConsoleReporter.cs
@@ -4,7 +4,7 @@
using System;
using System.Diagnostics.CodeAnalysis;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
/// Implementation of that reports messages to a
///
diff --git a/src/Ubiquity.NET.TextUX/DiagnosticMessage.cs b/src/Ubiquity.NET.CommandLine/DiagnosticMessage.cs
similarity index 98%
rename from src/Ubiquity.NET.TextUX/DiagnosticMessage.cs
rename to src/Ubiquity.NET.CommandLine/DiagnosticMessage.cs
index deb8ff05c0..03ff4308e1 100644
--- a/src/Ubiquity.NET.TextUX/DiagnosticMessage.cs
+++ b/src/Ubiquity.NET.CommandLine/DiagnosticMessage.cs
@@ -6,7 +6,9 @@
using System.Globalization;
using System.Linq;
-namespace Ubiquity.NET.TextUX
+using Ubiquity.NET.Extensions;
+
+namespace Ubiquity.NET.CommandLine
{
/// Tool Message category
public enum MsgLevel
diff --git a/src/Ubiquity.NET.TextUX/DiagnosticMessageCollection.cs b/src/Ubiquity.NET.CommandLine/DiagnosticMessageCollection.cs
similarity index 98%
rename from src/Ubiquity.NET.TextUX/DiagnosticMessageCollection.cs
rename to src/Ubiquity.NET.CommandLine/DiagnosticMessageCollection.cs
index e3243c431e..6de2b4e4f0 100644
--- a/src/Ubiquity.NET.TextUX/DiagnosticMessageCollection.cs
+++ b/src/Ubiquity.NET.CommandLine/DiagnosticMessageCollection.cs
@@ -6,7 +6,7 @@
using System.Collections.Immutable;
using System.Text;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
/// Reporter that collects diagnostic information without reporting it in any UI/UX
public class DiagnosticMessageCollection
diff --git a/src/Ubiquity.NET.TextUX/DiagnosticReporterExtensions.cs b/src/Ubiquity.NET.CommandLine/DiagnosticReporterExtensions.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/DiagnosticReporterExtensions.cs
rename to src/Ubiquity.NET.CommandLine/DiagnosticReporterExtensions.cs
index 3dfca87664..dd842f8dba 100644
--- a/src/Ubiquity.NET.TextUX/DiagnosticReporterExtensions.cs
+++ b/src/Ubiquity.NET.CommandLine/DiagnosticReporterExtensions.cs
@@ -7,9 +7,10 @@
using System.Globalization;
using System.Runtime.CompilerServices;
-using Ubiquity.NET.TextUX.InterpolatedStringHandlers;
+using Ubiquity.NET.CommandLine.InterpolatedStringHandlers;
+using Ubiquity.NET.Extensions;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
/// Extensions to for specific message levels
public static class DiagnosticReporterExtensions
diff --git a/src/Ubiquity.NET.TextUX/IDiagnosticReporter.cs b/src/Ubiquity.NET.CommandLine/IDiagnosticReporter.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX/IDiagnosticReporter.cs
rename to src/Ubiquity.NET.CommandLine/IDiagnosticReporter.cs
index fa0393ea14..2c8ea931dd 100644
--- a/src/Ubiquity.NET.TextUX/IDiagnosticReporter.cs
+++ b/src/Ubiquity.NET.CommandLine/IDiagnosticReporter.cs
@@ -3,7 +3,7 @@
using System.Text;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
/// Interface for UX message reporting
///
diff --git a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/DiagnosticReporterInterpolatedStringHandler.cs b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/DiagnosticReporterInterpolatedStringHandler.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/DiagnosticReporterInterpolatedStringHandler.cs
rename to src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/DiagnosticReporterInterpolatedStringHandler.cs
index 335c4854f7..a09fe96a23 100644
--- a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/DiagnosticReporterInterpolatedStringHandler.cs
+++ b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/DiagnosticReporterInterpolatedStringHandler.cs
@@ -7,7 +7,7 @@
using System.Runtime.CompilerServices;
using System.Text;
-namespace Ubiquity.NET.TextUX.InterpolatedStringHandlers
+namespace Ubiquity.NET.CommandLine.InterpolatedStringHandlers
{
/// Interpolated string handler for an
///
diff --git a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/ErrorReportingInterpolatedStringHandler.cs b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/ErrorReportingInterpolatedStringHandler.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/ErrorReportingInterpolatedStringHandler.cs
rename to src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/ErrorReportingInterpolatedStringHandler.cs
index c1cfd7f867..b0f43e9387 100644
--- a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/ErrorReportingInterpolatedStringHandler.cs
+++ b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/ErrorReportingInterpolatedStringHandler.cs
@@ -6,7 +6,7 @@
using System.Runtime.CompilerServices;
using System.Text;
-namespace Ubiquity.NET.TextUX.InterpolatedStringHandlers
+namespace Ubiquity.NET.CommandLine.InterpolatedStringHandlers
{
/// Interpolated string handler for an using a fixed
///
diff --git a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/InformationReportingInterpolatedStringHandler.cs b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/InformationReportingInterpolatedStringHandler.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/InformationReportingInterpolatedStringHandler.cs
rename to src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/InformationReportingInterpolatedStringHandler.cs
index 89ef0b64de..5eb9bb4dbe 100644
--- a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/InformationReportingInterpolatedStringHandler.cs
+++ b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/InformationReportingInterpolatedStringHandler.cs
@@ -6,7 +6,7 @@
using System.Runtime.CompilerServices;
using System.Text;
-namespace Ubiquity.NET.TextUX.InterpolatedStringHandlers
+namespace Ubiquity.NET.CommandLine.InterpolatedStringHandlers
{
/// Interpolated string handler for an using a fixed
///
diff --git a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/VerboseReportingInterpolatedStringHandler.cs b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/VerboseReportingInterpolatedStringHandler.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/VerboseReportingInterpolatedStringHandler.cs
rename to src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/VerboseReportingInterpolatedStringHandler.cs
index 8f23122c60..2b49cd0c25 100644
--- a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/VerboseReportingInterpolatedStringHandler.cs
+++ b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/VerboseReportingInterpolatedStringHandler.cs
@@ -6,7 +6,7 @@
using System.Runtime.CompilerServices;
using System.Text;
-namespace Ubiquity.NET.TextUX.InterpolatedStringHandlers
+namespace Ubiquity.NET.CommandLine.InterpolatedStringHandlers
{
/// Interpolated string handler for an using a fixed
///
diff --git a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/WarningReportingInterpolatedStringHandler.cs b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/WarningReportingInterpolatedStringHandler.cs
similarity index 99%
rename from src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/WarningReportingInterpolatedStringHandler.cs
rename to src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/WarningReportingInterpolatedStringHandler.cs
index cfd96344cc..7999984240 100644
--- a/src/Ubiquity.NET.TextUX/InterpolatedStringHandlers/WarningReportingInterpolatedStringHandler.cs
+++ b/src/Ubiquity.NET.CommandLine/InterpolatedStringHandlers/WarningReportingInterpolatedStringHandler.cs
@@ -6,7 +6,7 @@
using System.Runtime.CompilerServices;
using System.Text;
-namespace Ubiquity.NET.TextUX.InterpolatedStringHandlers
+namespace Ubiquity.NET.CommandLine.InterpolatedStringHandlers
{
/// Interpolated string handler for an using a fixed
///
diff --git a/src/Ubiquity.NET.CommandLine/PackageReadMe.md b/src/Ubiquity.NET.CommandLine/PackageReadMe.md
index 81ae082fd3..6f41b0910a 100644
--- a/src/Ubiquity.NET.CommandLine/PackageReadMe.md
+++ b/src/Ubiquity.NET.CommandLine/PackageReadMe.md
@@ -1,7 +1,9 @@
# Ubiquity.NET.CommandLine
-Command line parsing support extending System.CommandLine to better isolate the parsing
-from the app specific validation and execution.
+Common Text based (console) UX support. This provides a number of support classes for
+Text based UI/UXm including command line parsing extensions. This is generally only relevant
+for console based apps.
+Example Command line parsing:
``` C#
var reporter = new ColoredConsoleReporter(MsgLevel.Information);
if(!ArgsParsing.TryParse( args, reporter, out Options? options, out int exitCode ))
@@ -16,5 +18,28 @@ if(!ArgsParsing.TryParse( args, reporter, out Options? options, out int
// App can then dispatch behavior based on the commands/options etc... as needed.
// NO ASSUMPTION IS MADE ABOUT THE USE OF COMMANDS NOR THE BEHAVIOR OF THEM. The app
// is entirely in control of how they are used.
-
```
+
+## Supported Functionality
+`IDiagnosticReporter` interface is at the core of the UX. It is similar in many ways to many
+of the logging interfaces available. The primary distinction is with the ***intention*** of
+use. `IDiagnosticReporter` specifically assumes the use for UI/UX rather than a
+debugging/diagnostic log. These have VERY distinct use cases and purposes and generally show
+very different information. (Not to mention the overlly complex requirements of
+the anti-pattern DI container assumed in `Microsoft.Extensions.Logging`)
+
+### Messages
+All messages for the UX use a simple immutable structure to store the details of a message
+represented as `DiagnosticMessage`.
+
+### Pre-Built Reporters
+There are a few pre-built implementation of the `IDiagnosticReporter` interface.
+* `TextWriterReporter`
+ * Base class for writing UX to a `TextWriter`
+* `ConsoleReporter`
+ * Reporter that reports errors to `Console.Error` and all other nessages to
+ `Console.Out`
+* `ColoredConsoleReporter`
+ * `ConsoleReporter` that colorizes output using ANSI color codes
+ * Colors are customizable, but contains a common default
+
diff --git a/src/Ubiquity.NET.CommandLine/ReportingSettings.cs b/src/Ubiquity.NET.CommandLine/ReportingSettings.cs
index cf7915584c..51f19f18c2 100644
--- a/src/Ubiquity.NET.CommandLine/ReportingSettings.cs
+++ b/src/Ubiquity.NET.CommandLine/ReportingSettings.cs
@@ -7,8 +7,6 @@
using System.IO;
using System.Text;
-using Ubiquity.NET.TextUX;
-
namespace Ubiquity.NET.CommandLine
{
// internal extension for IDiagnosticReporter
diff --git a/src/Ubiquity.NET.CommandLine/SymbolValidationExtensions.cs b/src/Ubiquity.NET.CommandLine/SymbolValidationExtensions.cs
index d2e7d13eba..0e9324aa12 100644
--- a/src/Ubiquity.NET.CommandLine/SymbolValidationExtensions.cs
+++ b/src/Ubiquity.NET.CommandLine/SymbolValidationExtensions.cs
@@ -6,6 +6,7 @@
using System.CommandLine;
using System.CommandLine.Parsing;
using System.IO;
+using System.Runtime.CompilerServices;
namespace Ubiquity.NET.CommandLine
{
@@ -190,6 +191,7 @@ public static void EnsureFolderExists( OptionResult result )
}
// returns true if the exception is one of the documented types for Directory.CreateDirectory().
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool IsDirectoryCreationException(Exception ex)
{
return ex is IOException or
diff --git a/src/Ubiquity.NET.TextUX/TextWriterReporter.cs b/src/Ubiquity.NET.CommandLine/TextWriterReporter.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX/TextWriterReporter.cs
rename to src/Ubiquity.NET.CommandLine/TextWriterReporter.cs
index 175ace9457..e09c60989a 100644
--- a/src/Ubiquity.NET.TextUX/TextWriterReporter.cs
+++ b/src/Ubiquity.NET.CommandLine/TextWriterReporter.cs
@@ -7,9 +7,9 @@
using System.IO;
using System.Text;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.CommandLine
{
- /// Base class for based reporting
+ /// Base class for reporting diagnostics via an instance of
public class TextWriterReporter
: IDiagnosticReporter
{
diff --git a/src/Ubiquity.NET.CommandLine/Ubiquity.NET.CommandLine.csproj b/src/Ubiquity.NET.CommandLine/Ubiquity.NET.CommandLine.csproj
index 8402a37bed..2268b0246d 100644
--- a/src/Ubiquity.NET.CommandLine/Ubiquity.NET.CommandLine.csproj
+++ b/src/Ubiquity.NET.CommandLine/Ubiquity.NET.CommandLine.csproj
@@ -29,11 +29,11 @@
+
-
all
false
diff --git a/src/Ubiquity.NET.TextUX/AssemblyExtensions.cs b/src/Ubiquity.NET.Extensions/AssemblyExtensions.cs
similarity index 84%
rename from src/Ubiquity.NET.TextUX/AssemblyExtensions.cs
rename to src/Ubiquity.NET.Extensions/AssemblyExtensions.cs
index 15191612ec..b044128a57 100644
--- a/src/Ubiquity.NET.TextUX/AssemblyExtensions.cs
+++ b/src/Ubiquity.NET.Extensions/AssemblyExtensions.cs
@@ -1,10 +1,11 @@
// Copyright (c) Ubiquity.NET Contributors. All rights reserved.
// Licensed under the Apache-2.0 WITH LLVM-exception license. See the LICENSE.md file in the project root for full license information.
-using System.Diagnostics.CodeAnalysis;
+using System;
using System.Reflection;
+using System.Runtime.CompilerServices;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.Extensions
{
// This does NOT use the new C# 14 extension syntax due to several reasons
// 1) Code lens does not work https://github.com/dotnet/roslyn/issues/79006 [Sadly marked as "not planned" - e.g., dead-end]
@@ -17,15 +18,16 @@ namespace Ubiquity.NET.TextUX
// of that is sorted out.
/// Utility class to provide extensions for consumers
- [SuppressMessage( "Design", "CA1034:Nested types should not be visible", Justification = "BS, extension" )]
public static class AssemblyExtensions
{
/// Gets the value of the from an assembly
/// Assembly to get informational version from
+ /// Expression for ; Normally set by compiler.
/// Information version of the assembly or an empty string if not available
- [SuppressMessage( "Performance", "CA1822:Mark members as static", Justification = "BS, extension" )]
- public static string GetInformationalVersion(this Assembly self)
+ public static string GetInformationalVersion(this Assembly self, [CallerArgumentExpression(nameof(self))] string? exp = null)
{
+ ArgumentNullException.ThrowIfNull(self, exp);
+
var assemblyVersionAttribute = self.GetCustomAttribute();
return assemblyVersionAttribute is not null
diff --git a/src/Ubiquity.NET.TextUX/ProcessInfo.cs b/src/Ubiquity.NET.Extensions/ProcessInfo.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX/ProcessInfo.cs
rename to src/Ubiquity.NET.Extensions/ProcessInfo.cs
index 021df8c244..7f61b1391d 100644
--- a/src/Ubiquity.NET.TextUX/ProcessInfo.cs
+++ b/src/Ubiquity.NET.Extensions/ProcessInfo.cs
@@ -5,7 +5,7 @@
using System.IO;
using System.Reflection;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.Extensions
{
/// Process related extensions/support
public static class ProcessInfo
diff --git a/src/Ubiquity.NET.Extensions/Readme.md b/src/Ubiquity.NET.Extensions/Readme.md
index 9ec012ce35..2d4593c7a0 100644
--- a/src/Ubiquity.NET.Extensions/Readme.md
+++ b/src/Ubiquity.NET.Extensions/Readme.md
@@ -14,37 +14,42 @@ multiple other Ubiquity.NET projects.
for interoperability across OS platforms and compatibility with "on disk" representations.
* A custom ValidatedNotNullAttribute to allow compiler to assume a parameter
value is validated as not null.
-* Fluent style parameter value validation extensions.
- - These are useful when passing parameters to a function that produces a
- result that is fed to the base constructor. These are also useful in body
- expressions to validate input parameters.
* DictionaryBuilder to enable dictionary initializer style initialization of
`ImmutableDictionary` with significantly reduced overhead.
- - This leverages an `ImmutableDictionary.Builder` under the hood to build the
- dictionary. When the `ToImmutable()` method is called the builder is converted to the
- immutable state without any overhead of a copy or re-construction of hash tables etc...
-* KvpArrayBuilder to enable array initializer style initialization of
+ - This leverages an `ImmutableDictionary.Builder` under the hood to build
+ the dictionary. When the `ToImmutable()` method is called the builder is converted to
+ the immutable state without any overhead of a copy or re-construction of hash tables
+ etc...
+* KvpArrayBuilder to enable initializer style initialization of
`ImmutableArray>` with significantly reduced overhead.
- - This leverages an `ImmutableArray.Builder` under the hood to build the array directly.
- When the `ToImmutable()` method is called the builder is converted to the immutable state without any
- overhead of a copy.
- - Since this is an array and not a dictionary there is no overhead for allocating, initializing or copying
- any hash mapping for the keys.
+ - This leverages an `ImmutableArray.Builder` under the hood to build the array
+ directly. When the `ToImmutable()` method is called the builder is ***converted*** to
+ the immutable state without any overhead of a copy.
+ - Since this is an array and not a dictionary there is no overhead for allocating,
+ initializing or copying any hash mapping for the keys.
## Fluent Validation
The library includes extensions that support fluent validation to allow use in property
accessors and constructors that forward values to a base or another constructor. This is
normally used when the value itself isn't passed on but some transformed value is.
-* `ThrowIfNull()`
-* `ThrowIfOutOfRange()`
-* `ThrowIfNotDefined()`
+|Method | Description |
+|-------|-------------|
+|`ThrowIfNull()`| Thows an exception if the argument is null or returns it as-is |
+|`ThrowIfOutOfRange()` | Thorws an exception if a value is out of the specified range |
+|`ThrowIfNotDefined()` | Throws an exception if an enum value is undefined |
-## PolyFill
-While it isn't `impossible` to make polyfill this to work on .NET standard 2.0 it is a HUGE
-amount of effort to do so and there's no compelling reason to do so. Roslyn extensions/VSIX
-extensions are the most likely candidates left. VS extensions are shifting to external
-processes for extensions for this reason, leaving Roslyn generators. The bottom line is
-that too much of MODERN .NET and C# is incompatible with .NET Standard 2.0 that a distinct
-PolyFill library can only cover some of it. (Even the PolySharp generator covers only
-some of the missing functionality)
+## Why not PolyFill?
+While it isn't impossible to make polyfill for this to work on .NET standard 2.0 it
+***is*** a HUGE amount of effort to do so and there's no compelling reason to do so. Roslyn
+extensions/VSIX extensions are the most likely candidates left. VS extensions are shifting
+to external processes for extensions for this reason, leaving Roslyn generators. The bottom
+line is that too much of MODERN .NET and C# is incompatible with .NET Standard 2.0 that a
+distinct PolyFill library can only cover some of it. (Even the PolySharp generator covers
+only some of the missing functionality)
+
+## Runtime Dependencies
+None
+
+There are dependencies on various compile time analyzers but no runtime dependencies are
+allowed.
diff --git a/src/Ubiquity.NET.TextUX/SourcePosition.cs b/src/Ubiquity.NET.Extensions/SourcePosition.cs
similarity index 88%
rename from src/Ubiquity.NET.TextUX/SourcePosition.cs
rename to src/Ubiquity.NET.Extensions/SourcePosition.cs
index 1b5752c14c..ab48f81ccf 100644
--- a/src/Ubiquity.NET.TextUX/SourcePosition.cs
+++ b/src/Ubiquity.NET.Extensions/SourcePosition.cs
@@ -6,14 +6,14 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.Extensions
{
/// Represents a single point position in a source input
///
/// Positions use a Line numbering similar to most editors that is 1 based.([1..n][0 = uninitialized/unknown]).
/// Column position, also like most editors, use a 0 based value ([0..n-1]).
- /// The index, if available indicates the index into a theoretical vector of characters for the position.
- /// Not all location information includes such a thing so it may not have a value.
+ /// The index, if available, indicates the 0 based index into a theoretical vector of characters
+ /// for the position. Not all location information includes such a thing so it may not have a value.
///
[DebuggerDisplay("{DebuggerToString(),nq}")]
public readonly record struct SourcePosition
@@ -33,7 +33,7 @@ public SourcePosition(int line, int column, int? index = default)
/// Gets the 0 based index from the start of the source to this position if available
public int? Index { get; init; }
- /// Gets the column value of this position
+ /// Gets the 0 based column value of this position
public required int Column
{
get;
diff --git a/src/Ubiquity.NET.TextUX/SourceRange.cs b/src/Ubiquity.NET.Extensions/SourceRange.cs
similarity index 97%
rename from src/Ubiquity.NET.TextUX/SourceRange.cs
rename to src/Ubiquity.NET.Extensions/SourceRange.cs
index 19e8421473..ab9b839c2e 100644
--- a/src/Ubiquity.NET.TextUX/SourceRange.cs
+++ b/src/Ubiquity.NET.Extensions/SourceRange.cs
@@ -5,11 +5,8 @@
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
-namespace Ubiquity.NET.TextUX
+namespace Ubiquity.NET.Extensions
{
- // Line number of the starting line [1..n][0 = uninitialized/unknown]
- // Column position of the location [0..n-1]
-
/// Abstraction to hold a source location range as a pair of values
///
/// It is possible that some sources do not provide dual points to make a proper range. This supports such
diff --git a/src/Ubiquity.NET.InteropHelpers/NativeContext.cs b/src/Ubiquity.NET.InteropHelpers/NativeContext.cs
index df42cc3ffd..9fddaeb516 100644
--- a/src/Ubiquity.NET.InteropHelpers/NativeContext.cs
+++ b/src/Ubiquity.NET.InteropHelpers/NativeContext.cs
@@ -23,15 +23,15 @@ namespace Ubiquity.NET.InteropHelpers
///
/// To interop with native ABI callbacks it is important to ensure that any
/// context pointer provided is valid when the callback is called by native
- /// layers. This type provides support for doing so using a .
- /// The handle is allocated in and then released
- /// in . The actual target is obtainable via
- /// which is normally used in the callback to
- /// get back the original managed object the handle refers to.
+ /// layers. This type provides support, as extension methods, for doing so using a
+ /// . The handle is allocated in
+ /// and then released in . The actual target is
+ /// obtainable via which is normally used in
+ /// the callback to get back the original managed object the handle refers to.
///
- /// Since the handle is allocated the GC will keep it alive until freed. Thus,
- /// the callback can use the object it gets. Normally,
- /// is called from a final callback method but it is also possible that the API gurantess
+ /// Since the handle is allocated the GC will keep the object it refers to alive
+ /// until freed. Thus, the callback can use the object it gets. Normally,
+ /// is called from a final callback method but it is also possible that the API guarantees
/// only a single call to a provided method where it would release the native context
/// after materializing it to a managed form. (After materialization, normal GC rules
/// apply to the managed instance such that while it is in scope it is not released by
diff --git a/src/Ubiquity.NET.Llvm.JIT.Tests/OrcJitTests.cs b/src/Ubiquity.NET.Llvm.JIT.Tests/OrcJitTests.cs
index 09f63cabf8..ba30e76c95 100644
--- a/src/Ubiquity.NET.Llvm.JIT.Tests/OrcJitTests.cs
+++ b/src/Ubiquity.NET.Llvm.JIT.Tests/OrcJitTests.cs
@@ -3,6 +3,7 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
+using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -37,7 +38,7 @@ public void TestStringPool_Dispose_leaves_0_refcount( )
using(SymbolStringPoolEntry entry2 = entry.AddRef())
{
var activeSyms = jit.Session.SymbolStringPool.GetSymbolsInPool();
- Assert.AreEqual(initSyms.Length + 1, activeSyms.Length);
+ Assert.HasCount( initSyms.Length + 1, activeSyms );
} // end of using scope should decrement ref count (once)
} // end of using scope should decrement ref count (once)
#pragma warning restore IDE0063 // Use simple 'using' statement
diff --git a/src/Ubiquity.NET.Llvm.slnx b/src/Ubiquity.NET.Llvm.slnx
index f5a1268e66..b683be6aa7 100644
--- a/src/Ubiquity.NET.Llvm.slnx
+++ b/src/Ubiquity.NET.Llvm.slnx
@@ -78,7 +78,6 @@
-
@@ -89,5 +88,4 @@
-
diff --git a/src/Ubiquity.NET.Runtime.Utils/AstNode.cs b/src/Ubiquity.NET.Runtime.Utils/AstNode.cs
index 1d2d2e600c..810f744da2 100644
--- a/src/Ubiquity.NET.Runtime.Utils/AstNode.cs
+++ b/src/Ubiquity.NET.Runtime.Utils/AstNode.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Ubiquity.NET.Runtime.Utils
{
diff --git a/src/Ubiquity.NET.Runtime.Utils/ErrorNode.cs b/src/Ubiquity.NET.Runtime.Utils/ErrorNode.cs
index 265e2bdc21..cf8756ce74 100644
--- a/src/Ubiquity.NET.Runtime.Utils/ErrorNode.cs
+++ b/src/Ubiquity.NET.Runtime.Utils/ErrorNode.cs
@@ -3,8 +3,8 @@
using System;
using System.Collections.Generic;
-
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.CommandLine;
+using Ubiquity.NET.Extensions;
namespace Ubiquity.NET.Runtime.Utils
{
diff --git a/src/Ubiquity.NET.Runtime.Utils/IAstNode.cs b/src/Ubiquity.NET.Runtime.Utils/IAstNode.cs
index 48803ade7d..929344a445 100644
--- a/src/Ubiquity.NET.Runtime.Utils/IAstNode.cs
+++ b/src/Ubiquity.NET.Runtime.Utils/IAstNode.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Ubiquity.NET.Runtime.Utils
{
diff --git a/src/Ubiquity.NET.Runtime.Utils/NullNode.cs b/src/Ubiquity.NET.Runtime.Utils/NullNode.cs
index 5fa49bf4e3..1505634bac 100644
--- a/src/Ubiquity.NET.Runtime.Utils/NullNode.cs
+++ b/src/Ubiquity.NET.Runtime.Utils/NullNode.cs
@@ -5,7 +5,7 @@
using System.Collections.Generic;
using System.Threading;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Ubiquity.NET.Runtime.Utils
{
diff --git a/src/Ubiquity.NET.Runtime.Utils/ParseErrorDiagnosticAdapter.cs b/src/Ubiquity.NET.Runtime.Utils/ParseErrorDiagnosticAdapter.cs
index 6009e20865..8334b49cdb 100644
--- a/src/Ubiquity.NET.Runtime.Utils/ParseErrorDiagnosticAdapter.cs
+++ b/src/Ubiquity.NET.Runtime.Utils/ParseErrorDiagnosticAdapter.cs
@@ -4,7 +4,7 @@
using System;
using System.Globalization;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.CommandLine;
namespace Ubiquity.NET.Runtime.Utils
{
diff --git a/src/Ubiquity.NET.Runtime.Utils/SyntaxError.cs b/src/Ubiquity.NET.Runtime.Utils/SyntaxError.cs
index c76968c1b3..af661b5b1e 100644
--- a/src/Ubiquity.NET.Runtime.Utils/SyntaxError.cs
+++ b/src/Ubiquity.NET.Runtime.Utils/SyntaxError.cs
@@ -3,7 +3,7 @@
using System;
-using Ubiquity.NET.TextUX;
+using Ubiquity.NET.Extensions;
namespace Ubiquity.NET.Runtime.Utils
{
diff --git a/src/Ubiquity.NET.Runtime.Utils/Ubiquity.NET.Runtime.Utils.csproj b/src/Ubiquity.NET.Runtime.Utils/Ubiquity.NET.Runtime.Utils.csproj
index c61c61e407..a1be12f68c 100644
--- a/src/Ubiquity.NET.Runtime.Utils/Ubiquity.NET.Runtime.Utils.csproj
+++ b/src/Ubiquity.NET.Runtime.Utils/Ubiquity.NET.Runtime.Utils.csproj
@@ -33,9 +33,9 @@
+
-
all
false
diff --git a/src/Ubiquity.NET.TextUX.UT/AssemblyInfo.cs b/src/Ubiquity.NET.TextUX.UT/AssemblyInfo.cs
deleted file mode 100644
index 69d9f2f2e1..0000000000
--- a/src/Ubiquity.NET.TextUX.UT/AssemblyInfo.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (c) Ubiquity.NET Contributors. All rights reserved.
-// Licensed under the Apache-2.0 WITH LLVM-exception license. See the LICENSE.md file in the project root for full license information.
-
-using System.Runtime.InteropServices;
-
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-// In SDK-style projects such as this one, several assembly attributes that were historically
-// defined in this file are now automatically added during build and populated with
-// values defined in project properties. For details of which attributes are included
-// and how to customise this process see: https://aka.ms/assembly-info-properties
-
-// Setting ComVisible to false makes the types in this assembly not visible to COM
-// components. If you need to access a type in this assembly from COM, set the ComVisible
-// attribute to true on that type.
-
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM.
-
-[assembly: Guid("8ebe7a8e-6ee2-4762-8d6d-333a4497dc96")]
-
-[assembly: Parallelize( Scope = ExecutionScope.ClassLevel )]
diff --git a/src/Ubiquity.NET.TextUX.UT/GlobalSuppressions.cs b/src/Ubiquity.NET.TextUX.UT/GlobalSuppressions.cs
deleted file mode 100644
index 95f78363da..0000000000
--- a/src/Ubiquity.NET.TextUX.UT/GlobalSuppressions.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (c) Ubiquity.NET Contributors. All rights reserved.
-// Licensed under the Apache-2.0 WITH LLVM-exception license. See the LICENSE.md file in the project root for full license information.
-
-/* This file is used by Code Analysis to maintain SuppressMessage
-// attributes that are applied to this project.
-// Project-level suppressions either have no target or are given
-// a specific target and scoped to a namespace, type, member, etc.
-*/
-
-using System.Diagnostics.CodeAnalysis;
-
-[assembly: SuppressMessage( "StyleCop.CSharp.DocumentationRules", "SA1652:Enable XML documentation output", Justification = "Test Code" )]
-[assembly: SuppressMessage( "StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Test Code" )]
-[assembly: SuppressMessage( "Naming", "CA1707:Identifiers should not contain underscores", Justification = "Tests method names are intended to be descriptive" )]
diff --git a/src/Ubiquity.NET.TextUX.UT/Ubiquity.NET.TextUX.UT.csproj b/src/Ubiquity.NET.TextUX.UT/Ubiquity.NET.TextUX.UT.csproj
deleted file mode 100644
index b149659335..0000000000
--- a/src/Ubiquity.NET.TextUX.UT/Ubiquity.NET.TextUX.UT.csproj
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- net8.0
- 13
- enable
-
- false
- $(BuildRootDir)\src\x64.runsettings
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Ubiquity.NET.TextUX/PackageReadMe.md b/src/Ubiquity.NET.TextUX/PackageReadMe.md
deleted file mode 100644
index 4abdde830c..0000000000
--- a/src/Ubiquity.NET.TextUX/PackageReadMe.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Ubiquity.NET.TextUX
-Common Text based (console) UX support. This provides a number of support classes for
-Text based UI/UX. This is generally only relevant for console based apps.
-
-## Supported Functionality
-`IDiagnosticReporter` interface is at the core of the UX. It is similar in many ways to many
-of the logging interfaces available. The primary distinction is with the ***intention*** of
-use. `IDiagnosticReporter` specifically assumes the use for UI/UX rather than a
-debugging/diagnostic log. These have VERY distinct use cases and purposes and generally show
-very different information. (Not to mention the overlly complex requirements of
-the anti-pattern DI container assumed in `Microsoft.Extensions.Logging`)
-
-### Messages
-All messages for the UX use a simple immutable structure to store the details of a message
-represented as `DiagnosticMessage`.
-
-### Pre-Built Reporters
-There are a few pre-built implementation of the `IDiagnosticReporter` interface.
-* `TextWriterReporter`
- * Base class for writing UX to a `TextWriter`
-* `ConsoleReporter`
- * Reporter that reports errors to `Console.Error` and all other nessages to
- `Console.Out`
-* `ColoredConsoleReporter`
- * `ConsoleReporter` that colorizes output using ANSI color codes
- * Colors are customizable, but contains a common default
diff --git a/src/Ubiquity.NET.TextUX/Ubiquity.NET.TextUX.csproj b/src/Ubiquity.NET.TextUX/Ubiquity.NET.TextUX.csproj
deleted file mode 100644
index 4be1b64831..0000000000
--- a/src/Ubiquity.NET.TextUX/Ubiquity.NET.TextUX.csproj
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
- net8.0
-
- preview
- enable
- True
- True
-
-
- true
- 4.9.0
- .NET Foundation,Ubiquity.NET
- false
- General use Support for Text based UX (Console applications)
- Extensions,.NET,Ubiquity.NET, Console
- PackageReadMe.md
- https://github.com/UbiquityDotNET/Llvm.NET
- https://github.com/UbiquityDotNET/Llvm.NET.git
- git
- Apache-2.0 WITH LLVM-exception
- true
- snupkg
-
-
-
-
-
-
-
-
-
-
-
-
-
- all
- false
- Analyzer
-
-
-
-