Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
6c8431d9
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 搜索 >>
提交
6c8431d9
编写于
7月 15, 2019
作者:
P
Petr Houska
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move moveDeclNearReferenceRefactoring to helpers.
上级
a623e787
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
38 addition
and
40 deletion
+38
-40
src/EditorFeatures/CSharpTest/MoveDeclarationNearReference/MoveDeclarationNearReferenceTests.cs
...arationNearReference/MoveDeclarationNearReferenceTests.cs
+2
-2
src/EditorFeatures/VisualBasicTest/MoveDeclarationNearReference/MoveDeclarationNearReferenceTests.vb
...arationNearReference/MoveDeclarationNearReferenceTests.vb
+2
-2
src/Features/CSharp/Portable/MoveDeclarationNearReference/CSharpMoveDeclarationNearReferenceCodeRefactoringProvider.cs
...arpMoveDeclarationNearReferenceCodeRefactoringProvider.cs
+13
-0
src/Features/Core/Portable/MoveDeclarationNearReference/AbstractMoveDeclarationNearReferenceCodeRefactoringProvider.cs
...actMoveDeclarationNearReferenceCodeRefactoringProvider.cs
+6
-36
src/Features/VisualBasic/Portable/MoveDeclarationNearReference/VisualBasicMoveDeclarationNearRefactoringProvider.vb
...ence/VisualBasicMoveDeclarationNearRefactoringProvider.vb
+15
-0
未找到文件。
src/EditorFeatures/CSharpTest/MoveDeclarationNearReference/MoveDeclarationNearReferenceTests.cs
浏览文件 @
6c8431d9
...
...
@@ -2,8 +2,8 @@
using
System.Threading.Tasks
;
using
Microsoft.CodeAnalysis.CodeRefactorings
;
using
Microsoft.CodeAnalysis.CSharp.MoveDeclarationNearReference
;
using
Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings
;
using
Microsoft.CodeAnalysis.MoveDeclarationNearReference
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
using
Roslyn.Test.Utilities
;
using
Xunit
;
...
...
@@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.MoveDeclarationNearRefe
public
class
MoveDeclarationNearReferenceTests
:
AbstractCSharpCodeActionTest
{
protected
override
CodeRefactoringProvider
CreateCodeRefactoringProvider
(
Workspace
workspace
,
TestParameters
parameters
)
=>
new
MoveDeclarationNearReferenceCodeRefactoringProvider
();
=>
new
CSharp
MoveDeclarationNearReferenceCodeRefactoringProvider
();
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsMoveDeclarationNearReference
)]
public
async
Task
TestMove1
()
...
...
src/EditorFeatures/VisualBasicTest/MoveDeclarationNearReference/MoveDeclarationNearReferenceTests.vb
浏览文件 @
6c8431d9
...
...
@@ -2,14 +2,14 @@
Imports
Microsoft.CodeAnalysis.CodeRefactorings
Imports
Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings
Imports
Microsoft.CodeAnalysis.MoveDeclarationNearReference
Imports
Microsoft.CodeAnalysis.
VisualBasic.
MoveDeclarationNearReference
Namespace
Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.MoveDeclarationNearReference
Public
Class
MoveDeclarationNearReferenceTests
Inherits
AbstractVisualBasicCodeActionTest
Protected
Overrides
Function
CreateCodeRefactoringProvider
(
workspace
As
Workspace
,
parameters
As
TestParameters
)
As
CodeRefactoringProvider
Return
New
MoveDeclarationNearReferenceCodeRefactoringProvider
()
Return
New
VisualBasic
MoveDeclarationNearReferenceCodeRefactoringProvider
()
End
Function
<
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsMoveDeclarationNearReference
)
>
...
...
src/Features/CSharp/Portable/MoveDeclarationNearReference/CSharpMoveDeclarationNearReferenceCodeRefactoringProvider.cs
0 → 100644
浏览文件 @
6c8431d9
using
System.Composition
;
using
Microsoft.CodeAnalysis.CodeRefactorings
;
using
Microsoft.CodeAnalysis.CSharp.Syntax
;
using
Microsoft.CodeAnalysis.MoveDeclarationNearReference
;
namespace
Microsoft.CodeAnalysis.CSharp.MoveDeclarationNearReference
{
[
ExportCodeRefactoringProvider
(
LanguageNames
.
CSharp
,
Name
=
PredefinedCodeRefactoringProviderNames
.
MoveDeclarationNearReference
),
Shared
]
[
ExtensionOrder
(
After
=
PredefinedCodeRefactoringProviderNames
.
InlineTemporary
)]
class
CSharpMoveDeclarationNearReferenceCodeRefactoringProvider
:
AbstractMoveDeclarationNearReferenceCodeRefactoringProvider
<
LocalDeclarationStatementSyntax
>
{
}
}
src/Features/Core/Portable/MoveDeclarationNearReference/MoveDeclarationNearReferenceCodeRefactoringProvider.cs
→
src/Features/Core/Portable/MoveDeclarationNearReference/
Abstract
MoveDeclarationNearReferenceCodeRefactoringProvider.cs
浏览文件 @
6c8431d9
...
...
@@ -13,12 +13,10 @@
namespace
Microsoft.CodeAnalysis.MoveDeclarationNearReference
{
[
ExportCodeRefactoringProvider
(
LanguageNames
.
CSharp
,
LanguageNames
.
VisualBasic
,
Name
=
PredefinedCodeRefactoringProviderNames
.
MoveDeclarationNearReference
),
Shared
]
[
ExtensionOrder
(
After
=
PredefinedCodeRefactoringProviderNames
.
InlineTemporary
)]
internal
sealed
class
MoveDeclarationNearReferenceCodeRefactoringProvider
:
CodeRefactoringProvider
internal
abstract
class
AbstractMoveDeclarationNearReferenceCodeRefactoringProvider
<
TLocalDeclaration
>
:
CodeRefactoringProvider
where
TLocalDeclaration
:
SyntaxNode
{
[
ImportingConstructor
]
public
MoveDeclarationNearReferenceCodeRefactoringProvider
()
public
Abstract
MoveDeclarationNearReferenceCodeRefactoringProvider
()
{
}
...
...
@@ -28,12 +26,8 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
var
textSpan
=
context
.
Span
;
var
cancellationToken
=
context
.
CancellationToken
;
if
(!
textSpan
.
IsEmpty
)
{
return
;
}
var
statement
=
await
GetLocalDeclarationStatementAsync
(
document
,
textSpan
,
cancellationToken
).
ConfigureAwait
(
false
);
var
helperService
=
document
.
GetLanguageService
<
IRefactoringHelpersService
>();
var
statement
=
await
helperService
.
TryGetSelectedNodeAsync
<
TLocalDeclaration
>(
context
).
ConfigureAwait
(
false
);
if
(
statement
==
null
)
{
return
;
...
...
@@ -46,17 +40,6 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
return
;
}
// Don't offer the refactoring inside the initializer for the variable.
var
initializer
=
syntaxFacts
.
GetInitializerOfVariableDeclarator
(
variables
[
0
]);
var
applicableSpan
=
initializer
==
null
?
statement
.
Span
:
TextSpan
.
FromBounds
(
statement
.
SpanStart
,
initializer
.
SpanStart
);
if
(!
applicableSpan
.
IntersectsWith
(
textSpan
.
Start
))
{
return
;
}
var
service
=
document
.
GetLanguageService
<
IMoveDeclarationNearReferenceService
>();
if
(!
await
service
.
CanMoveDeclarationNearReferenceAsync
(
document
,
statement
,
cancellationToken
).
ConfigureAwait
(
false
))
{
...
...
@@ -64,26 +47,13 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
}
context
.
RegisterRefactoring
(
new
MyCodeAction
(
c
=>
MoveDeclarationNearReferenceAsync
(
document
,
textSpan
,
c
)));
}
private
async
Task
<
SyntaxNode
>
GetLocalDeclarationStatementAsync
(
Document
document
,
TextSpan
textSpan
,
CancellationToken
cancellationToken
)
{
var
syntaxFacts
=
document
.
GetLanguageService
<
ISyntaxFactsService
>();
var
position
=
textSpan
.
Start
;
var
root
=
await
document
.
GetSyntaxRootAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
var
statement
=
root
.
FindToken
(
position
).
Parent
.
Ancestors
().
FirstOrDefault
(
n
=>
syntaxFacts
.
IsLocalDeclarationStatement
(
n
));
return
statement
;
new
MyCodeAction
(
c
=>
MoveDeclarationNearReferenceAsync
(
document
,
statement
,
c
)));
}
private
async
Task
<
Document
>
MoveDeclarationNearReferenceAsync
(
Document
document
,
TextSpan
span
,
CancellationToken
cancellationToken
)
Document
document
,
SyntaxNode
statement
,
CancellationToken
cancellationToken
)
{
var
statement
=
await
GetLocalDeclarationStatementAsync
(
document
,
span
,
cancellationToken
).
ConfigureAwait
(
false
);
var
service
=
document
.
GetLanguageService
<
IMoveDeclarationNearReferenceService
>();
return
await
service
.
MoveDeclarationNearReferenceAsync
(
document
,
statement
,
cancellationToken
).
ConfigureAwait
(
false
);
}
...
...
src/Features/VisualBasic/Portable/MoveDeclarationNearReference/VisualBasicMoveDeclarationNearRefactoringProvider.vb
0 → 100644
浏览文件 @
6c8431d9
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports
System.Composition
Imports
Microsoft.CodeAnalysis.CodeRefactorings
Imports
Microsoft.CodeAnalysis.MoveDeclarationNearReference
Imports
Microsoft.CodeAnalysis.VisualBasic.Syntax
Namespace
Microsoft.CodeAnalysis.VisualBasic.MoveDeclarationNearReference
<
ExportCodeRefactoringProvider
(
LanguageNames
.
VisualBasic
,
Name
:
=
PredefinedCodeRefactoringProviderNames
.
MoveDeclarationNearReference
),
[
Shared
]
>
<
ExtensionOrder
(
After
:
=
PredefinedCodeRefactoringProviderNames
.
InlineTemporary
)
>
Class
VisualBasicMoveDeclarationNearReferenceCodeRefactoringProvider
Inherits
AbstractMoveDeclarationNearReferenceCodeRefactoringProvider
(
Of
LocalDeclarationStatementSyntax
)
End
Class
End
Namespace
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录