Ejemplo n.º 1
0
        public string GetSealedOrCased(CasingStyle casing, OriginKind?sealOrigin = null, LanguageInfo sealLanguage = null)
        {
            if (IsOriginalNameSealed(sealOrigin, sealLanguage))
            {
                return(OriginalName);
            }

            return(ToString(casing));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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");
            }
        }
Ejemplo n.º 7
0
            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));
            }
Ejemplo n.º 8
0
 /// <summary>
 /// Constructs a new QuotedIdentifierStyle.
 /// </summary>
 public QuotedIdentifierStyle(CasingStyle style = CasingStyle.LowerCase, char separator = '_')
 {
     this.style     = style;
     this.separator = separator;
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Constructs a new SentenceStyle.
 /// </summary>
 public SentenceStyle(CasingStyle style = CasingStyle.LowerCase)
 {
     this.style = style;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Constructs a new DashStyle.
 /// </summary>
 public DashStyle(CasingStyle style)
 {
     this.style = style;
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Constructs a new UnderscoreStyle.
 /// </summary>
 public UnderscoreStyle(CasingStyle style = CasingStyle.LowerCase)
 {
     this.style = style;
 }
Ejemplo n.º 12
0
        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());
        }
Ejemplo n.º 13
0
        public static string ConvertCasing(string original, CasingStyle originalCasing, CasingStyle newCasing)
        {
            var name = new IdentifierName(original, language: null, style: originalCasing);

            return(name.ToString(newCasing));
        }
Ejemplo n.º 14
0
 public void IsCasingStyleValid(bool expected, string input, CasingStyle casingStyle)
 => Assert.Equal(expected, input.IsCasingStyleValid(casingStyle));
Ejemplo n.º 15
0
        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);
        }