Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
0797ef72
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,体验更适合开发者的 AI 搜索 >>
提交
0797ef72
编写于
6月 25, 2020
作者:
A
Ankita Khera
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Various changes regarding testing, formatting, etc
上级
fdab9643
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
63 addition
and
39 deletion
+63
-39
src/EditorFeatures/Core.Wpf/InlineParameterNameHints/InlineParamNameHintsTag.cs
...e.Wpf/InlineParameterNameHints/InlineParamNameHintsTag.cs
+1
-1
src/EditorFeatures/Core.Wpf/InlineParameterNameHints/InlineParamNameHintsTagger.cs
...pf/InlineParameterNameHints/InlineParamNameHintsTagger.cs
+8
-8
src/EditorFeatures/Core.Wpf/InlineParameterNameHints/InlineParamNameHintsTaggerProvider.cs
...eParameterNameHints/InlineParamNameHintsTaggerProvider.cs
+1
-1
src/EditorFeatures/Core/InlineParameterNameHints/InlineParamNameHintDataTag.cs
...re/InlineParameterNameHints/InlineParamNameHintDataTag.cs
+2
-3
src/EditorFeatures/Core/InlineParameterNameHints/InlineParamNameHintsDataTaggerProvider.cs
...ameterNameHints/InlineParamNameHintsDataTaggerProvider.cs
+2
-3
src/EditorFeatures/Test2/InlineParameterNameHints/AbstractInlineParamNameHintsTests.vb
...neParameterNameHints/AbstractInlineParamNameHintsTests.vb
+13
-13
src/EditorFeatures/Test2/InlineParameterNameHints/CSharpInlineParamNameHintsTests.vb
...lineParameterNameHints/CSharpInlineParamNameHintsTests.vb
+24
-0
src/Features/CSharp/Portable/InlineParameterNameHints/InlineParamNameHintsService.cs
...e/InlineParameterNameHints/InlineParamNameHintsService.cs
+5
-4
src/Features/Core/Portable/InlineParameterNameHints/IInlineParamNameHintsService.cs
.../InlineParameterNameHints/IInlineParamNameHintsService.cs
+5
-5
src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Extensions/ArgumentSyntaxExtensions.cs
...ns/Compiler/CSharp/Extensions/ArgumentSyntaxExtensions.cs
+2
-1
未找到文件。
src/EditorFeatures/Core.Wpf/InlineParamNameHints/InlineParamNameHintsTag.cs
→
src/EditorFeatures/Core.Wpf/InlineParam
eter
NameHints/InlineParamNameHintsTag.cs
浏览文件 @
0797ef72
...
...
@@ -45,7 +45,7 @@ private static UIElement CreateElement(string text)
Padding
=
new
Thickness
(
0
),
};
block
.
FontStyle
=
FontStyles
.
Normal
;
//
block.FontStyle = FontStyles.Normal;
block
.
Measure
(
new
Size
(
double
.
PositiveInfinity
,
double
.
PositiveInfinity
));
...
...
src/EditorFeatures/Core.Wpf/InlineParamNameHints/InlineParamNameHintsTagger.cs
→
src/EditorFeatures/Core.Wpf/InlineParam
eter
NameHints/InlineParamNameHintsTagger.cs
浏览文件 @
0797ef72
...
...
@@ -4,8 +4,6 @@
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
Microsoft.CodeAnalysis.ExtractMethod
;
using
Microsoft.VisualStudio.Text
;
using
Microsoft.VisualStudio.Text.Editor
;
using
Microsoft.VisualStudio.Text.Tagging
;
...
...
@@ -43,19 +41,21 @@ public IEnumerable<ITagSpan<IntraTextAdornmentTag>> GetTags(NormalizedSnapshotSp
{
var
tagsList
=
new
List
<
ITagSpan
<
IntraTextAdornmentTag
>>();
var
dataTags
=
_tagAggregator
.
GetTags
(
spans
);
foreach
(
var
tag
in
dataTags
)
if
(
spans
.
Count
<=
0
)
{
return
tagsList
;
}
foreach
(
var
tag
in
dataTags
)
{
if
(
spans
.
Count
<=
0
)
{
return
tagsList
;
}
var
dataTagSpans
=
tag
.
Span
.
GetSpans
(
spans
[
0
].
Snapshot
);
var
textTag
=
tag
.
Tag
;
if
(
dataTagSpans
.
Count
>
0
)
{
var
dataTagSpan
=
dataTagSpans
[
0
];
var
adornmentSpan
=
new
SnapshotSpan
(
dataTagSpan
.
Start
,
0
);
tagsList
.
Add
(
new
TagSpan
<
IntraTextAdornmentTag
>(
adornmentSpan
,
new
InlineParamNameHintsTag
(
textTag
.
Tag
Name
)));
tagsList
.
Add
(
new
TagSpan
<
IntraTextAdornmentTag
>(
adornmentSpan
,
new
InlineParamNameHintsTag
(
textTag
.
Parameter
Name
)));
}
}
return
tagsList
;
...
...
src/EditorFeatures/Core.Wpf/InlineParamNameHints/InlineParamNameHintsTaggerProvider.cs
→
src/EditorFeatures/Core.Wpf/InlineParam
eter
NameHints/InlineParamNameHintsTaggerProvider.cs
浏览文件 @
0797ef72
...
...
@@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Editor.InlineParameterNameHints
/// can be used to create the UI tag
/// </summary>
[
Export
(
typeof
(
ITaggerProvider
))]
[
ContentType
(
"csharp"
)]
[
ContentType
(
ContentTypeNames
.
CSharpContentType
)]
[
TagType
(
typeof
(
IntraTextAdornmentTag
))]
[
Name
(
nameof
(
InlineParamNameHintsTaggerProvider
))]
class
InlineParamNameHintsTaggerProvider
:
ITaggerProvider
...
...
src/EditorFeatures/Core/InlineParameterNameHints/InlineParamNameHintDataTag.cs
浏览文件 @
0797ef72
...
...
@@ -13,12 +13,11 @@ namespace Microsoft.CodeAnalysis.Editor.InlineParameterNameHints
/// </summary>
class
InlineParamNameHintDataTag
:
ITag
{
public
readonly
string
TagName
;
public
readonly
string
ParameterName
;
public
InlineParamNameHintDataTag
(
string
name
)
{
Tag
Name
=
name
;
Parameter
Name
=
name
;
}
}
}
src/EditorFeatures/Core/InlineParameterNameHints/InlineParamNameHintsDataTaggerProvider.cs
浏览文件 @
0797ef72
...
...
@@ -11,7 +11,6 @@
using
Microsoft.CodeAnalysis.InlineParameterNameHints
;
using
Microsoft.CodeAnalysis.Shared.Extensions
;
using
Microsoft.CodeAnalysis.Shared.TestHooks
;
using
Microsoft.CodeAnalysis.Text.Shared.Extensions
;
using
Microsoft.VisualStudio.Text
;
using
Microsoft.VisualStudio.Text.Editor
;
using
Microsoft.VisualStudio.Text.Tagging
;
...
...
@@ -23,7 +22,7 @@ namespace Microsoft.CodeAnalysis.Editor.InlineParameterNameHints
/// The TaggerProvider that calls upon the service in order to locate the spans and names
/// </summary>
[
Export
(
typeof
(
ITaggerProvider
))]
[
ContentType
(
"csharp"
)]
[
ContentType
(
ContentTypeNames
.
CSharpContentType
)]
[
TagType
(
typeof
(
InlineParamNameHintDataTag
))]
[
Name
(
nameof
(
InlineParamNameHintsDataTaggerProvider
))]
internal
class
InlineParamNameHintsDataTaggerProvider
:
AsynchronousTaggerProvider
<
InlineParamNameHintDataTag
>
...
...
@@ -53,7 +52,7 @@ protected override async Task ProduceTagsAsync(TaggerContext<InlineParamNameHint
foreach
(
var
span
in
paramNameHintSpans
)
{
context
.
AddTag
(
new
TagSpan
<
InlineParamNameHintDataTag
>(
span
.
Span
.
ToSnapshotSpan
(
snapshotSpan
.
Snapshot
),
new
InlineParamNameHintDataTag
(
span
.
Name
)));
//span.Item1.Length + 1, _format); //));
context
.
AddTag
(
new
TagSpan
<
InlineParamNameHintDataTag
>(
new
SnapshotSpan
(
snapshotSpan
.
Snapshot
,
span
.
Pos
,
0
),
new
InlineParamNameHintDataTag
(
span
.
Name
)));
//span.Item1.Length + 1, _format); //));
}
}
}
...
...
src/EditorFeatures/Test2/InlineParameterNameHints/AbstractInlineParamNameHintsTests.vb
浏览文件 @
0797ef72
...
...
@@ -16,11 +16,6 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.InlineParameterNameHints
Public
MustInherit
Class
AbstractInlineParamNameHintsTests
Protected
Async
Function
VerifyParamHints
(
test
As
XElement
,
Optional
optionIsEnabled
As
Boolean
=
True
)
As
Tasks
.
Task
Await
VerifyParamHints
(
test
,
optionIsEnabled
,
outOfProcess
:
=
False
)
Await
VerifyParamHints
(
test
,
optionIsEnabled
,
outOfProcess
:
=
True
)
End
Function
Private
Async
Function
VerifyParamHints
(
test
As
XElement
,
optionIsEnabled
As
Boolean
,
outOfProcess
As
Boolean
)
As
Tasks
.
Task
Using
workspace
=
TestWorkspace
.
Create
(
test
)
WpfTestRunner
.
RequireWpfFact
(
$
"{NameOf(AbstractInlineParamNameHintsTests)}.{NameOf(Me.VerifyParamHints)} creates asynchronous taggers"
)
...
...
@@ -30,26 +25,31 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.InlineParameterNameHints
workspace
.
GetService
(
Of
IForegroundNotificationService
))
Dim
hostDocument
=
workspace
.
Documents
.
Single
(
Function
(
d
)
d
.
CursorPosition
.
HasValue
)
Dim
caretPosition
=
hostDocument
.
CursorPosition
.
Value
'
Dim caretPosition = hostDocument.CursorPosition.Value
Dim
snapshot
=
hostDocument
.
GetTextBuffer
().
CurrentSnapshot
Dim
document
=
workspace
.
CurrentSolution
.
GetDocument
(
hostDocument
.
Id
)
Dim
context
=
New
TaggerContext
(
Of
InlineParamNameHintDataTag
)(
document
,
snapshot
,
New
SnapshotPoint
(
snapshot
,
caretPosition
))
document
,
snapshot
,
New
SnapshotPoint
(
snapshot
,
0
))
Await
tagProducer
.
GetTestAccessor
().
ProduceTagsAsync
(
context
)
Dim
producedTags
=
From
tag
In
context
.
tagSpans
Order
By
tag
.
Span
.
Start
Let
spanName
=
tag
.
Tag
.
Tag
Name
Select
spanName
+
":"
+
tag
.
Span
.
Span
.
ToTextSpan
().
ToString
()
Let
spanName
=
tag
.
Tag
.
Parameter
Name
Select
spanName
+
":"
+
tag
.
Span
.
Span
.
ToTextSpan
().
Start
.
ToString
()
Dim
expectedTags
As
New
List
(
Of
String
)
For
Each
hostDocument
In
workspace
.
Documents
For
Each
nameAndSpans
In
hostDocument
.
AnnotatedSpans
.
OrderBy
(
Function
(
x
)
x
.
Value
.
First
().
Start
)
For
Each
span
In
nameAndSpans
.
Value
expectedTags
.
Add
(
nameAndSpans
.
Key
+
":"
+
span
.
ToString
())
Next
Dim
nameAndSpansList
=
hostDocument
.
AnnotatedSpans
.
SelectMany
(
Function
(
name
)
name
.
Value
,
Function
(
name
,
span
)
_
New
With
{.
Name
=
name
.
Key
,
.
Span
=
span
})
For
Each
nameAndSpan
In
nameAndSpansList
.
OrderBy
(
Function
(
x
)
x
.
Span
.
Start
)
expectedTags
.
Add
(
nameAndSpan
.
Name
+
":"
+
nameAndSpan
.
Span
.
Start
.
ToString
())
Next
Next
...
...
src/EditorFeatures/Test2/InlineParameterNameHints/CSharpInlineParamNameHintsTests.vb
浏览文件 @
0797ef72
...
...
@@ -6,6 +6,30 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.InlineParameterNameHints
Public
Class
CSharpInlineParamNameHintsTests
Inherits
AbstractInlineParamNameHintsTests
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
InlineParameterNameHints
)
>
Public
Async
Function
TestNoParameterSimpleCase
()
As
Task
Dim
input
=
<
Workspace
>
<
Project
Language
=
"C#"
CommonReferences
=
"true"
>
<
Document
>
class
A
{
int
testMethod
()
{
return
5
;
}
void
Main
()
{
$$
testMethod
()
;
}
}
</
Document
>
</
Project
>
</
Workspace
>
Await
VerifyParamHints
(
input
)
End
Function
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
InlineParameterNameHints
)
>
Public
Async
Function
TestOneParameterSimpleCase
()
As
Task
Dim
input
=
...
...
src/Features/CSharp/Portable/InlineParameterNameHints/InlineParamNameHintsService.cs
浏览文件 @
0797ef72
...
...
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
#
nullable
enable
using
System
;
using
System.Collections.Generic
;
using
System.Composition
;
...
...
@@ -30,14 +31,14 @@ public InlineParamNameHintsService()
{
}
public
async
Task
<
IEnumerable
<
NameAndSpan
>>
GetInlineParameterNameHintsAsync
(
public
async
Task
<
IEnumerable
<
InlineParameterHint
>>
GetInlineParameterNameHintsAsync
(
Document
document
,
TextSpan
textSpan
,
CancellationToken
cancellationToken
)
{
var
tree
=
await
document
.
GetSyntaxTreeAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
var
node
=
await
tree
.
GetRootAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
var
spans
=
new
List
<
NameAndSpan
>();
var
spans
=
new
List
<
InlineParameterHint
>();
var
semanticModel
=
await
document
.
GetSemanticModelAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
...
...
@@ -45,14 +46,14 @@ public InlineParamNameHintsService()
foreach
(
var
invocation
in
invocations
)
{
foreach
(
var
argument
in
invo
.
ArgumentList
.
Arguments
)
foreach
(
var
argument
in
invo
cation
.
ArgumentList
.
Arguments
)
{
if
(
argument
.
NameColon
==
null
&&
IsExpressionWithNoName
(
argument
.
Expression
))
{
var
param
=
argument
.
DetermineParameter
(
semanticModel
,
cancellationToken
:
cancellationToken
);
if
(
param
!=
null
)
{
spans
.
Add
(
new
NameAndSpan
(
param
.
Name
,
argument
.
Span
));
spans
.
Add
(
new
InlineParameterHint
(
param
.
Name
,
argument
.
Span
.
Start
));
}
}
}
...
...
src/Features/Core/Portable/InlineParameterNameHints/IInlineParamNameHintsService.cs
浏览文件 @
0797ef72
...
...
@@ -10,19 +10,19 @@
namespace
Microsoft.CodeAnalysis.InlineParameterNameHints
{
readonly
struct
NameAndSpan
readonly
struct
InlineParameterHint
{
public
NameAndSpan
(
string
name
,
TextSpan
span
)
public
InlineParameterHint
(
string
name
,
int
pos
)
{
Name
=
name
;
Span
=
span
;
Pos
=
pos
;
}
public
string
Name
{
get
;
}
public
TextSpan
Span
{
get
;
}
public
int
Pos
{
get
;
}
}
internal
interface
IInlineParamNameHintsService
:
ILanguageService
{
Task
<
IEnumerable
<
NameAndSpan
>>
GetInlineParameterNameHintsAsync
(
Document
document
,
TextSpan
textSpan
,
CancellationToken
cancellationToken
=
default
);
Task
<
IEnumerable
<
InlineParameterHint
>>
GetInlineParameterNameHintsAsync
(
Document
document
,
TextSpan
textSpan
,
CancellationToken
cancellationToken
=
default
);
}
}
src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Extensions/ArgumentSyntaxExtensions.cs
浏览文件 @
0797ef72
...
...
@@ -2,11 +2,12 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#
nullable
enable
using
System.Linq
;
using
System.Threading
;
using
Microsoft.CodeAnalysis.CSharp.Syntax
;
using
Microsoft.CodeAnalysis.Shared.Extensions
;
#
nullable
enable
namespace
Microsoft.CodeAnalysis.CSharp.Extensions
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录