ktsu.CaseConverter 1.3.10

ktsu.CaseConverter

A library with extension methods to convert strings between common casings used in code.

License NuGet NuGet Downloads Build Status GitHub Stars

Introduction

CaseConverter is a lightweight .NET library that provides a set of extension methods for converting strings between various case styles commonly used in programming. Whether you need to transform identifiers between different naming conventions or format text for display, CaseConverter makes these operations simple and efficient.

Features

  • ToTitleCase: Converts text to Title Case (Each Word Capitalized)
  • ToPascalCase: Converts text to PascalCase (CapitalizedWords)
  • ToCamelCase: Converts text to camelCase (firstWordLowerCaseRestCapitalized)
  • ToSnakeCase: Converts text to snake_case (lowercase_with_underscores)
  • ToKebabCase: Converts text to kebab-case (lowercase-with-hyphens)
  • ToMacroCase: Converts text to MACRO_CASE (UPPERCASE_WITH_UNDERSCORES)
  • ToUppercaseFirstChar: Converts only the first character to uppercase (Uppercasefirstchar)
  • ToLowercaseFirstChar: Converts only the first character to lowercase (lowercaseFirstChar)

Installation

Package Manager Console

Install-Package ktsu.CaseConverter

.NET CLI

dotnet add package ktsu.CaseConverter

Package Reference

<PackageReference Include="ktsu.CaseConverter" Version="x.y.z" />

Usage Examples

Basic Example

using ktsu.CaseConverter;

string original = "This is a test string";

// Convert to different cases
string pascalCase = original.ToPascalCase(); // "ThisIsATestString"
string camelCase = original.ToCamelCase();   // "thisIsATestString"
string snakeCase = original.ToSnakeCase();   // "this_is_a_test_string"
string kebabCase = original.ToKebabCase();   // "this-is-a-test-string"
string macroCase = original.ToMacroCase();   // "THIS_IS_A_TEST_STRING"

Console.WriteLine(pascalCase);
Console.WriteLine(camelCase);
Console.WriteLine(snakeCase);
Console.WriteLine(kebabCase);
Console.WriteLine(macroCase);

Advanced Usage

// Working with code identifiers
string variableName = "customer_order_details";
string className = variableName.ToPascalCase(); // "CustomerOrderDetails"
string propertyName = variableName.ToCamelCase(); // "customerOrderDetails"
string constantName = variableName.ToMacroCase(); // "CUSTOMER_ORDER_DETAILS"

// Handling acronyms and special cases
string withAcronym = "API_response_URL";
string pascalWithAcronym = withAcronym.ToPascalCase(); // "ApiResponseUrl"

// First character transformations
string sentence = "lorem ipsum dolor sit amet";
string capitalized = sentence.ToUppercaseFirstChar(); // "Lorem ipsum dolor sit amet"

API Reference

Extension Methods

Method Parameters Return Type Description
ToTitleCase() None string Converts string to Title Case
ToPascalCase() None string Converts string to PascalCase
ToCamelCase() None string Converts string to camelCase
ToSnakeCase() None string Converts string to snake_case
ToKebabCase() None string Converts string to kebab-case
ToMacroCase() None string Converts string to MACRO_CASE
ToUppercaseFirstChar() None string Capitalizes only the first character
ToLowercaseFirstChar() None string Makes only the first character lowercase

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and adhere to the existing coding style.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Showing the top 20 packages that depend on ktsu.CaseConverter.

Packages Downloads
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
150
ktsu.ImGui.Popups
Package Description
149
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
149
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
146
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
145
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
143
ktsu.ImGui.Popups
Package Description
143
ktsu.ImGui.Popups
Package Description
142
ktsu.ImGui.Popups
Package Description
141
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
141
ktsu.ImGui.Popups
Package Description
140
ktsu.ImGui.Popups
Package Description
139
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
96
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
90
ktsu.ImGui.Popups
Package Description
87
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
75
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
64
ktsu.AppDataStorage
Application data management library using JSON serialization to save and load data in the user's app data folder.
63

