Library for easy conversion between different naming conventions
License
—
Deps
0
Install Size
—
Vulns
✓ 0
Published
Mar 4, 2022
$ dotnet add package CaseDotNetString manipulation library built with intention to make naming conventions conversion easy
Suddenly, suffering from urgent need of easy and performant way to convert strings from arbitrary naming convention
to camelCase, I went out searching around NuGet and found out that there are not many options available in .NET (actually one),
which would be public, and not part of some parent project.
I see that as a huge overlook, considering amount of such packages for other languages (JS, for example), so I decided
it would be quite useful to write something which will be reliable and extensible, so here it is.
Note that library is still in development and is lacking some planned functionality (see TODO) or may contain bugs, feel free to report them in the issues section
camelCasePascalCasesnake_casekebab-caseRegex usage, tokenization done by simple condition-based lexers choosing leftmost overlapped sequence (smallest possible token size is chosen)Default Case.NET.Parsing.Parser implementation is not thread-safe in netstandard2.0 build while it is in netstandard2.1.
Thus it's recommended to have a Parser instance for each thread, if your project is targeting .NET Framework, or .NET Core 2.0-2.2
For the same reason Parser.Universal is a property, returning new instance every call in netstandard2.0, while it is a static field in netstandard2.1
NuGet package is listed under name of
CaseDotNetsinceCase.NETwas reserved
Install-Package CaseDotNet -Version 0.3.0
using Case.NET
Class Case.NET.CaseConverter contains static fields with built-in converters under corresponding names:
static void Main(string[] args) {
CasedString converted = CaseConverter.CamelCase.ConvertCase("not_camel_case");
Console.WriteLine((string)converted); // notCamelCase
}
camelCasePascalCasesnake_caseCONSTANT_CASEkebab-caseTrain-CaseCapital Casedot.caseNamespace.Caseno casepath/case (With optional backslash \ as delimiter)Sentence caseTitle CaseSwap Case -> sWAP cASEFeNcE CaSeSPonGE CasEreVERse spONge cASeRanDOM CAse