提交 e1c4a0b1 编写于 作者: J Jonathon Marolf

add try parse methods for CodeStyleOption

上级 c3ab8f0c
......@@ -5,37 +5,47 @@ namespace Microsoft.CodeAnalysis.CodeStyle
internal static class CodeStyleHelpers
{
public static CodeStyleOption<bool> ParseEditorConfigCodeStyleOption(string arg)
{
TryParseEditorConfigCodeStyleOption(arg, out var option);
return option;
}
public static bool TryParseEditorConfigCodeStyleOption(string arg, out CodeStyleOption<bool> option)
{
var args = arg.Split(':');
bool isEnabled = false;
var isEnabled = false;
if (args.Length != 2)
{
if (args.Length == 1)
{
if (bool.TryParse(args[0].Trim(), out isEnabled) && !isEnabled)
{
return new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.None);
option = new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.None);
return true;
}
else
{
return CodeStyleOption<bool>.Default;
option = CodeStyleOption<bool>.Default;
return false;
}
}
return CodeStyleOption<bool>.Default;
option = CodeStyleOption<bool>.Default;
return false;
}
if (!bool.TryParse(args[0].Trim(), out isEnabled))
{
return CodeStyleOption<bool>.Default;
option = CodeStyleOption<bool>.Default;
return false;
}
switch (args[1].Trim())
{
case EditorConfigSeverityStrings.Silent: return new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.None);
case EditorConfigSeverityStrings.Suggestion: return new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.Suggestion);
case EditorConfigSeverityStrings.Warning: return new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.Warning);
case EditorConfigSeverityStrings.Error: return new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.Error);
default: return new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.None);
case EditorConfigSeverityStrings.Silent: option = new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.None); return true;
case EditorConfigSeverityStrings.Suggestion: option = new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.Suggestion); return true;
case EditorConfigSeverityStrings.Warning: option = new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.Warning); return true;
case EditorConfigSeverityStrings.Error: option = new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.Error); return true;
default: option = new CodeStyleOption<bool>(value: isEnabled, notification: NotificationOption.None); return false;
}
}
}
......
......@@ -32,7 +32,8 @@ internal sealed class EditorConfigStorageLocation : OptionStorageLocation
}
else if (type == typeof(CodeStyleOption<bool>))
{
return ParseEditorConfigCodeStyleOption(s);
var value = CodeStyleOption<bool>.Default;
return TryParseEditorConfigCodeStyleOption(s, out value) ? value : null;
}
else
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册