From 6283ed080ec38b2edcb6029769a67401a839a573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20P=C3=B6lz?= <38893694+Flash0ver@users.noreply.github.com> Date: Fri, 10 Nov 2023 19:55:56 +0100 Subject: [PATCH] docs: add documentation (#77) add banner images --- README.md | 36 +++++++++++++++++++ docs/Index.md | 12 +++++-- docs/commands/flashoware-using-count.md | 29 +++++++++++++++ docs/commands/flashoware-using-globalize.md | 32 +++++++++++++++++ docs/commands/flashoware-using.md | 28 +++++++++++++++ docs/commands/flashoware.md | 38 ++++++++++++++++++++ resources/FlashOWare.Tool-Dark.png | Bin 0 -> 17357 bytes resources/FlashOWare.Tool-Light.png | Bin 0 -> 17368 bytes resources/README.md | 8 +++++ 9 files changed, 181 insertions(+), 2 deletions(-) create mode 100644 docs/commands/flashoware-using-count.md create mode 100644 docs/commands/flashoware-using-globalize.md create mode 100644 docs/commands/flashoware-using.md create mode 100644 docs/commands/flashoware.md create mode 100644 resources/FlashOWare.Tool-Dark.png create mode 100644 resources/FlashOWare.Tool-Light.png diff --git a/README.md b/README.md index 68912a5..d83c5cd 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ # FlashOWare.Tool A .NET tool that facilitates development workflows. + +![Icon-Light](https://raw.githubusercontent.com/FlashOWare/FlashOWare.Tool/main/resources/FlashOWare.Tool-Light.png#gh-light-mode-only)![Icon-Dark](https://raw.githubusercontent.com/FlashOWare/FlashOWare.Tool/main/resources/FlashOWare.Tool-Dark.png#gh-dark-mode-only) + +## NuGet package +[FlashOWare.Tool](https://www.nuget.org/packages/FlashOWare.Tool) + +## Installation +Install the latest pre-release version as a global tool +```console +dotnet tool install --global FlashOWare.Tool --prerelease +``` + +## Compatibility +- requires the [.NET 6.0](https://dotnet.microsoft.com/download/dotnet/6.0) SDK +- supports the [.NET 7.0](https://dotnet.microsoft.com/download/dotnet/7.0) SDK + +## Documentation +[Index.md](./docs/Index.md) + +## Changelogs +- [Release Changelog](./docs/CHANGELOG.md) +- [Prerelease Changelog](./docs/CHANGELOG-Prerelease.md) + +## Dependencies +### Runtime dependencies (tool) +- [.NET](https://github.com/dotnet/runtime) +- [Microsoft.Build.Locator](https://github.com/microsoft/MSBuildLocator) +- [Roslyn](https://github.com/dotnet/roslyn) +- [System.CommandLine](https://github.com/dotnet/command-line-api) +### Development dependencies (build and test) +- [Basic.Reference.Assemblies](https://github.com/jaredpar/basic-reference-assemblies) +- [Coverlet](https://github.com/coverlet-coverage/coverlet) +- [DiffPlex](https://github.com/mmanela/diffplex) +- [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) +- [NUKE](https://nuke.build) +- [xUnit.net](https://xunit.net) diff --git a/docs/Index.md b/docs/Index.md index 09bc3d3..e0a9d15 100644 --- a/docs/Index.md +++ b/docs/Index.md @@ -1,8 +1,16 @@ # FlashOWare.Tool +Documentation -## Documentation -TODO +## Commands +- [flashoware](./commands/flashoware.md) +- [flashoware using](./commands/flashoware-using.md) + - [flashoware using count](./commands/flashoware-using-count.md) + - [flashoware using globalize](./commands/flashoware-using-globalize.md) ## Changelogs - [Release Changelog](./CHANGELOG.md) - [Prerelease Changelog](./CHANGELOG-Prerelease.md) + +## Compatibility +- requires the [.NET 6.0](https://dotnet.microsoft.com/download/dotnet/6.0) SDK +- supports the [.NET 7.0](https://dotnet.microsoft.com/download/dotnet/7.0) SDK diff --git a/docs/commands/flashoware-using-count.md b/docs/commands/flashoware-using-count.md new file mode 100644 index 0000000..5419718 --- /dev/null +++ b/docs/commands/flashoware-using-count.md @@ -0,0 +1,29 @@ +# flashoware using count + +Available since [v1.0.0]. + +## Synopsis +```console +flashoware using count [...] [--proj|--project ] + +flashoware using count -?|-h|--help +``` + +## Description + +Count and list the top-level using directives of a C# project. + +## Arguments + +`` +The names of the top-level using directives to count. If usings are not specified, the command will list all top-level directives. + +## Options + +- `--proj|--project ` +The path to the project file to operate on (defaults to the current directory if there is only one project). + +- `-?|-h|--help` +Show help and usage information. + +[v1.0.0]: ../CHANGELOG.md#vNext diff --git a/docs/commands/flashoware-using-globalize.md b/docs/commands/flashoware-using-globalize.md new file mode 100644 index 0000000..e2b08f6 --- /dev/null +++ b/docs/commands/flashoware-using-globalize.md @@ -0,0 +1,32 @@ +# flashoware using globalize + +Available since [v1.0.0]. + +## Synopsis +```console +flashoware using globalize [...] [--proj|--project ] [--force] + +flashoware using globalize -?|-h|--help +``` + +## Description + +Move top-level using directives to global using directives in a C# project. + +## Arguments + +`` +The names of the top-level using directives to convert to global using directives. If usings are not specified, the command will globalize all top-level directives. + +## Options + +- `--proj|--project ` +The path to the project file to operate on (defaults to the current directory if there is only one project). + +- `--force` +Forces all top-level using directives to be globalized when no usings are specified. + +- `-?|-h|--help` +Show help and usage information. + +[v1.0.0]: ../CHANGELOG.md#vNext diff --git a/docs/commands/flashoware-using.md b/docs/commands/flashoware-using.md new file mode 100644 index 0000000..6b958ec --- /dev/null +++ b/docs/commands/flashoware-using.md @@ -0,0 +1,28 @@ +# flashoware using + +Available since [v1.0.0]. + +## Synopsis +```console +flashoware using [-?|-h|--help] + +flashoware using -?|-h|--help +``` + +## Description + +Analyze or refactor C# using directives. + +## Options + +- `-?|-h|--help` +Show help and usage information. + +## Commands + +| Command | Description | +| --- | --- | +| [flashoware using count](./flashoware-using-count.md) | Count and list the top-level using directives of a C# project. | +| [flashoware using globalize](./flashoware-using-globalize.md) | Move top-level using directives to global using directives in a C# project. | + +[v1.0.0]: ../CHANGELOG.md#vNext diff --git a/docs/commands/flashoware.md b/docs/commands/flashoware.md new file mode 100644 index 0000000..40b6d5a --- /dev/null +++ b/docs/commands/flashoware.md @@ -0,0 +1,38 @@ +# flashoware + +Available since [v1.0.0]. + +## Synopsis +```console +flashoware [-?|-h|--help] + +flashoware [-!|-a|--about] [-#|-i|--info] [--version] + +flashoware -?|-h|--help +``` + +## Description + +The tool's command name. + +## Options + +- `-!|-a|--about` +Show application information. + +- `-#|-i|--info` +Show environment information. + +- `--version` +Show version information. + +- `-?|-h|--help` +Show help and usage information. + +## Commands + +| Command | Description | +| --- | --- | +| [flashoware using](./flashoware-using.md) | Analyze or refactor C# using directives. | + +[v1.0.0]: ../CHANGELOG.md#vNext diff --git a/resources/FlashOWare.Tool-Dark.png b/resources/FlashOWare.Tool-Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6e141b9463405e8e61c841ae3fdaca14a36892 GIT binary patch literal 17357 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 z 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
E@<38oJnS?QI!L+_qlk>9 z(0n5uzmD!@Ile;)HT<5RzFT7dN1W2aIq&Vwcfx`_W{!U#f~sh}%G=R#{!rTEGqS#A zUG7f8jG<`P=E>)_HG&K?LvoM~N56A0eLjQE$d60n!>gfQL^RMgNY-H5z5TR17Q4+x zBbFTX-k{b;8lM8rL1DNL-tW-B>E+Il&65{F?wrop&8JibqM_3iCm-wW-`z*vR^a_j zP9}i-*KIpQJ0g%NsgaNX&RT>C#;tzMe%8hngbR~KL6SP!gO%1WzC_9A+wvcdIEz0$ z5{2f5;mi;$2sm5irv?GCIz*~U+RF5VV9K}TH6v?`=?$K;EtIr)U{jiA`fISN6yc}`G6eJH z&-%+2LEdK35)8TxI_ZHDdw$lhpr-M#0iGUn?k@t)<=U;jUdC}3kBV$dvqLrZp4Cho z^?00zWH;QHP!4l?BR;5{yK8Wq) z_U(qycOB03y`A}#rk9+6nwyGG={0-&Yl~`F9C2A3kyD2f=hidhIjc_vFkMgRA z_8Er5)zad2v>td5?rD%5s*37sOFS7TX`yZi%%t+55KPK?{M7WEF|{-Z_*Gaqw`JvA zm1&vd-lrz^&yIN$`24@!rXwC!5!v+2-<1c!q{Z%+tVLWH#(WfBh~~ja-db6 z7Y*-YpmX?3W#8&n_ebBL=mIDyf=SojaUORiBR1;R5gdL3^hgRF3p0l|A#n2}JliCz zr(P^u_L}>x4*8V6WJfHsb{eLxn!O8TeL1K^fGCJqm)Q*<86Zd4=_# zXV)JP)=>Vjf)5}SEq&9Tl-UGi-3K$DPdA=z-vsR+UYb}?DduTy>4Wo1tHY6glsR1m zW3zHU#|_g8`(9tlu#B@}l!uLD@v!N`o1_J#oVvNo2;u_m zN4wywT`-4U$nd_Ba&ogOriKDnDnFr9Ei3e8di=*j1wjZ~pI~2Vf6NS`AkZTuFKtdXm{yL6-zZeR;@$csR8#(`G2bu`~ cPeVsB!c0HzcdTjV47$|wn!0BS)UVz7UnjC04FCWD literal 0 HcmV?d00001 diff --git a/resources/FlashOWare.Tool-Light.png b/resources/FlashOWare.Tool-Light.png new file mode 100644 index 0000000000000000000000000000000000000000..97f5fdbe0f24d14926b2f99ae4470c7f99fd9b36 GIT binary patch literal 17368 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