Esempio n. 1
0
        /// <summary>
        /// Formats PascalCase (upper CamelCase) and (lower) camelCase words to a friendly format separated by the given delimiter (space by default).
        /// </summary>
        /// <param name="input">CamelCase input to format</param>
        /// <param name="delimiter">Delimiter to use for formatting (space by default)</param>
        /// <param name="capitalizeFirstCharacter">Capitalize the first character for (lower) camelCase words (false by default)</param>
        public static string FormatCamelCase(string input, string delimiter = " ", CamelCaseOptions camelCaseOptions = CamelCaseOptions.None)
        {
            if (String.IsNullOrEmpty(delimiter))
            {
                throw new ArgumentException("Delimiter can't be null or empty", "delimiter");
            }

            string result;
            if (camelCaseOptions.HasFlag(CamelCaseOptions.CapitalizeFirstCharacter) || camelCaseOptions.HasFlag(CamelCaseOptions.CapitalizeFirstCharacterInvariantCulture))
            {
                result = _formatCamelCaseCapitalizeRegex.Replace(input, m => EvaluateCamelCaseMatchWithCapitalization(m, delimiter, camelCaseOptions));
            }
            else
            {
                var replacement = delimiter + "$1";
                result = _formatCamelCaseRegex.Replace(input, replacement);
            }

            return result;
        }
Esempio n. 2
0
        /// <summary>
        /// Formats PascalCase (upper CamelCase) and (lower) camelCase words to a friendly format separated by the given delimiter (space by default).
        /// </summary>
        /// <param name="input">CamelCase input to format</param>
        /// <param name="delimiter">Delimiter to use for formatting (space by default)</param>
        /// <param name="capitalizeFirstCharacter">Capitalize the first character for (lower) camelCase words (false by default)</param>
        public static string FormatCamelCase(string input, string delimiter = " ", CamelCaseOptions camelCaseOptions = CamelCaseOptions.None)
        {
            if (String.IsNullOrEmpty(delimiter))
            {
                throw new ArgumentException("Delimiter can't be null or empty", "delimiter");
            }

            string result;

            if (camelCaseOptions.HasFlag(CamelCaseOptions.CapitalizeFirstCharacter) || camelCaseOptions.HasFlag(CamelCaseOptions.CapitalizeFirstCharacterInvariantCulture))
            {
                result = _formatCamelCaseCapitalizeRegex.Replace(input, m => EvaluateCamelCaseMatchWithCapitalization(m, delimiter, camelCaseOptions));
            }
            else
            {
                var replacement = delimiter + "$1";
                result = _formatCamelCaseRegex.Replace(input, replacement);
            }

            return(result);
        }
Esempio n. 3
0
        private static string EvaluateCamelCaseMatchWithCapitalization(Match m, string delimiter, CamelCaseOptions options)
        {
            string result;

            if (m.Groups["LowerCaseChar"].Value != String.Empty)
            {
                if (options.HasFlag(CamelCaseOptions.CapitalizeFirstCharacterInvariantCulture))
                {
                    result = m.Groups["LowerCaseChar"].Value.ToUpperInvariant();
                }
                else
                {
                    result = m.Groups["LowerCaseChar"].Value.ToUpper();
                }
            }
            else
            {
                result = delimiter + m.Groups[1].Value;
            }

            return(result);
        }
Esempio n. 4
0
        private static string EvaluateCamelCaseMatchWithCapitalization(Match m, string delimiter, CamelCaseOptions options)
        {
            string result;

            if (m.Groups["LowerCaseChar"].Value != String.Empty)
            {
                if (options.HasFlag(CamelCaseOptions.CapitalizeFirstCharacterInvariantCulture))
                {
                    result = m.Groups["LowerCaseChar"].Value.ToUpperInvariant();
                }
                else
                {
                    result = m.Groups["LowerCaseChar"].Value.ToUpper();
                }
            }
            else
            {
                result = delimiter + m.Groups[1].Value;
            }

            return result;
        }