public string GetSealedOrCased(CasingStyle casing, OriginKind?sealOrigin = null, LanguageInfo sealLanguage = null) { if (IsOriginalNameSealed(sealOrigin, sealLanguage)) { return(OriginalName); } return(ToString(casing)); }
public static IdentifierName Flatten(string qualifiedName, CasingStyle currentCasing, string separator = ".") { var flattenedString = qualifiedName?.Replace(separator, string.Empty); return(new IdentifierName( flattenedString, language: null, style: currentCasing)); }
public static IdentifierName Unqualify(string qualifiedName, CasingStyle currentCasing, string separator = ".") { var unqualifiedString = qualifiedName ?.Split(new[] { separator }, StringSplitOptions.RemoveEmptyEntries) .LastOrDefault(); return(new IdentifierName( unqualifiedString, language: null, style: currentCasing)); }
public string ToString(CasingStyle style) { var separator = GetSeparator(style); var result = new StringBuilder(); for (int i = 0; i < Fragments.Count; i++) { result.Append(Fragments[i].ToString(style, first: i == 0)); if (i < Fragments.Count - 1) { result.Append(separator); } } return(result.ToString()); }
private static string GetSeparator(CasingStyle style) { switch (style) { case CasingStyle.Kebab: return(HyphenSeparator); case CasingStyle.Snake: case CasingStyle.ScreamingCaps: return(UnderscoreSeparator); case CasingStyle.UserFriendly: return(" "); ; default: return(string.Empty); } }
public static string Convert(string source, CasingStyle targetStyle) { if (source == null) { throw new ArgumentNullException("source"); } switch (targetStyle) { case CasingStyle.None: return(source); case CasingStyle.Title: return(source.ExpandToTitleCase()); case CasingStyle.Sentence: return(source.ExpandToSentenceCase()); case CasingStyle.Hungarian: return(source.ToHungarianCase()); case CasingStyle.Pascal: return(source.ToPascalCase()); case CasingStyle.Snake: return(source.ToSnakeCase()); case CasingStyle.ScreamingSnake: return(source.ToScreamingSnakeCase()); case CasingStyle.Spinal: return(source.ToSpinalCase()); case CasingStyle.Train: return(source.ToTrainCase()); default: throw new ArgumentOutOfRangeException("targetStyle"); } }
public string ToString(CasingStyle style, bool first) { switch (style) { case CasingStyle.Kebab: case CasingStyle.Snake: return(Text); case CasingStyle.Camel: return(first ? Text : char.ToUpper(Text[0]) + Text.Substring(1)); case CasingStyle.Pascal: return(char.ToUpper(Text[0]) + Text.Substring(1)); case CasingStyle.ScreamingCaps: return(Text.ToUpper()); case CasingStyle.UserFriendly: return(first ? char.ToUpper(Text[0]) + Text.Substring(1) : Text); } throw new ArgumentOutOfRangeException(nameof(style)); }
/// <summary> /// Constructs a new QuotedIdentifierStyle. /// </summary> public QuotedIdentifierStyle(CasingStyle style = CasingStyle.LowerCase, char separator = '_') { this.style = style; this.separator = separator; }
/// <summary> /// Constructs a new SentenceStyle. /// </summary> public SentenceStyle(CasingStyle style = CasingStyle.LowerCase) { this.style = style; }
/// <summary> /// Constructs a new DashStyle. /// </summary> public DashStyle(CasingStyle style) { this.style = style; }
/// <summary> /// Constructs a new UnderscoreStyle. /// </summary> public UnderscoreStyle(CasingStyle style = CasingStyle.LowerCase) { this.style = style; }
internal string Separated(string str, CasingStyle segmentStyle, char separator = '\0', char quote = '\0') { if (str == null) { throw new ArgumentNullException(nameof(str)); } using var sw = new StringWriter(); if (quote != '\0') { sw.Write(quote); } bool isUpper = IsAllUpper(str); bool first = true; foreach (var segment in GetSegments(str)) { if (!first) { if (separator != '\0') { sw.Write(separator); } } for (int i = segment.Start; i < segment.End; i++) { var c = str[i]; if (i == segment.Start) { switch (segmentStyle) { case CasingStyle.LowerCase: c = char.ToLowerInvariant(c); break; case CasingStyle.TitleCase: case CasingStyle.UpperCase: c = char.ToUpperInvariant(c); break; } } else { switch (segmentStyle) { case CasingStyle.LowerCase: c = char.ToLowerInvariant(c); break; case CasingStyle.TitleCase: if (isUpper) { c = char.ToLowerInvariant(c); } break; case CasingStyle.UpperCase: c = char.ToUpperInvariant(c); break; } } sw.Write(c); } first = false; } if (quote != '\0') { sw.Write(quote); } return(sw.ToString()); }
public static string ConvertCasing(string original, CasingStyle originalCasing, CasingStyle newCasing) { var name = new IdentifierName(original, language: null, style: originalCasing); return(name.ToString(newCasing)); }
public void IsCasingStyleValid(bool expected, string input, CasingStyle casingStyle) => Assert.Equal(expected, input.IsCasingStyleValid(casingStyle));
public static bool IsCasingStyleValid(this string value, CasingStyle casingStyle) { if (string.IsNullOrEmpty(value)) { return(true); } switch (casingStyle) { case CasingStyle.CamelCase: if (value.IsFirstCharacterUpperCase() || value.IndexOfAny(new[] { ' ', '-', '_' }) != -1) { return(false); } if (value.Length > 1) { for (int i = 0; i < value.Length - 1; i++) { if (char.IsUpper(value[i]) && char.IsUpper(value[i + 1])) { return(false); } } } break; case CasingStyle.KebabCase: if (value.Any(char.IsUpper) || value.IndexOfAny(new[] { ' ', '_' }) != -1) { return(false); } break; case CasingStyle.PascalCase: if (value.IsFirstCharacterLowerCase() || value.IndexOfAny(new[] { ' ', '-', '_' }) != -1) { return(false); } if (value.Length > 1 && char.IsUpper(value[1])) { return(false); } break; case CasingStyle.SnakeCase: if (value.Any(char.IsUpper) || value.IndexOfAny(new[] { ' ', '-' }) != -1) { return(false); } break; default: throw new SwitchCaseDefaultException(casingStyle); } return(true); }