Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
6e6b774d
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,发现更多精彩内容 >>
提交
6e6b774d
编写于
11月 03, 2016
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Restore merging code.
上级
4218bd1c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
33 addition
and
4 deletion
+33
-4
src/Features/CSharp/Portable/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
...ports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
+9
-3
src/Features/Core/Portable/RemoveUnnecessaryImports/AbstractRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
...rts/AbstractRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
+5
-0
src/Features/VisualBasic/Portable/RemoveUnnecessaryImports/VisualBasicRemoveUnnecessaryImportsDiagnosticAnalyzer.vb
.../VisualBasicRemoveUnnecessaryImportsDiagnosticAnalyzer.vb
+19
-1
未找到文件。
src/Features/CSharp/Portable/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
浏览文件 @
6e6b774d
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Immutable
;
using
System.Linq
;
using
System.Threading
;
using
Microsoft.CodeAnalysis.CSharp.RemoveUnnecessaryImports
;
...
...
@@ -21,9 +23,13 @@ internal sealed class CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer :
new
LocalizableResourceString
(
nameof
(
CSharpFeaturesResources
.
Using_directive_is_unnecessary
),
CSharpFeaturesResources
.
ResourceManager
,
typeof
(
CSharpFeaturesResources
));
protected
override
LocalizableString
GetTitleAndMessageFormatForClassificationIdDescriptor
()
{
return
s_TitleAndMessageFormat
;
}
=>
s_TitleAndMessageFormat
;
// C# has no need to do any merging of using statements. Only VB needs to
// merge import clauses to an import statement if it all the import clauses
// are unnecessary.
protected
override
ImmutableArray
<
SyntaxNode
>
MergeImports
(
ImmutableArray
<
SyntaxNode
>
unnecessaryImports
)
=>
unnecessaryImports
;
protected
override
IEnumerable
<
TextSpan
>
GetFixableDiagnosticSpans
(
IEnumerable
<
SyntaxNode
>
nodes
,
SyntaxTree
tree
,
CancellationToken
cancellationToken
)
...
...
src/Features/Core/Portable/RemoveUnnecessaryImports/AbstractRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
浏览文件 @
6e6b774d
...
...
@@ -50,6 +50,7 @@ private DiagnosticDescriptor GetClassificationIdDescriptor()
}
public
override
ImmutableArray
<
DiagnosticDescriptor
>
SupportedDiagnostics
=>
ImmutableArray
.
Create
(
s_fixableIdDescriptor
,
GetClassificationIdDescriptor
());
public
bool
OpenFileOnly
(
Workspace
workspace
)
=>
true
;
public
override
void
Initialize
(
AnalysisContext
context
)
...
...
@@ -70,6 +71,8 @@ private void AnalyzeSemanticModel(SemanticModelAnalysisContext context)
var
unnecessaryImports
=
service
.
GetUnnecessaryImports
(
context
.
SemanticModel
,
root
,
cancellationToken
);
if
(
unnecessaryImports
.
Any
())
{
unnecessaryImports
=
MergeImports
(
unnecessaryImports
);
Func
<
SyntaxNode
,
SyntaxToken
>
getLastTokenFunc
=
GetLastTokenDelegateForContiguousSpans
();
var
contiguousSpans
=
unnecessaryImports
.
GetContiguousSpans
(
getLastTokenFunc
);
var
diagnostics
=
...
...
@@ -83,6 +86,8 @@ private void AnalyzeSemanticModel(SemanticModelAnalysisContext context)
}
}
protected
abstract
ImmutableArray
<
SyntaxNode
>
MergeImports
(
ImmutableArray
<
SyntaxNode
>
unnecessaryImports
);
protected
virtual
Func
<
SyntaxNode
,
SyntaxToken
>
GetLastTokenDelegateForContiguousSpans
()
{
return
null
;
...
...
src/Features/VisualBasic/Portable/RemoveUnnecessaryImports/VisualBasicRemoveUnnecessaryImportsDiagnosticAnalyzer.vb
浏览文件 @
6e6b774d
...
...
@@ -5,7 +5,7 @@ Imports System.Threading
Imports
Microsoft.CodeAnalysis.Diagnostics
Imports
Microsoft.CodeAnalysis.RemoveUnnecessaryImports
Imports
Microsoft.CodeAnalysis.Text
Imports
Microsoft.CodeAnalysis.VisualBasic.
RemoveUnnecessaryImports
Imports
Microsoft.CodeAnalysis.VisualBasic.
Syntax
Namespace
Microsoft.CodeAnalysis.VisualBasic.RemoveUnnecessaryImports
...
...
@@ -20,6 +20,24 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.RemoveUnnecessaryImports
Return
s_TitleAndMessageFormat
End
Function
Protected
Overrides
Function
MergeImports
(
unnecessaryImports
As
ImmutableArray
(
Of
SyntaxNode
))
As
ImmutableArray
(
Of
SyntaxNode
)
Dim
result
=
ArrayBuilder
(
Of
SyntaxNode
).
GetInstance
()
Dim
importsClauses
=
unnecessaryImports
.
CastArray
(
Of
ImportsClauseSyntax
)
For
Each
clause
In
importsClauses
If
Not
result
.
Contains
(
clause
.
Parent
)
Then
Dim
statement
=
DirectCast
(
clause
.
Parent
,
ImportsStatementSyntax
)
If
statement
.
ImportsClauses
.
All
(
AddressOf
importsClauses
.
Contains
)
Then
result
.
Add
(
statement
)
Else
result
.
Add
(
clause
)
End
If
End
If
Next
Return
result
.
ToImmutableAndFree
()
End
Function
Protected
Overrides
Function
GetFixableDiagnosticSpans
(
nodes
As
IEnumerable
(
Of
SyntaxNode
),
tree
As
SyntaxTree
,
cancellationToken
As
CancellationToken
)
As
IEnumerable
(
Of
TextSpan
)
' Create one fixable diagnostic that contains the entire Imports list.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录