ktsu.CodeBlocker
1.1.2-pre.6
Prefix Reserved
See the version list below for details.
dotnet add package ktsu.CodeBlocker --version 1.1.2-pre.6
NuGet\Install-Package ktsu.CodeBlocker -Version 1.1.2-pre.6
<PackageReference Include="ktsu.CodeBlocker" Version="1.1.2-pre.6" />
<PackageVersion Include="ktsu.CodeBlocker" Version="1.1.2-pre.6" />
<PackageReference Include="ktsu.CodeBlocker" />
paket add ktsu.CodeBlocker --version 1.1.2-pre.6
#r "nuget: ktsu.CodeBlocker, 1.1.2-pre.6"
#addin nuget:?package=ktsu.CodeBlocker&version=1.1.2-pre.6&prerelease
#tool nuget:?package=ktsu.CodeBlocker&version=1.1.2-pre.6&prerelease
ktsu.CodeBlocker
An IndentedTextWriter that makes generating code blocks easier.
Introduction
CodeBlocker is a specialized utility built on top of IndentedTextWriter
that simplifies the process of programmatically generating structured code. It provides automatic indentation management and a fluent interface for creating code blocks with proper nesting, making it ideal for code generation tasks, template engines, and dynamic source code creation.
Features
- Automatic Indentation: Properly manages indentation levels as you create nested code blocks
- Scope Management: Uses C#
using
statements for clean, readable scope creation - Flexible API: Write individual lines or entire code blocks with proper formatting
- Standard Output Support: Works with any TextWriter, including console output
- Lightweight: Minimal dependencies, focused on doing one thing well
Installation
Package Manager Console
Install-Package ktsu.CodeBlocker
.NET CLI
dotnet add package ktsu.CodeBlocker
Package Reference
<PackageReference Include="ktsu.CodeBlocker" Version="x.y.z" />
Usage Examples
Basic Example
namespace CodeBlockerExample;
using ktsu.CodeBlocker;
internal class Example
{
public static void GenerateCode()
{
using var codeBlocker = CodeBlocker.Create();
codeBlocker.WriteLine("using System;");
codeBlocker.NewLine();
codeBlocker.WriteLine("namespace Example");
using (new Scope(codeBlocker))
{
codeBlocker.WriteLine("public class Example");
using (new Scope(codeBlocker))
{
codeBlocker.WriteLine("public static void Main()");
using (new Scope(codeBlocker))
{
codeBlocker.WriteLine("Console.WriteLine(\"Hello, World!\");");
}
}
}
Console.WriteLine(codeBlocker.ToString());
}
}
The above example generates the following code:
using System;
namespace Example
{
public class Example
{
public static void Main()
{
Console.WriteLine("Hello, World!");
}
}
}
Advanced Usage
// Creating a CodeBlocker with custom settings
using var codeBlocker = new CodeBlocker(
new StringWriter(),
indentString: " ", // Use 2 spaces for indentation
tabsAsSpaces: true // Convert tabs to spaces
);
// Generate a more complex structure
codeBlocker.WriteLine("public interface IExample");
using (new Scope(codeBlocker))
{
// Define interface methods
codeBlocker.WriteLine("void Method1();");
codeBlocker.WriteLine("string Method2(int parameter);");
// Define nested interface
codeBlocker.NewLine();
codeBlocker.WriteLine("public interface INestedExample");
using (new Scope(codeBlocker))
{
codeBlocker.WriteLine("void NestedMethod();");
}
}
// Add implementation
codeBlocker.NewLine();
codeBlocker.WriteLine("public class Implementation : IExample");
using (new Scope(codeBlocker))
{
// Implement methods
codeBlocker.WriteLine("public void Method1()");
using (new Scope(codeBlocker))
{
codeBlocker.WriteLine("// Implementation here");
}
codeBlocker.NewLine();
codeBlocker.WriteLine("public string Method2(int parameter)");
using (new Scope(codeBlocker))
{
codeBlocker.WriteLine("return parameter.ToString();");
}
}
API Reference
CodeBlocker
Class
The main class for building indented code blocks.
Properties
Name | Type | Description |
---|---|---|
IndentLevel |
int |
Current indentation level |
TabSize |
int |
Size of a tab in spaces |
IndentString |
string |
String used for indentation (default: tab) |
TextWriter |
TextWriter |
Underlying TextWriter instance |
Methods
Name | Return Type | Description |
---|---|---|
WriteLine(string? line) |
void |
Writes a line of text with appropriate indentation |
Write(string? text) |
void |
Writes text without a line terminator |
NewLine() |
void |
Writes an empty line |
Indent() |
void |
Increases the indent level |
Unindent() |
void |
Decreases the indent level |
ToString() |
string |
Returns the generated code as a string |
Create() |
CodeBlocker |
Static factory method to create a new CodeBlocker instance |
Scope
Class
Helper class for managing indentation scopes.
Methods
Name | Return Type | Description |
---|---|---|
Dispose() |
void |
Decreases indentation level when scope is exited |
Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.1.2-pre.17 | 114 | 5/20/2025 |
1.1.2-pre.15 | 72 | 5/17/2025 |
1.1.2-pre.14 | 122 | 5/16/2025 |
1.1.2-pre.13 | 195 | 5/15/2025 |
1.1.2-pre.12 | 195 | 5/14/2025 |
1.1.2-pre.11 | 196 | 5/13/2025 |
1.1.2-pre.10 | 222 | 5/12/2025 |
1.1.2-pre.9 | 161 | 5/11/2025 |
1.1.2-pre.8 | 108 | 5/10/2025 |
1.1.2-pre.7 | 42 | 5/9/2025 |
1.1.2-pre.6 | 115 | 5/8/2025 |
1.1.2-pre.5 | 115 | 5/7/2025 |
1.1.2-pre.4 | 113 | 5/6/2025 |
1.1.2-pre.3 | 116 | 5/5/2025 |
1.1.2-pre.2 | 115 | 5/4/2025 |
1.1.2-pre.1 | 116 | 5/4/2025 |
1.1.1 | 107 | 5/4/2025 |
1.1.1-pre.2 | 52 | 4/26/2025 |
1.1.1-pre.1 | 114 | 4/4/2025 |
1.1.0 | 140 | 3/30/2025 |
1.0.32-pre.2 | 72 | 3/29/2025 |
1.0.32-pre.1 | 454 | 3/25/2025 |
1.0.31 | 120 | 2/17/2025 |
1.0.31-pre.3 | 80 | 2/6/2025 |
1.0.31-pre.2 | 65 | 2/5/2025 |
1.0.31-pre.1 | 63 | 2/5/2025 |
1.0.30 | 105 | 1/2/2025 |
1.0.30-pre.29 | 65 | 2/3/2025 |
1.0.30-pre.28 | 66 | 2/3/2025 |
1.0.30-pre.27 | 69 | 2/1/2025 |
1.0.30-pre.26 | 62 | 1/30/2025 |
1.0.30-pre.25 | 68 | 1/28/2025 |
1.0.30-pre.24 | 62 | 1/26/2025 |
1.0.30-pre.23 | 56 | 1/24/2025 |
1.0.30-pre.22 | 57 | 1/22/2025 |
1.0.30-pre.21 | 64 | 1/20/2025 |
1.0.30-pre.20 | 53 | 1/18/2025 |
1.0.30-pre.19 | 57 | 1/16/2025 |
1.0.30-pre.18 | 39 | 1/14/2025 |
1.0.30-pre.17 | 50 | 1/13/2025 |
1.0.30-pre.16 | 58 | 1/11/2025 |
1.0.30-pre.15 | 53 | 1/10/2025 |
1.0.30-pre.14 | 56 | 1/10/2025 |
1.0.30-pre.13 | 52 | 1/8/2025 |
1.0.30-pre.12 | 60 | 1/7/2025 |
1.0.30-pre.11 | 62 | 1/6/2025 |
1.0.30-pre.10 | 78 | 1/4/2025 |
1.0.30-pre.9 | 68 | 1/3/2025 |
1.0.30-pre.8 | 65 | 1/3/2025 |
1.0.30-pre.7 | 67 | 1/3/2025 |
1.0.30-pre.6 | 75 | 1/2/2025 |
1.0.30-pre.5 | 92 | 12/31/2024 |
1.0.30-pre.4 | 62 | 12/29/2024 |
1.0.30-pre.3 | 62 | 12/28/2024 |
1.0.30-pre.2 | 68 | 12/27/2024 |
1.0.30-pre.1 | 59 | 12/27/2024 |
1.0.29-pre.1 | 58 | 12/27/2024 |
1.0.28 | 99 | 12/26/2024 |
1.0.27 | 98 | 12/26/2024 |
1.0.26 | 101 | 12/26/2024 |
1.0.25 | 103 | 12/26/2024 |
1.0.24 | 98 | 12/26/2024 |
1.0.23 | 103 | 12/26/2024 |
1.0.22 | 102 | 12/26/2024 |
1.0.21 | 98 | 12/23/2024 |
1.0.20 | 99 | 12/23/2024 |
1.0.19 | 110 | 12/22/2024 |
1.0.18 | 104 | 12/22/2024 |
1.0.17 | 107 | 12/4/2024 |
1.0.16 | 107 | 12/2/2024 |
1.0.15 | 107 | 11/30/2024 |
1.0.14 | 104 | 11/26/2024 |
1.0.13 | 113 | 11/20/2024 |
1.0.12 | 112 | 11/13/2024 |
1.0.11 | 104 | 11/1/2024 |
1.0.10 | 117 | 10/4/2024 |
1.0.10-pre.1 | 63 | 12/27/2024 |
1.0.9 | 112 | 9/19/2024 |
1.0.8 | 97 | 9/19/2024 |
1.0.7 | 100 | 9/19/2024 |
1.0.6 | 104 | 9/19/2024 |
1.0.5 | 112 | 9/18/2024 |
1.0.4 | 105 | 9/18/2024 |
1.0.3 | 106 | 9/18/2024 |
1.0.2 | 113 | 9/18/2024 |
1.0.1 | 121 | 9/14/2024 |
1.0.0 | 127 | 9/14/2024 |
## v1.1.2-pre.6 (prerelease)
Incremental prerelease update.
## v1.1.2-pre.5 (prerelease)
Changes since v1.1.2-pre.4:
## v1.1.2-pre.4 (prerelease)
Changes since v1.1.2-pre.3:
## v1.1.2-pre.3 (prerelease)
Changes since v1.1.2-pre.2:
## v1.1.2-pre.2 (prerelease)
Changes since v1.1.2-pre.1:
## v1.1.2-pre.1 (prerelease)
Changes since v1.1.1:
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.1.1 (patch)
Changes since v1.1.0:
- Remove Directory.Build.props and Directory.Build.targets files, delete commit metadata and changelog scripts, and add copyright notice to CodeBlocker.cs. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance documentation and project metadata. Updated DESCRIPTION.md to clarify the purpose of CodeBlocker and expanded README.md with detailed introduction, features, installation instructions, usage examples, and API reference. Changed project SDK in CodeBlocker.csproj to ktsu.Sdk.Lib/1.8.0. ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.1.1-pre.2 (prerelease)
Changes since v1.1.1-pre.1:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.1.1-pre.1 (prerelease)
Incremental prerelease update.
## v1.1.0 (minor)
Changes since v1.0.0:
- Update .editorconfig for improved code style and naming ([@matt-edmondson](https://github.com/matt-edmondson))
- Add automation scripts for metadata management and versioning ([@matt-edmondson](https://github.com/matt-edmondson))
- Add LICENSE template ([@matt-edmondson](https://github.com/matt-edmondson))
- Replace LICENSE file with LICENSE.md and update copyright information ([@matt-edmondson](https://github.com/matt-edmondson))
- Migrate ktsu.io to ktsu namespace ([@matt-edmondson](https://github.com/matt-edmondson))
- Renamed metadata files ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.32-pre.2 (prerelease)
Changes since v1.0.32-pre.1:
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.32-pre.1 (prerelease)
Changes since v1.0.31:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.31 (patch)
Changes since v1.0.30:
- Update .editorconfig for improved code style and naming ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.31-pre.3 (prerelease)
Changes since v1.0.31-pre.2:
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.31-pre.2 (prerelease)
Changes since v1.0.31-pre.1:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.31-pre.1 (prerelease)
Incremental prerelease update.
## v1.0.30-pre.29 (prerelease)
Changes since v1.0.30-pre.28:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.28 (prerelease)
Changes since v1.0.30-pre.27:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.27 (prerelease)
Changes since v1.0.30-pre.26:
## v1.0.30-pre.26 (prerelease)
Changes since v1.0.30-pre.25:
## v1.0.30-pre.25 (prerelease)
Changes since v1.0.30-pre.24:
- Bump MSTest from 3.7.2 to 3.7.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.30-pre.24 (prerelease)
Changes since v1.0.30-pre.23:
## v1.0.30-pre.23 (prerelease)
Changes since v1.0.30-pre.22:
## v1.0.30-pre.22 (prerelease)
Changes since v1.0.30-pre.21:
- Bump MSTest from 3.7.1 to 3.7.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.30-pre.21 (prerelease)
Changes since v1.0.30-pre.20:
- Bump coverlet.collector from 6.0.3 to 6.0.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.30-pre.20 (prerelease)
Changes since v1.0.30-pre.19:
## v1.0.30-pre.19 (prerelease)
Changes since v1.0.30-pre.18:
## v1.0.30-pre.18 (prerelease)
Changes since v1.0.30-pre.17:
- Bump MSTest from 3.7.0 to 3.7.1 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.30-pre.17 (prerelease)
Changes since v1.0.30-pre.16:
## v1.0.30-pre.16 (prerelease)
Changes since v1.0.30-pre.15:
## v1.0.30-pre.15 (prerelease)
Changes since v1.0.30-pre.14:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.14 (prerelease)
Changes since v1.0.30-pre.13:
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.13 (prerelease)
Changes since v1.0.30-pre.12:
## v1.0.30-pre.12 (prerelease)
Changes since v1.0.30-pre.11:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.11 (prerelease)
Changes since v1.0.30-pre.10:
## v1.0.30-pre.10 (prerelease)
Changes since v1.0.30-pre.9:
## v1.0.30-pre.9 (prerelease)
Changes since v1.0.30-pre.8:
- Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.8 (prerelease)
Changes since v1.0.30-pre.7:
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.7 (prerelease)
Changes since v1.0.30-pre.6:
- Add automation scripts for metadata management and versioning ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.30-pre.6 (prerelease)
Changes since v1.0.30-pre.5:
## v1.0.30-pre.5 (prerelease)
Changes since v1.0.30-pre.4:
- Bump coverlet.collector from 6.0.2 to 6.0.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.30-pre.4 (prerelease)
Changes since v1.0.30-pre.3:
## v1.0.30-pre.3 (prerelease)
Changes since v1.0.30-pre.2:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.2 (prerelease)
Changes since v1.0.30-pre.1:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.30-pre.1 (prerelease)
Incremental prerelease update.
## v1.0.29-pre.1 (prerelease)
Changes since v1.0.28:
- Renamed metadata files ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.28 (patch)
Changes since v1.0.27:
- Sync icon.png ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.27 (patch)
Changes since v1.0.26:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.26 (patch)
Changes since v1.0.25:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.25 (patch)
Changes since v1.0.24:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.24 (patch)
Changes since v1.0.23:
- Replace LICENSE file with LICENSE.md and update copyright information ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.23 (patch)
Changes since v1.0.22:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.22 (patch)
Changes since v1.0.21:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync icon.png ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.21 (patch)
Changes since v1.0.20:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.20 (patch)
Changes since v1.0.19:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.19 (patch)
Changes since v1.0.18:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.18 (patch)
Changes since v1.0.17:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.17 (patch)
Changes since v1.0.16:
- Bump MSTest.TestAdapter from 3.6.3 to 3.6.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump MSTest.TestFramework from 3.6.3 to 3.6.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.16 (patch)
Changes since v1.0.15:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.15 (patch)
Changes since v1.0.14:
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.14 (patch)
Changes since v1.0.13:
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.13 (patch)
Changes since v1.0.12:
- Bump Microsoft.NET.Test.Sdk in the microsoft group ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump MSTest.TestAdapter from 3.6.2 to 3.6.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.12 (patch)
Changes since v1.0.11:
- Bump MSTest.TestFramework from 3.6.2 to 3.6.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.11 (patch)
Changes since v1.0.10:
- Bump MSTest.TestAdapter from 3.6.1 to 3.6.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Bump MSTest.TestFramework from 3.6.0 to 3.6.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.10 (patch)
Changes since v1.0.9:
- Bump MSTest.TestAdapter from 3.6.0 to 3.6.1 ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.0.10-pre.1 (prerelease)
Changes since v1.0.10:
- Replace LICENSE file with LICENSE.md and update copyright information ([@matt-edmondson](https://github.com/matt-edmondson))
- Renamed metadata files ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.9 (patch)
Changes since v1.0.8:
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.8 (patch)
Changes since v1.0.7:
## v1.0.7 (patch)
Changes since v1.0.6:
- Sync .github\dependabot.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\dependabot.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.6 (patch)
Changes since v1.0.5:
- Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.5 (patch)
Changes since v1.0.4:
- Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.4 (patch)
Changes since v1.0.3:
- Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.3 (patch)
Changes since v1.0.2:
- Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Bump MSTest.TestAdapter from 3.5.2 to 3.6.0 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Bump MSTest.TestFramework from 3.5.2 to 3.6.0 ([@dependabot[bot]](https://github.com/dependabot[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.2 (patch)
Changes since v1.0.1:
- Sync .github\dependabot.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.0.1 (patch)
Changes since v1.0.0:
- Migrate ktsu.io to ktsu namespace ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0 (major)
- Update description and readme ([@matt-edmondson](https://github.com/matt-edmondson))
- Initial commit after extricating out of Schema Tools project ([@matt-edmondson](https://github.com/matt-edmondson))
- Add XML documentation ([@matt-edmondson](https://github.com/matt-edmondson))
- Update LICENSE ([@matt-edmondson](https://github.com/matt-edmondson))
- Enable dependabot and sourcelink ([@matt-edmondson](https://github.com/matt-edmondson))
- Create dependabot-merge.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Read PackageDescription from DESCRIPTION file ([@matt-edmondson](https://github.com/matt-edmondson))
- Assign dependabot PRs to matt ([@matt-edmondson](https://github.com/matt-edmondson))
- Migrate from .project.props to Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson))
- Update Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson))
- Update Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson))
- Update nuget.config ([@matt-edmondson](https://github.com/matt-edmondson))
- Create VERSION ([@matt-edmondson](https://github.com/matt-edmondson))
- Update build config ([@matt-edmondson](https://github.com/matt-edmondson))
- Update Directory.Build.targets ([@matt-edmondson](https://github.com/matt-edmondson))
- Update nuget.config ([@matt-edmondson](https://github.com/matt-edmondson))
- Update build scripts ([@matt-edmondson](https://github.com/matt-edmondson))
- Dont try to push packages when building pull requests ([@matt-edmondson](https://github.com/matt-edmondson))
- Update LICENSE ([@matt-edmondson](https://github.com/matt-edmondson))
- Read from VERSION when building ([@matt-edmondson](https://github.com/matt-edmondson))
- Set GenerateDocumentationFile ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix code style errors ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Avoid double upload of symbols package ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Update .editorconfig ([@matt-edmondson](https://github.com/matt-edmondson))
- Add github package support ([@matt-edmondson](https://github.com/matt-edmondson))
- Read from AUTHORS file during build ([@matt-edmondson](https://github.com/matt-edmondson))