提交 87018e59 编写于 作者: A Adam Speight 提交者: Heejae Chang

#30296 Change Signature Dialog update to include VB style. (#30332)

* Updated ChangeSignature dialog to show VB code, when language is Visual Basic.
Updated to more modern style of usage.

* Unify the local functions.
Move local function to after last return of block.
上级 86355b54
......@@ -440,90 +440,92 @@ public string RestoreAutomationText
public class ParameterViewModel
{
private readonly IParameterSymbol _parameter;
private ChangeSignatureDialogViewModel _changeSignatureDialogViewModel;
public IParameterSymbol ParameterSymbol
{
get { return _parameter; }
}
public IParameterSymbol ParameterSymbol { get; }
public ParameterViewModel(ChangeSignatureDialogViewModel changeSignatureDialogViewModel, IParameterSymbol parameter)
{
_changeSignatureDialogViewModel = changeSignatureDialogViewModel;
_parameter = parameter;
ParameterSymbol = parameter;
}
public string ParameterAutomationText
{
get { return $"{Type} {Parameter}"; }
}
public string ParameterAutomationText => $"{Type} {Parameter}";
public string Modifier
{
get
{
// Todo: support VB
switch (_parameter.RefKind)
switch (ParameterSymbol.Language)
{
case RefKind.Out:
return "out";
case RefKind.Ref:
return "ref";
case RefKind.In:
return "in";
case LanguageNames.CSharp:
return ModifierText("out","ref","in","params","this");
case LanguageNames.VisualBasic:
return ModifierText(@ref: "ByRef", @params: "ParamArray", @this: "Me");
default:
return string.Empty;
}
if (_parameter.IsParams)
string ModifierText(string @out = default, string @ref = default, string @in = default, string @params = default, string @this = default)
{
return "params";
}
if (_changeSignatureDialogViewModel._thisParameter != null &&
_parameter == _changeSignatureDialogViewModel._thisParameter._parameter)
{
return "this";
switch (ParameterSymbol.RefKind)
{
case RefKind.Out:
return @out ?? string.Empty;
case RefKind.Ref:
return @ref ?? string.Empty;
case RefKind.In:
return @in ?? string.Empty;
}
if (ParameterSymbol.IsParams)
{
return @params ?? string.Empty;
}
if (_changeSignatureDialogViewModel._thisParameter != null &&
ParameterSymbol == _changeSignatureDialogViewModel._thisParameter.ParameterSymbol)
{
return @this ?? string.Empty;
}
return string.Empty;
}
return string.Empty;
}
}
public string Type
{
get { return _parameter.Type.ToDisplayString(s_parameterDisplayFormat); }
}
public string Type => ParameterSymbol.Type.ToDisplayString(s_parameterDisplayFormat);
public string Parameter
{
get { return _parameter.Name; }
}
public string Parameter => ParameterSymbol.Name;
public string Default
{
get
{
if (!_parameter.HasExplicitDefaultValue)
if (!ParameterSymbol.HasExplicitDefaultValue)
{
return string.Empty;
}
switch (ParameterSymbol.Language)
{
case LanguageNames.CSharp:
return NullText("null");
case LanguageNames.VisualBasic:
return NullText("Nothing");
}
return string.Empty;
return _parameter.ExplicitDefaultValue == null
? "null"
: _parameter.ExplicitDefaultValue is string
? "\"" + _parameter.ExplicitDefaultValue.ToString() + "\""
: _parameter.ExplicitDefaultValue.ToString();
}
}
string NullText(string @null)
{
return ParameterSymbol.ExplicitDefaultValue == null ? @null :
ParameterSymbol.ExplicitDefaultValue is string ? "\"" + ParameterSymbol.ExplicitDefaultValue.ToString() + "\"" :
ParameterSymbol.ExplicitDefaultValue.ToString();
}
public bool IsDisabled
{
get
{
return _changeSignatureDialogViewModel.IsDisabled(this);
}
}
public bool IsDisabled => _changeSignatureDialogViewModel.IsDisabled(this);
public bool NeedsBottomBorder
{
get
......@@ -549,19 +551,7 @@ public bool NeedsBottomBorder
}
}
private bool _isRemoved;
public bool IsRemoved
{
get
{
return _isRemoved;
}
set
{
_isRemoved = value;
}
}
public bool IsRemoved { get; set; }
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册