diff --git a/Directory.Build.props b/Directory.Build.props index e42935c9..45a935d0 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,6 +4,17 @@ 9 warnings true + + CS8785 false diff --git a/DocoptNet.sln b/DocoptNet.sln index e723b406..44397d2e 100644 --- a/DocoptNet.sln +++ b/DocoptNet.sln @@ -31,8 +31,34 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution README.rst = README.rst EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocoptNet.CodeGeneration", "src\DocoptNet.CodeGeneration\DocoptNet.CodeGeneration.csproj", "{37D45A51-EB3E-4D6D-9943-EF2F3967343C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SourceGenerator", "SourceGenerator", "{99846126-1D88-42CC-897C-ACEA7C2DBB2B}" + ProjectSection(SolutionItems) = preProject + eg\SourceGenerator\Directory.Build.props = eg\SourceGenerator\Directory.Build.props + eg\SourceGenerator\Directory.Build.targets = eg\SourceGenerator\Directory.Build.targets + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NavalFate", "eg\SourceGenerator\NavalFate\NavalFate.csproj", "{E41419E5-251C-4093-ADDE-77EF694964E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ArgumentsExample", "eg\SourceGenerator\ArgumentsExample\ArgumentsExample.csproj", "{99A5B165-A15E-4CE1-B68E-E0992F4478D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CalculatorExample", "eg\SourceGenerator\CalculatorExample\CalculatorExample.csproj", "{8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CountedExample", "eg\SourceGenerator\CountedExample\CountedExample.csproj", "{962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OddEvenExample", "eg\SourceGenerator\OddEvenExample\OddEvenExample.csproj", "{E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OptionsExample", "eg\SourceGenerator\OptionsExample\OptionsExample.csproj", "{6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OptionsShortcutExample", "eg\SourceGenerator\OptionsShortcutExample\OptionsShortcutExample.csproj", "{21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QuickExample", "eg\SourceGenerator\QuickExample\QuickExample.csproj", "{86843F8B-9B83-4985-9E68-77F9ACF4DA2D}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocoptNet.Playground", "src\DocoptNet.Playground\DocoptNet.Playground.csproj", "{93595D4E-5AE9-4714-AC8B-1FB24D68A15C}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Git", "eg\SourceGenerator\Git\Git.csproj", "{63B571D9-DA1B-4209-B4E2-59F0AC529E06}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -95,6 +121,114 @@ Global {5A641DFB-CB1A-4044-AF52-554CC8904449}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {5A641DFB-CB1A-4044-AF52-554CC8904449}.Release|Mixed Platforms.Build.0 = Release|Any CPU {5A641DFB-CB1A-4044-AF52-554CC8904449}.Release|x86.ActiveCfg = Release|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Debug|x86.ActiveCfg = Debug|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Debug|x86.Build.0 = Debug|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Release|Any CPU.Build.0 = Release|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Release|x86.ActiveCfg = Release|Any CPU + {37D45A51-EB3E-4D6D-9943-EF2F3967343C}.Release|x86.Build.0 = Release|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Debug|x86.ActiveCfg = Debug|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Debug|x86.Build.0 = Debug|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Release|Any CPU.Build.0 = Release|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Release|x86.ActiveCfg = Release|Any CPU + {E41419E5-251C-4093-ADDE-77EF694964E3}.Release|x86.Build.0 = Release|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Debug|x86.ActiveCfg = Debug|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Debug|x86.Build.0 = Debug|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Release|Any CPU.Build.0 = Release|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Release|x86.ActiveCfg = Release|Any CPU + {99A5B165-A15E-4CE1-B68E-E0992F4478D9}.Release|x86.Build.0 = Release|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Debug|x86.ActiveCfg = Debug|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Debug|x86.Build.0 = Debug|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Release|Any CPU.Build.0 = Release|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Release|x86.ActiveCfg = Release|Any CPU + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E}.Release|x86.Build.0 = Release|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Debug|x86.ActiveCfg = Debug|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Debug|x86.Build.0 = Debug|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Release|Any CPU.Build.0 = Release|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Release|x86.ActiveCfg = Release|Any CPU + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18}.Release|x86.Build.0 = Release|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Debug|x86.Build.0 = Debug|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Release|Any CPU.Build.0 = Release|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Release|x86.ActiveCfg = Release|Any CPU + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B}.Release|x86.Build.0 = Release|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Debug|x86.Build.0 = Debug|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Release|Any CPU.Build.0 = Release|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Release|x86.ActiveCfg = Release|Any CPU + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE}.Release|x86.Build.0 = Release|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Debug|x86.ActiveCfg = Debug|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Debug|x86.Build.0 = Debug|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Release|Any CPU.Build.0 = Release|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Release|x86.ActiveCfg = Release|Any CPU + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74}.Release|x86.Build.0 = Release|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Debug|x86.ActiveCfg = Debug|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Debug|x86.Build.0 = Debug|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Release|Any CPU.Build.0 = Release|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Release|x86.ActiveCfg = Release|Any CPU + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D}.Release|x86.Build.0 = Release|Any CPU {93595D4E-5AE9-4714-AC8B-1FB24D68A15C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {93595D4E-5AE9-4714-AC8B-1FB24D68A15C}.Debug|Any CPU.Build.0 = Debug|Any CPU {93595D4E-5AE9-4714-AC8B-1FB24D68A15C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -107,12 +241,34 @@ Global {93595D4E-5AE9-4714-AC8B-1FB24D68A15C}.Release|Mixed Platforms.Build.0 = Release|Any CPU {93595D4E-5AE9-4714-AC8B-1FB24D68A15C}.Release|x86.ActiveCfg = Release|Any CPU {93595D4E-5AE9-4714-AC8B-1FB24D68A15C}.Release|x86.Build.0 = Release|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Debug|x86.ActiveCfg = Debug|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Debug|x86.Build.0 = Debug|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Release|Any CPU.Build.0 = Release|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Release|x86.ActiveCfg = Release|Any CPU + {63B571D9-DA1B-4209-B4E2-59F0AC529E06}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {2B454F8B-D702-4281-80DF-367142007B0C} = {AE631D61-6BE6-438F-A535-955BB9A0218F} + {99846126-1D88-42CC-897C-ACEA7C2DBB2B} = {AE631D61-6BE6-438F-A535-955BB9A0218F} + {E41419E5-251C-4093-ADDE-77EF694964E3} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {99A5B165-A15E-4CE1-B68E-E0992F4478D9} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {8BCB1D8B-0233-48C5-B5C6-6E3EDB566D3E} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {962D6BAB-A7DE-41BC-9E91-567A6EEE4C18} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {E4EB11FF-6FD7-42F5-A5CD-2C7C2B52568B} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {6C3733DD-C7BD-47C7-BF9A-691A3D0ACCCE} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {21E4EA57-6291-4C58-BFC4-CA8ACF48DB74} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {86843F8B-9B83-4985-9E68-77F9ACF4DA2D} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} + {63B571D9-DA1B-4209-B4E2-59F0AC529E06} = {99846126-1D88-42CC-897C-ACEA7C2DBB2B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3DEED27A-6D3F-4F2E-A5D5-1F71648F2413} diff --git a/eg/SourceGenerator/ArgumentsExample/ArgumentsExample.csproj b/eg/SourceGenerator/ArgumentsExample/ArgumentsExample.csproj new file mode 100644 index 00000000..ca2efb44 --- /dev/null +++ b/eg/SourceGenerator/ArgumentsExample/ArgumentsExample.csproj @@ -0,0 +1,14 @@ + + + + Exe + net5.0 + + + + + + + + + diff --git a/eg/SourceGenerator/ArgumentsExample/Program.cs b/eg/SourceGenerator/ArgumentsExample/Program.cs new file mode 100644 index 00000000..42849e89 --- /dev/null +++ b/eg/SourceGenerator/ArgumentsExample/Program.cs @@ -0,0 +1,36 @@ +using System; +using DocoptNet.Generated; +using ArgumentsExample; + +ProgramArguments arguments; + +try +{ + arguments = ProgramArguments.Apply(args); +} +catch (DocoptExitException e) +{ + Console.WriteLine(e.Message); + return e.ErrorCode; +} +catch (DocoptInputErrorException e) +{ + Console.Error.WriteLine(e); + return 0xbd; +} + +foreach (var (name, value) in arguments) + Console.WriteLine($"{name} = {value}"); + +Console.WriteLine($@"{{ + Help = {arguments.OptHelp }, + V = {arguments.OptV }, + Q = {arguments.OptQ }, + R = {arguments.OptR }, + Left = {arguments.OptLeft }, + Right = {arguments.OptRight }, + Correction = {arguments.ArgCorrection}, + File = [{string.Join(", ", arguments.ArgFile)}], +}}"); + +return 0; diff --git a/eg/SourceGenerator/ArgumentsExample/Program.docopt.txt b/eg/SourceGenerator/ArgumentsExample/Program.docopt.txt new file mode 100644 index 00000000..ecdbbaf8 --- /dev/null +++ b/eg/SourceGenerator/ArgumentsExample/Program.docopt.txt @@ -0,0 +1,17 @@ +Usage: ArgumentsExample [-vqrh] [FILE] ... + ArgumentsExample (--left | --right) CORRECTION FILE + +Process FILE and optionally apply correction to either left-hand side or +right-hand side. + +Arguments: + FILE optional input file + CORRECTION correction angle, needs FILE, --left or --right to be present + +Options: + -h --help + -v verbose mode + -q quiet mode + -r make report + --left use left-hand side + --right use right-hand side diff --git a/eg/SourceGenerator/CalculatorExample/CalculatorExample.csproj b/eg/SourceGenerator/CalculatorExample/CalculatorExample.csproj new file mode 100644 index 00000000..ca2efb44 --- /dev/null +++ b/eg/SourceGenerator/CalculatorExample/CalculatorExample.csproj @@ -0,0 +1,14 @@ + + + + Exe + net5.0 + + + + + + + + + diff --git a/eg/SourceGenerator/CalculatorExample/Program.cs b/eg/SourceGenerator/CalculatorExample/Program.cs new file mode 100644 index 00000000..a0d7ef17 --- /dev/null +++ b/eg/SourceGenerator/CalculatorExample/Program.cs @@ -0,0 +1,36 @@ +using System; +using DocoptNet.Generated; +using CalculatorExample; + +ProgramArguments arguments; + +try +{ + arguments = ProgramArguments.Apply(args); +} +catch (DocoptExitException e) +{ + Console.WriteLine(e.Message); + return e.ErrorCode; +} +catch (DocoptInputErrorException e) +{ + Console.Error.WriteLine(e); + return 0xbd; +} + +foreach (var (name, value) in arguments) + Console.WriteLine($"{name} = {value}"); + +Console.WriteLine($@"{{ + Help = {arguments.OptHelp }, + + = {arguments.CmdPlus }, + - = {arguments.CmdMinus }, + * = {arguments.CmdStar }, + / = {arguments.CmdSlash }, + Function = {arguments.ArgFunction}, + Comma = {arguments.CmdComma }, + Value = [{string.Join(", ", arguments.ArgValue)}], +}}"); + +return 0; diff --git a/eg/SourceGenerator/CalculatorExample/Program.docopt.txt b/eg/SourceGenerator/CalculatorExample/Program.docopt.txt new file mode 100644 index 00000000..1b4c5281 --- /dev/null +++ b/eg/SourceGenerator/CalculatorExample/Program.docopt.txt @@ -0,0 +1,14 @@ +Not a serious example. + +Usage: + calculator_example.py ( ( + | - | * | / ) )... + calculator_example.py [( , )]... + calculator_example.py (-h | --help) + +Examples: + calculator_example.py 1 + 2 + 3 + 4 + 5 + calculator_example.py 1 + 2 '*' 3 / 4 - 5 # note quotes around '*' + calculator_example.py sum 10 , 20 , 30 , 40 + +Options: + -h, --help diff --git a/eg/SourceGenerator/CountedExample/CountedExample.csproj b/eg/SourceGenerator/CountedExample/CountedExample.csproj new file mode 100644 index 00000000..ca2efb44 --- /dev/null +++ b/eg/SourceGenerator/CountedExample/CountedExample.csproj @@ -0,0 +1,14 @@ + + + + Exe + net5.0 + + + + + + + + + diff --git a/eg/SourceGenerator/CountedExample/Program.cs b/eg/SourceGenerator/CountedExample/Program.cs new file mode 100644 index 00000000..2240c565 --- /dev/null +++ b/eg/SourceGenerator/CountedExample/Program.cs @@ -0,0 +1,33 @@ +using System; +using DocoptNet.Generated; +using CountedExample; + +ProgramArguments arguments; + +try +{ + arguments = ProgramArguments.Apply(args); +} +catch (DocoptExitException e) +{ + Console.WriteLine(e.Message); + return e.ErrorCode; +} +catch (DocoptInputErrorException e) +{ + Console.Error.WriteLine(e); + return 0xbd; +} + +foreach (var (name, value) in arguments) + Console.WriteLine($"{name} = {value}"); + +Console.WriteLine($@"{{ + Help = {arguments.OptHelp }, + V = {arguments.OptV }, + Go = {arguments.CmdGo }, + File = [{string.Join(", ", arguments.ArgFile)}], + Path = {arguments.OptPath }, +}}"); + +return 0; diff --git a/eg/SourceGenerator/CountedExample/Program.docopt.txt b/eg/SourceGenerator/CountedExample/Program.docopt.txt new file mode 100644 index 00000000..4f829264 --- /dev/null +++ b/eg/SourceGenerator/CountedExample/Program.docopt.txt @@ -0,0 +1,10 @@ +Usage: CountedExample --help + CountedExample -v... + CountedExample go [go] + CountedExample (--path=)... + CountedExample + +Try: CountedExample -vvvvvvvvvv + CountedExample go go + CountedExample --path ./here --path ./there + CountedExample this.txt that.txt diff --git a/eg/SourceGenerator/Directory.Build.props b/eg/SourceGenerator/Directory.Build.props new file mode 100644 index 00000000..581ec552 --- /dev/null +++ b/eg/SourceGenerator/Directory.Build.props @@ -0,0 +1,10 @@ + + + + + + true + false + + + diff --git a/eg/SourceGenerator/Directory.Build.targets b/eg/SourceGenerator/Directory.Build.targets new file mode 100644 index 00000000..06c305d3 --- /dev/null +++ b/eg/SourceGenerator/Directory.Build.targets @@ -0,0 +1,7 @@ + + + + $(BaseIntermediateOutputPath)Generated + + + diff --git a/eg/SourceGenerator/Git/Git.csproj b/eg/SourceGenerator/Git/Git.csproj new file mode 100644 index 00000000..fc3f4133 --- /dev/null +++ b/eg/SourceGenerator/Git/Git.csproj @@ -0,0 +1,23 @@ + + + + Exe + net5.0 + true + $(BaseIntermediateOutputPath)Generated + false + + + + + + + + + + + + + + + diff --git a/eg/SourceGenerator/Git/Git.docopt.txt b/eg/SourceGenerator/Git/Git.docopt.txt new file mode 100644 index 00000000..7895b0dc --- /dev/null +++ b/eg/SourceGenerator/Git/Git.docopt.txt @@ -0,0 +1,21 @@ +usage: git [--version] [--exec-path=] [--html-path] + [-p|--paginate|--no-pager] [--no-replace-objects] + [--bare] [--git-dir=] [--work-tree=] + [-c =] [--help] + [...] + +options: + -c + -h, --help + -p, --paginate + +The most commonly used git commands are: + add Add file contents to the index + branch List, create, or delete branches + checkout Checkout a branch or paths to the working tree + clone Clone a repository into a new directory + commit Record changes to the repository + push Update remote refs along with associated objects + remote Manage set of tracked repositories + +See 'git help ' for more information on a specific command. diff --git a/eg/SourceGenerator/Git/GitAdd.docopt.txt b/eg/SourceGenerator/Git/GitAdd.docopt.txt new file mode 100644 index 00000000..96fb4d6a --- /dev/null +++ b/eg/SourceGenerator/Git/GitAdd.docopt.txt @@ -0,0 +1,16 @@ +usage: git add [options] [--] [...] + + -h, --help + -n, --dry-run dry run + -v, --verbose be verbose + + -i, --interactive interactive picking + -p, --patch select hunks interactively + -e, --edit edit current diff and apply + -f, --force allow adding otherwise ignored files + -u, --update update tracked files + -N, --intent-to-add record only the fact that the path will be added later + -A, --all add all, noticing removal of tracked files + --refresh don't add, only refresh the index + --ignore-errors just skip files which cannot be added because of errors + --ignore-missing check if - even missing - files are ignored in dry run diff --git a/eg/SourceGenerator/Git/GitBranch.docopt.txt b/eg/SourceGenerator/Git/GitBranch.docopt.txt new file mode 100644 index 00000000..811e56c2 --- /dev/null +++ b/eg/SourceGenerator/Git/GitBranch.docopt.txt @@ -0,0 +1,25 @@ +usage: git branch [options] [-r | -a] [--merged= | --no-merged=] + git branch [options] [-l] [-f] [] + git branch [options] [-r] (-d | -D) + git branch [options] (-m | -M) [] + +Generic options + -h, --help + -v, --verbose show hash and subject, give twice for upstream branch + -t, --track set up tracking mode (see git-pull(1)) + --set-upstream change upstream info + --color= use colored output + -r act on remote-tracking branches + --contains= print only branches that contain the commit + --abbrev= use digits to display SHA-1s + +Specific git-branch actions: + -a list both remote-tracking and local branches + -d delete fully merged branch + -D delete branch (even if not merged) + -m move/rename a branch and its reflog + -M move/rename a branch, even if target exists + -l create the branch's reflog + -f, --force force creation (when already exists) + --no-merged= print only not merged branches + --merged= print only merged branches diff --git a/eg/SourceGenerator/Git/GitCheckout.docopt.txt b/eg/SourceGenerator/Git/GitCheckout.docopt.txt new file mode 100644 index 00000000..1e9fad2b --- /dev/null +++ b/eg/SourceGenerator/Git/GitCheckout.docopt.txt @@ -0,0 +1,15 @@ +usage: git checkout [options] + git checkout [options] -- ... + -q, --quiet suppress progress reporting + -b create and checkout a new branch + -B create/reset and checkout a branch + -l create reflog for new branch + -t, --track set upstream info for new branch + --orphan + new unparented branch + -2, --ours checkout our version for unmerged files + -3, --theirs checkout their version for unmerged files + -f, --force force checkout (throw away local modifications) + -m, --merge perform a 3-way merge with the new branch + --conflict