public static CodeStyleOption <ExpressionBodyPreference> ParseExpressionBodyPreference(
            string optionString, CodeStyleOption <ExpressionBodyPreference> @default)
        {
            // optionString must be similar to true:error or when_on_single_line:suggestion.
            if (CodeStyleHelpers.TryGetCodeStyleValueAndOptionalNotification(optionString,
                                                                             out var value, out var notificationOpt))
            {
                // A notification value must be provided.
                if (notificationOpt != null)
                {
                    if (bool.TryParse(value, out var boolValue))
                    {
                        return(boolValue
                            ? new CodeStyleOption <ExpressionBodyPreference>(ExpressionBodyPreference.WhenPossible, notificationOpt)
                            : new CodeStyleOption <ExpressionBodyPreference>(ExpressionBodyPreference.Never, notificationOpt));
                    }

                    if (value == "when_on_single_line")
                    {
                        return(new CodeStyleOption <ExpressionBodyPreference>(ExpressionBodyPreference.WhenOnSingleLine, notificationOpt));
                    }
                }
            }

            return(@default);
        }
Beispiel #2
0
        public static CodeStyleOption <AddImportPlacement> ParseUsingDirectivesPlacement(
            string optionString, CodeStyleOption <AddImportPlacement> @default)
        {
            // optionString must be similar to outside_namespace:error or inside_namespace:suggestion.
            if (CodeStyleHelpers.TryGetCodeStyleValueAndOptionalNotification(
                    optionString, out var value, out var notificationOpt))
            {
                // A notification value must be provided.
                if (notificationOpt != null)
                {
                    switch (value)
                    {
                    case "inside_namespace":
                        return(new CodeStyleOption <AddImportPlacement>(AddImportPlacement.InsideNamespace, notificationOpt));

                    case "outside_namespace":
                        return(new CodeStyleOption <AddImportPlacement>(AddImportPlacement.OutsideNamespace, notificationOpt));

                    default:
                        throw new NotSupportedException();
                    }
                }
            }

            return(@default);
        }
Beispiel #3
0
        private static CodeStyleOption <PreferBracesPreference> ParsePreferBracesPreference(
            string optionString,
            CodeStyleOption <PreferBracesPreference> defaultValue)
        {
            if (CodeStyleHelpers.TryGetCodeStyleValueAndOptionalNotification(
                    optionString,
                    out var value,
                    out var notificationOption))
            {
                if (notificationOption != null)
                {
                    if (bool.TryParse(value, out var boolValue))
                    {
                        return(boolValue
                            ? new CodeStyleOption <PreferBracesPreference>(PreferBracesPreference.Always, notificationOption)
                            : new CodeStyleOption <PreferBracesPreference>(PreferBracesPreference.None, notificationOption));
                    }
                }

                if (value == "when_multiline")
                {
                    return(new CodeStyleOption <PreferBracesPreference>(PreferBracesPreference.WhenMultiline, notificationOption));
                }
            }

            return(defaultValue);
        }
Beispiel #4
0
        public static Optional <OperatorPlacementWhenWrappingPreference> Parse(string optionString)
        {
            if (CodeStyleHelpers.TryGetCodeStyleValueAndOptionalNotification(
                    optionString, out var value, out var notificationOpt))
            {
                switch (value)
                {
                case end_of_line: return(OperatorPlacementWhenWrappingPreference.EndOfLine);

                case beginning_of_line: return(OperatorPlacementWhenWrappingPreference.BeginningOfLine);
                }
            }

            // Default to beginning_of_line if we get something we don't understand.
            return(OperatorPlacementWhenWrappingPreference.BeginningOfLine);
        }