## v1.3.10 (patch) Changes since v1.3.9: - Remove legacy build scripts ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.9 (patch) Changes since v1.3.8: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync COPYRIGHT.md ([@ktsu[bot]](https://github.com/ktsu[bot])) - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync COPYRIGHT.md ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.7 (prerelease) Changes since v1.3.9-pre.6: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.6 (prerelease) Changes since v1.3.9-pre.5: - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.5 (prerelease) Changes since v1.3.9-pre.4: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.4 (prerelease) Changes since v1.3.9-pre.3: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.3 (prerelease) Changes since v1.3.9-pre.2: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync COPYRIGHT.md ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.2 (prerelease) Changes since v1.3.9-pre.1: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.9-pre.1 (prerelease) No significant changes detected since v1.3.9. ## v1.3.8 (patch) Changes since v1.3.7: - Remove .github\workflows\project.yml ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.7 (patch) Changes since v1.3.6: - Refactor null checks to use Ensure.NotNull for consistency ([@matt-edmondson](https://github.com/matt-edmondson)) - Refactor project files and update test assertions for clarity ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.6 (patch) Changes since v1.3.5: - Merge branch 'ktsu-dev:main' into main ([@Carl Henning Haugen](https://github.com/Carl Henning Haugen)) - Extend to Unicode letters ([@Carl Henning Haugen](https://github.com/Carl Henning Haugen)) ## v1.3.6-pre.3 (prerelease) Changes since v1.3.6-pre.2: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.6-pre.2 (prerelease) Changes since v1.3.6-pre.1: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.6-pre.1 (prerelease) No significant changes detected since v1.3.6. ## v1.3.5 (patch) Changes since v1.3.4: - Update .NET version to 10.0 and adjust coverage reporting in CI workflows ([@matt-edmondson](https://github.com/matt-edmondson)) - Add CLAUDE.md for project guidance and update project files for .NET 10.0 support ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.5-pre.3 (prerelease) Changes since v1.3.5-pre.2: - Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.5-pre.2 (prerelease) Changes since v1.3.5-pre.1: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.5-pre.1 (prerelease) No significant changes detected since v1.3.5. ## v1.3.4 (patch) Changes since v1.3.3: - Update .gitattributes, .runsettings, and build scripts for improved test coverage and CI/CD configuration ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.3 (patch) Changes since v1.3.2: - Add new configuration files and update build scripts for SDK management and CI/CD improvements ([@matt-edmondson](https://github.com/matt-edmondson)) - Update configuration files and scripts for improved build and test processes ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.3-pre.3 (prerelease) Changes since v1.3.3-pre.2: - Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .gitattributes ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.3-pre.2 (prerelease) Changes since v1.3.3-pre.1: - Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .gitattributes ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.3.3-pre.1 (prerelease) No significant changes detected since v1.3.3. ## v1.3.2 (patch) Changes since v1.3.1: - Fix project URL in New-License function to remove Owner variable, simplifying the URL construction. ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.2-pre.14 (prerelease) Changes since v1.3.2-pre.13: ## v1.3.2-pre.13 (prerelease) Changes since v1.3.2-pre.12: ## v1.3.2-pre.12 (prerelease) Changes since v1.3.2-pre.11: ## v1.3.2-pre.11 (prerelease) Changes since v1.3.2-pre.10: ## v1.3.2-pre.10 (prerelease) Changes since v1.3.2-pre.9: ## v1.3.2-pre.9 (prerelease) Changes since v1.3.2-pre.8: ## v1.3.2-pre.8 (prerelease) Changes since v1.3.2-pre.7: ## v1.3.2-pre.7 (prerelease) Changes since v1.3.2-pre.6: ## v1.3.2-pre.6 (prerelease) Changes since v1.3.2-pre.5: ## v1.3.2-pre.5 (prerelease) Changes since v1.3.2-pre.4: ## v1.3.2-pre.4 (prerelease) Changes since v1.3.2-pre.3: ## v1.3.2-pre.3 (prerelease) Changes since v1.3.2-pre.2: ## v1.3.2-pre.2 (prerelease) Changes since v1.3.2-pre.1: ## v1.3.2-pre.1 (prerelease) No significant changes detected since v1.3.2. ## v1.3.1 (patch) Changes since v1.3.0: - Remove obsolete build configuration files and scripts, including Directory.Build.props, Directory.Build.targets, and various PowerShell scripts for versioning and changelog generation. Update CaseConverter and its tests to use 'var' for variable declarations and add copyright headers. ([@matt-edmondson](https://github.com/matt-edmondson)) - Update README and project files to reflect new SDK and enhance documentation ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.3.1-pre.2 (prerelease) Changes since v1.3.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.3.1-pre.1 (prerelease) No significant changes detected since v1.3.1. ## v1.3.0 (minor) Changes since v1.2.0: - Add LICENSE template ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.2.1-pre.2 (prerelease) Changes since v1.2.1-pre.1: - 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.2.1-pre.1 (prerelease) Changes since v1.2.0: - Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.2.0 (minor) Changes since v1.1.0: - Update .editorconfig and enhance CaseConverter tests ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.1.2-pre.3 (prerelease) Changes since v1.1.2-pre.2: - 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.1.2-pre.2 (prerelease) Changes since v1.1.2-pre.1: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.2-pre.1 (prerelease) Changes since v1.1.1: - Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[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 from 3.7.2 to 3.7.3 ([@dependabot[bot]](https://github.com/dependabot[bot])) - Bump MSTest from 3.7.1 to 3.7.2 ([@dependabot[bot]](https://github.com/dependabot[bot])) - Bump coverlet.collector from 6.0.3 to 6.0.4 ([@dependabot[bot]](https://github.com/dependabot[bot])) - Bump MSTest from 3.7.0 to 3.7.1 ([@dependabot[bot]](https://github.com/dependabot[bot])) - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1 (patch) Changes since v1.1.0: - Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1-pre.23 (prerelease) Changes since v1.1.1-pre.22: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1-pre.22 (prerelease) Changes since v1.1.1-pre.21: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1-pre.21 (prerelease) Changes since v1.1.1-pre.20: ## v1.1.1-pre.20 (prerelease) Changes since v1.1.1-pre.19: ## v1.1.1-pre.19 (prerelease) Changes since v1.1.1-pre.18: - Bump MSTest from 3.7.2 to 3.7.3 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.1.1-pre.18 (prerelease) Changes since v1.1.1-pre.17: ## v1.1.1-pre.17 (prerelease) Changes since v1.1.1-pre.16: ## v1.1.1-pre.16 (prerelease) Changes since v1.1.1-pre.15: - Bump MSTest from 3.7.1 to 3.7.2 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.1.1-pre.15 (prerelease) Changes since v1.1.1-pre.14: - Bump coverlet.collector from 6.0.3 to 6.0.4 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.1.1-pre.14 (prerelease) Changes since v1.1.1-pre.13: ## v1.1.1-pre.13 (prerelease) Changes since v1.1.1-pre.12: ## v1.1.1-pre.12 (prerelease) Changes since v1.1.1-pre.11: ## v1.1.1-pre.11 (prerelease) Changes since v1.1.1-pre.10: - Bump MSTest from 3.7.0 to 3.7.1 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.1.1-pre.10 (prerelease) Changes since v1.1.1-pre.9: ## v1.1.1-pre.9 (prerelease) Changes since v1.1.1-pre.8: ## v1.1.1-pre.8 (prerelease) Changes since v1.1.1-pre.7: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1-pre.7 (prerelease) Changes since v1.1.1-pre.6: - 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.1.1-pre.6 (prerelease) Changes since v1.1.1-pre.5: ## v1.1.1-pre.5 (prerelease) Changes since v1.1.1-pre.4: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1-pre.4 (prerelease) Changes since v1.1.1-pre.3: ## v1.1.1-pre.3 (prerelease) Changes since v1.1.1-pre.2: ## v1.1.1-pre.2 (prerelease) Changes since v1.1.1-pre.1: - Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.1.1-pre.1 (prerelease) No significant changes detected since v1.1.1. ## v1.1.0 (minor) Changes since v1.0.29: - Add unit test project for CaseConverter ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.29 No significant changes detected since v1.0.29-pre.7. ## v1.0.29-pre.7 (prerelease) Changes since v1.0.29-pre.6: - Add automation scripts for metadata management and versioning ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.29-pre.6 (prerelease) Changes since v1.0.29-pre.5: ## v1.0.29-pre.5 (prerelease) Changes since v1.0.29-pre.4: - Bump coverlet.collector from 6.0.2 to 6.0.3 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.0.29-pre.4 (prerelease) Changes since v1.0.29-pre.3: ## v1.0.29-pre.3 (prerelease) Changes since v1.0.29-pre.2: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.29-pre.2 (prerelease) Changes since v1.0.29-pre.1: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.29-pre.1 (prerelease) No significant changes detected since v1.0.29. ## v1.0.28-pre.1 (prerelease) Changes since v1.0.27: - Renamed metadata files ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.27 (patch) Changes since v1.0.26: - Sync icon.png ([@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 for improved formatting and clarity ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.23 (patch) Changes since v1.0.22: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.22 (patch) Changes since v1.0.21: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.21 (patch) Changes since v1.0.20: - Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.20 (patch) Changes since v1.0.19: - Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .github\workflows\dotnet.yml ([@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])) - Bump MSTest.TestAdapter from 3.6.4 to 3.7.0 ([@dependabot[bot]](https://github.com/dependabot[bot])) - Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot])) - Bump MSTest.TestFramework from 3.6.4 to 3.7.0 ([@dependabot[bot]](https://github.com/dependabot[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.19 (patch) Changes since v1.0.18: - 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.18 (patch) Changes since v1.0.17: - Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.17 (patch) Changes since v1.0.16: - Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.16 (patch) Changes since v1.0.15: - Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync Directory.Build.props ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.15 (patch) Changes since v1.0.14: - Bump Microsoft.NET.Test.Sdk in the microsoft group ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.0.14 (patch) Changes since v1.0.13: - Bump MSTest.TestFramework from 3.6.2 to 3.6.3 ([@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.13 (patch) Changes since v1.0.12: - Bump MSTest.TestFramework from 3.6.1 to 3.6.2 ([@dependabot[bot]](https://github.com/dependabot[bot])) - Bump MSTest.TestAdapter from 3.6.0 to 3.6.2 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.0.12 (patch) Changes since v1.0.11: - Bump MSTest.TestFramework from 3.6.0 to 3.6.1 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.0.11 (patch) Changes since v1.0.10: - Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.10 (patch) Changes since v1.0.9: - Update VERSION to 1.0.10 ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.10-pre.1 (prerelease) Changes since v1.0.10: - Renamed metadata files ([@matt-edmondson](https://github.com/matt-edmondson)) - Replace LICENSE file with LICENSE.md for improved formatting and clarity ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.19 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.18 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.17 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.16 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.15 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.14 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.13 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.12 ([@matt-edmondson](https://github.com/matt-edmondson)) - Update VERSION to 1.0.11 ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.9 (patch) Changes since v1.0.8: - 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.8 (patch) Changes since v1.0.7: - Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.7 (patch) Changes since v1.0.6: - Sync .github\workflows\dependabot-merge.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\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) ## v1.0.4 (patch) Changes since v1.0.3: - 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])) - Sync .github\workflows\dependabot-merge.yml ([@ktsu[bot]](https://github.com/ktsu[bot])) - Sync .github\workflows\dotnet.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])) - Bump MSTest.TestFramework from 3.5.2 to 3.6.0 ([@dependabot[bot]](https://github.com/dependabot[bot])) ## v1.0.3 (patch) Changes since v1.0.2: - 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.2 (patch) Changes since v1.0.1: - Update VERSION ([@matt-edmondson](https://github.com/matt-edmondson)) - Migrate ktsu.io to ktsu namespace ([@matt-edmondson](https://github.com/matt-edmondson)) ## v1.0.1 (major) - Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson)) - Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson)) - Update build scripts ([@matt-edmondson](https://github.com/matt-edmondson)) - Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson)) - Update Directory.Build.targets ([@matt-edmondson](https://github.com/matt-edmondson)) - Update Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson)) - Update build config ([@matt-edmondson](https://github.com/matt-edmondson)) - Update LICENSE ([@matt-edmondson](https://github.com/matt-edmondson)) - Update nuget.config ([@matt-edmondson](https://github.com/matt-edmondson)) - Update nuget.config ([@matt-edmondson](https://github.com/matt-edmondson)) - Make title case split words on case change so it can convert pascal to title ([@matt-edmondson](https://github.com/matt-edmondson)) - Update description and readme ([@matt-edmondson](https://github.com/matt-edmondson)) - Update LICENSE ([@matt-edmondson](https://github.com/matt-edmondson)) - Create dependabot-merge.yml ([@matt-edmondson](https://github.com/matt-edmondson)) - Fix misplaced usings ([@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)) - Update Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson)) - Read from AUTHORS file during build ([@matt-edmondson](https://github.com/matt-edmondson)) - Read PackageDescription from DESCRIPTION file ([@matt-edmondson](https://github.com/matt-edmondson)) - Create VERSION ([@matt-edmondson](https://github.com/matt-edmondson)) - Read from VERSION when building ([@matt-edmondson](https://github.com/matt-edmondson)) - Assign dependabot PRs to matt ([@matt-edmondson](https://github.com/matt-edmondson)) - Dont try to push packages when building pull requests ([@matt-edmondson](https://github.com/matt-edmondson)) - Avoid double upload of symbols package ([@matt-edmondson](https://github.com/matt-edmondson)) - Enable dependabot and sourcelink ([@matt-edmondson](https://github.com/matt-edmondson)) - Migrate from .project.props to Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson)) - Fix code style errors ([@matt-edmondson](https://github.com/matt-edmondson)) - Update .editorconfig ([@matt-edmondson](https://github.com/matt-edmondson)) - Update README.md ([@matt-edmondson](https://github.com/matt-edmondson)) - Make snake_case derive from MACRO_CASE rather than vice-versa per dotnet's suggestion as uppercase is more resilient to round-trip conversion ([@matt-edmondson](https://github.com/matt-edmondson)) - Initial commit ([@matt-edmondson](https://github.com/matt-edmondson)) - Initial commit ([@matt-edmondson](https://github.com/matt-edmondson))

Version Downloads Last updated
1.3.12 1 02/16/2026
1.3.11 1 02/16/2026
1.3.11-pre.1 2 02/16/2026
1.3.10 15 02/14/2026
1.3.9 13 02/14/2026
1.3.9-pre.7 58 02/06/2026
1.3.9-pre.6 56 02/05/2026
1.3.9-pre.5 54 02/03/2026
1.3.9-pre.4 55 02/01/2026
1.3.9-pre.3 55 01/31/2026
1.3.9-pre.2 56 01/31/2026
1.3.9-pre.1 56 01/31/2026
1.3.8 57 01/30/2026
1.3.7 59 01/29/2026
1.3.6 63 01/27/2026
1.3.6-pre.3 58 01/26/2026
1.3.6-pre.2 60 01/25/2026
1.3.6-pre.1 59 01/24/2026
1.3.5 62 01/19/2026
1.3.5-pre.3 153 11/24/2025
1.3.5-pre.2 149 11/23/2025
1.3.5-pre.1 156 11/23/2025
1.3.3 152 08/16/2025