Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
a89d7716
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a89d7716
编写于
10月 29, 2019
作者:
I
Ivan Basov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow opening showing change signature for parameterless methods
上级
d69225a4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
39 addition
and
29 deletion
+39
-29
src/Features/Core/Portable/ChangeSignature/AbstractChangeSignatureService.cs
...ortable/ChangeSignature/AbstractChangeSignatureService.cs
+1
-1
src/Features/Core/Portable/ChangeSignature/ParameterBase.cs
src/Features/Core/Portable/ChangeSignature/ParameterBase.cs
+3
-3
src/Features/Core/Portable/ChangeSignature/ParameterConfiguration.cs
...s/Core/Portable/ChangeSignature/ParameterConfiguration.cs
+16
-14
src/VisualStudio/Core/Def/Implementation/ChangeSignature/ChangeSignatureDialogViewModel.cs
...ntation/ChangeSignature/ChangeSignatureDialogViewModel.cs
+18
-10
src/VisualStudio/Core/Test/ChangeSignature/ChangeSignatureViewModelTests.vb
...ore/Test/ChangeSignature/ChangeSignatureViewModelTests.vb
+1
-1
未找到文件。
src/Features/Core/Portable/ChangeSignature/AbstractChangeSignatureService.cs
浏览文件 @
a89d7716
...
...
@@ -136,7 +136,7 @@ internal ChangeSignatureResult ChangeSignature(Document document, int position,
return
new
ChangeSignatureAnalyzedContext
(
CannotChangeSignatureReason
.
IncorrectKind
);
}
var
parameterConfiguration
=
ParameterConfiguration
.
Create
(
symbol
.
GetParameters
().
Select
(
p
=>
new
ExistingParameter
(
p
)).
ToList
<
CoolParameter
>(),
symbol
is
IMethodSymbol
&&
(
symbol
as
IMethodSymbol
).
IsExtensionMethod
,
selectedIndex
);
var
parameterConfiguration
=
ParameterConfiguration
.
Create
(
symbol
.
GetParameters
().
Select
(
p
=>
new
ExistingParameter
(
p
)).
ToList
<
ParameterBase
>(),
symbol
is
IMethodSymbol
&&
(
symbol
as
IMethodSymbol
).
IsExtensionMethod
,
selectedIndex
);
if
(!
parameterConfiguration
.
IsChangeable
())
{
return
new
ChangeSignatureAnalyzedContext
(
CannotChangeSignatureReason
.
InsufficientParameters
);
...
...
src/Features/Core/Portable/ChangeSignature/
CoolParameter
.cs
→
src/Features/Core/Portable/ChangeSignature/
ParameterBase
.cs
浏览文件 @
a89d7716
...
...
@@ -2,14 +2,14 @@
namespace
Microsoft.CodeAnalysis.ChangeSignature
{
internal
abstract
class
CoolParameter
internal
abstract
class
ParameterBase
{
public
abstract
bool
HasExplicitDefaultValue
{
get
;
}
public
abstract
string
Name
{
get
;
}
public
abstract
IParameterSymbol
Symbol
{
get
;
}
}
internal
class
ExistingParameter
:
CoolParameter
internal
class
ExistingParameter
:
ParameterBase
{
public
override
IParameterSymbol
Symbol
{
get
;
}
...
...
@@ -22,7 +22,7 @@ public ExistingParameter(IParameterSymbol param)
public
override
string
Name
=>
Symbol
.
Name
;
}
internal
class
AddedParameter
:
CoolParameter
internal
class
AddedParameter
:
ParameterBase
{
public
AddedParameter
(
string
type
,
string
parameter
,
string
callsite
)
{
...
...
src/Features/Core/Portable/ChangeSignature/ParameterConfiguration.cs
浏览文件 @
a89d7716
...
...
@@ -8,13 +8,13 @@ namespace Microsoft.CodeAnalysis.ChangeSignature
{
internal
sealed
class
ParameterConfiguration
{
public
readonly
CoolParameter
ThisParameter
;
public
readonly
List
<
CoolParameter
>
ParametersWithoutDefaultValues
;
public
readonly
List
<
CoolParameter
>
RemainingEditableParameters
;
public
readonly
CoolParameter
ParamsParameter
;
public
readonly
ParameterBase
ThisParameter
;
public
readonly
List
<
ParameterBase
>
ParametersWithoutDefaultValues
;
public
readonly
List
<
ParameterBase
>
RemainingEditableParameters
;
public
readonly
ParameterBase
ParamsParameter
;
public
readonly
int
SelectedIndex
;
public
ParameterConfiguration
(
CoolParameter
thisParameter
,
List
<
CoolParameter
>
parametersWithoutDefaultValues
,
List
<
CoolParameter
>
remainingEditableParameters
,
CoolParameter
paramsParameter
,
int
selectedIndex
)
public
ParameterConfiguration
(
ParameterBase
thisParameter
,
List
<
ParameterBase
>
parametersWithoutDefaultValues
,
List
<
ParameterBase
>
remainingEditableParameters
,
ParameterBase
paramsParameter
,
int
selectedIndex
)
{
ThisParameter
=
thisParameter
;
ParametersWithoutDefaultValues
=
parametersWithoutDefaultValues
;
...
...
@@ -23,12 +23,12 @@ public ParameterConfiguration(CoolParameter thisParameter, List<CoolParameter> p
SelectedIndex
=
selectedIndex
;
}
public
static
ParameterConfiguration
Create
(
List
<
CoolParameter
>
parameters
,
bool
isExtensionMethod
,
int
selectedIndex
)
public
static
ParameterConfiguration
Create
(
List
<
ParameterBase
>
parameters
,
bool
isExtensionMethod
,
int
selectedIndex
)
{
CoolParameter
thisParameter
=
null
;
var
parametersWithoutDefaultValues
=
new
List
<
CoolParameter
>();
var
remainingReorderableParameters
=
new
List
<
CoolParameter
>();
CoolParameter
paramsParameter
=
null
;
ParameterBase
thisParameter
=
null
;
var
parametersWithoutDefaultValues
=
new
List
<
ParameterBase
>();
var
remainingReorderableParameters
=
new
List
<
ParameterBase
>();
ParameterBase
paramsParameter
=
null
;
if
(
parameters
.
Count
>
0
&&
isExtensionMethod
)
{
...
...
@@ -58,12 +58,12 @@ public static ParameterConfiguration Create(List<CoolParameter> parameters, bool
internal
ParameterConfiguration
WithoutAddedParameters
()
{
return
Create
(
ToListOfParameters
().
OfType
<
ExistingParameter
>().
ToList
<
CoolParameter
>(),
ThisParameter
!=
null
,
selectedIndex
:
0
);
return
Create
(
ToListOfParameters
().
OfType
<
ExistingParameter
>().
ToList
<
ParameterBase
>(),
ThisParameter
!=
null
,
selectedIndex
:
0
);
}
public
List
<
CoolParameter
>
ToListOfParameters
()
public
List
<
ParameterBase
>
ToListOfParameters
()
{
var
list
=
new
List
<
CoolParameter
>();
var
list
=
new
List
<
ParameterBase
>();
if
(
ThisParameter
!=
null
)
{
...
...
@@ -81,9 +81,11 @@ public List<CoolParameter> ToListOfParameters()
return
list
;
}
// TODO probably remove thiis check. It was created when we didn't support Add Parameters to parameterless methods.
public
bool
IsChangeable
()
{
return
ParametersWithoutDefaultValues
.
Count
>
0
||
RemainingEditableParameters
.
Count
>
0
||
ParamsParameter
!=
null
;
return
true
;
}
}
}
src/VisualStudio/Core/Def/Implementation/ChangeSignature/ChangeSignatureDialogViewModel.cs
浏览文件 @
a89d7716
...
...
@@ -86,6 +86,11 @@ public bool CanRemove
{
get
{
if
(!
AllParameters
.
Any
())
{
return
false
;
}
if
(!
SelectedIndex
.
HasValue
)
{
return
false
;
...
...
@@ -108,6 +113,11 @@ public bool CanRestore
{
get
{
if
(!
AllParameters
.
Any
())
{
return
false
;
}
if
(!
SelectedIndex
.
HasValue
)
{
return
false
;
...
...
@@ -189,9 +199,9 @@ internal ParameterConfiguration GetParameterConfiguration()
{
return
new
ParameterConfiguration
(
_originalParameterConfiguration
.
ThisParameter
,
_parameterGroup1
.
Where
(
p
=>
!
p
.
IsRemoved
).
Select
(
p
=>
p
.
MakeCool
Parameter
()).
ToList
(),
_parameterGroup2
.
Where
(
p
=>
!
p
.
IsRemoved
).
Select
(
p
=>
p
.
MakeCool
Parameter
()).
ToList
(),
(
_paramsParameter
==
null
||
_paramsParameter
.
IsRemoved
)
?
null
:
(
_paramsParameter
as
ExistingParameterViewModel
).
MakeCool
Parameter
(),
_parameterGroup1
.
Where
(
p
=>
!
p
.
IsRemoved
).
Select
(
p
=>
p
.
Create
Parameter
()).
ToList
(),
_parameterGroup2
.
Where
(
p
=>
!
p
.
IsRemoved
).
Select
(
p
=>
p
.
Create
Parameter
()).
ToList
(),
(
_paramsParameter
==
null
||
_paramsParameter
.
IsRemoved
)
?
null
:
(
_paramsParameter
as
ExistingParameterViewModel
).
Create
Parameter
(),
selectedIndex
:
-
1
);
}
...
...
@@ -513,7 +523,7 @@ public ParameterViewModel(ChangeSignatureDialogViewModel changeSignatureDialogVi
this
.
changeSignatureDialogViewModel
=
changeSignatureDialogViewModel
;
}
internal
abstract
CoolParameter
MakeCool
Parameter
();
internal
abstract
ParameterBase
Create
Parameter
();
public
abstract
string
InitialIndex
{
get
;
}
}
...
...
@@ -538,10 +548,8 @@ public AddedParameterViewModel(ChangeSignatureDialogViewModel changeSignatureDia
public
override
bool
IsDisabled
=>
false
;
public
override
string
Callsite
=>
_addParameterViewModel
.
CallsiteValue
;
internal
override
CoolParameter
MakeCoolParameter
()
{
return
new
AddedParameter
(
Type
,
Parameter
,
Callsite
);
}
internal
override
ParameterBase
CreateParameter
()
=>
new
AddedParameter
(
Type
,
Parameter
,
Callsite
);
public
override
string
InitialIndex
=>
"NEW"
;
}
...
...
@@ -550,14 +558,14 @@ public class ExistingParameterViewModel : ParameterViewModel
{
public
IParameterSymbol
ParameterSymbol
{
get
;
}
public
ExistingParameterViewModel
(
ChangeSignatureDialogViewModel
changeSignatureDialogViewModel
,
CoolParameter
parameter
,
int
initialIndex
)
public
ExistingParameterViewModel
(
ChangeSignatureDialogViewModel
changeSignatureDialogViewModel
,
ParameterBase
parameter
,
int
initialIndex
)
:
base
(
changeSignatureDialogViewModel
)
{
ParameterSymbol
=
(
parameter
as
ExistingParameter
).
Symbol
;
InitialIndex
=
initialIndex
.
ToString
();
}
internal
override
CoolParameter
MakeCool
Parameter
()
internal
override
ParameterBase
Create
Parameter
()
{
return
new
ExistingParameter
(
ParameterSymbol
);
}
...
...
src/VisualStudio/Core/Test/ChangeSignature/ChangeSignatureViewModelTests.vb
浏览文件 @
a89d7716
...
...
@@ -436,7 +436,7 @@ class MyClass
Dim
viewModel
=
New
ChangeSignatureDialogViewModel
(
New
TestNotificationService
(),
ParameterConfiguration
.
Create
(
symbol
.
GetParameters
().
Select
(
Function
(
p
)
DirectCast
(
New
ExistingParameter
(
p
),
CoolParameter
)).
ToList
(),
symbol
.
IsExtensionMethod
(),
selectedIndex
:
=
0
),
ParameterConfiguration
.
Create
(
symbol
.
GetParameters
().
Select
(
Function
(
p
)
DirectCast
(
New
ExistingParameter
(
p
),
ParameterBase
)).
ToList
(),
symbol
.
IsExtensionMethod
(),
selectedIndex
:
=
0
),
symbol
,
workspace
.
ExportProvider
.
GetExportedValue
(
Of
IClassificationFormatMapService
)().
GetClassificationFormatMap
(
"text"
),
workspace
.
ExportProvider
.
GetExportedValue
(
Of
ClassificationTypeMap
)())
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录