Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
441c4c99
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,发现更多精彩内容 >>
提交
441c4c99
编写于
11月 19, 2016
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'navigationPreferences2' into gotodefRefactor1
上级
1f16bdfc
14e5f754
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
40 addition
and
21 deletion
+40
-21
src/EditorFeatures/Core/FindReferences/AbstractFindReferencesService.cs
...ures/Core/FindReferences/AbstractFindReferencesService.cs
+1
-1
src/EditorFeatures/Core/FindUsages/AbstractFindUsagesService.ProgressAdapter.cs
...e/FindUsages/AbstractFindUsagesService.ProgressAdapter.cs
+2
-2
src/EditorFeatures/Core/FindUsages/AbstractFindUsagesService.cs
...itorFeatures/Core/FindUsages/AbstractFindUsagesService.cs
+2
-1
src/EditorFeatures/Core/GoToDefinition/GoToDefinitionHelpers.cs
...itorFeatures/Core/GoToDefinition/GoToDefinitionHelpers.cs
+4
-4
src/EditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb
...ditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb
+2
-2
src/Features/Core/Portable/FindUsages/IDefinitionsAndReferencesFactory.cs
...e/Portable/FindUsages/IDefinitionsAndReferencesFactory.cs
+25
-9
src/VisualStudio/Core/Impl/RoslynVisualStudioWorkspace.cs
src/VisualStudio/Core/Impl/RoslynVisualStudioWorkspace.cs
+2
-1
src/VisualStudio/Core/Test/FindResults/FindResultsTests.vb
src/VisualStudio/Core/Test/FindResults/FindResultsTests.vb
+2
-1
未找到文件。
src/EditorFeatures/Core/FindReferences/AbstractFindReferencesService.cs
浏览文件 @
441c4c99
...
@@ -89,7 +89,7 @@ private bool TryDisplayReferences(Tuple<IEnumerable<ReferencedSymbol>, Solution>
...
@@ -89,7 +89,7 @@ private bool TryDisplayReferences(Tuple<IEnumerable<ReferencedSymbol>, Solution>
var
solution
=
result
.
Item2
;
var
solution
=
result
.
Item2
;
var
factory
=
solution
.
Workspace
.
Services
.
GetService
<
IDefinitionsAndReferencesFactory
>();
var
factory
=
solution
.
Workspace
.
Services
.
GetService
<
IDefinitionsAndReferencesFactory
>();
var
definitionsAndReferences
=
factory
.
CreateDefinitionsAndReferences
(
var
definitionsAndReferences
=
factory
.
CreateDefinitionsAndReferences
(
solution
,
result
.
Item1
);
solution
,
result
.
Item1
,
includeHiddenLocations
:
false
);
foreach
(
var
presenter
in
_referenceSymbolPresenters
)
foreach
(
var
presenter
in
_referenceSymbolPresenters
)
{
{
...
...
src/EditorFeatures/Core/FindUsages/AbstractFindUsagesService.ProgressAdapter.cs
浏览文件 @
441c4c99
...
@@ -40,7 +40,7 @@ public ProgressAdapter(Solution solution, IFindUsagesContext context)
...
@@ -40,7 +40,7 @@ public ProgressAdapter(Solution solution, IFindUsagesContext context)
{
{
_solution
=
solution
;
_solution
=
solution
;
_context
=
context
;
_context
=
context
;
_definitionFactory
=
s
=>
s
.
ToDefinitionItem
(
solution
);
_definitionFactory
=
s
=>
s
.
ToDefinitionItem
(
solution
,
includeHiddenLocations
:
false
);
}
}
// Do nothing functions. The streaming far service doesn't care about
// Do nothing functions. The streaming far service doesn't care about
...
@@ -77,7 +77,7 @@ public async Task OnReferenceFoundAsync(SymbolAndProjectId definition, Reference
...
@@ -77,7 +77,7 @@ public async Task OnReferenceFoundAsync(SymbolAndProjectId definition, Reference
}
}
var
referenceItem
=
location
.
TryCreateSourceReferenceItem
(
var
referenceItem
=
location
.
TryCreateSourceReferenceItem
(
GetDefinitionItem
(
definition
));
GetDefinitionItem
(
definition
)
,
includeHiddenLocations
:
false
);
if
(
referenceItem
!=
null
)
if
(
referenceItem
!=
null
)
{
{
...
...
src/EditorFeatures/Core/FindUsages/AbstractFindUsagesService.cs
浏览文件 @
441c4c99
...
@@ -36,7 +36,8 @@ public async Task FindImplementationsAsync(Document document, int position, IFin
...
@@ -36,7 +36,8 @@ public async Task FindImplementationsAsync(Document document, int position, IFin
foreach
(
var
implementation
in
tuple
.
Value
.
implementations
)
foreach
(
var
implementation
in
tuple
.
Value
.
implementations
)
{
{
var
definitionItem
=
implementation
.
ToDefinitionItem
(
project
.
Solution
);
var
definitionItem
=
implementation
.
ToDefinitionItem
(
project
.
Solution
,
includeHiddenLocations
:
false
);
await
context
.
OnDefinitionFoundAsync
(
definitionItem
).
ConfigureAwait
(
false
);
await
context
.
OnDefinitionFoundAsync
(
definitionItem
).
ConfigureAwait
(
false
);
}
}
}
}
...
...
src/EditorFeatures/Core/GoToDefinition/GoToDefinitionHelpers.cs
浏览文件 @
441c4c99
...
@@ -66,14 +66,14 @@ internal static class GoToDefinitionHelpers
...
@@ -66,14 +66,14 @@ internal static class GoToDefinitionHelpers
var
options
=
project
.
Solution
.
Options
;
var
options
=
project
.
Solution
.
Options
;
definitions
.
Add
(
symbol
.
ToDefinitionItem
(
solution
));
definitions
.
Add
(
symbol
.
ToDefinitionItem
(
solution
,
includeHiddenLocations
:
true
));
var
presenter
=
GetFindUsagesPresenter
(
streamingPresenters
);
var
presenter
=
GetFindUsagesPresenter
(
streamingPresenters
);
var
result
=
presenter
.
NavigateToOrPresentItemsAsync
(
presenter
.
NavigateToOrPresentItemsAsync
(
EditorFeaturesResources
.
Go_to_Definition
,
EditorFeaturesResources
.
Go_to_Definition
,
definitions
.
ToImmutableAndFree
()).
Wait
AndGetResult
(
cancellationToken
);
definitions
.
ToImmutableAndFree
()).
Wait
(
cancellationToken
);
return
result
;
return
true
;
}
}
private
static
IStreamingFindUsagesPresenter
GetFindUsagesPresenter
(
private
static
IStreamingFindUsagesPresenter
GetFindUsagesPresenter
(
...
...
src/EditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb
浏览文件 @
441c4c99
...
@@ -1069,7 +1069,7 @@ class C
...
@@ -1069,7 +1069,7 @@ class C
<
WorkItem
(
989476
,
"http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/989476"
)
>
<
WorkItem
(
989476
,
"http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/989476"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
GoToDefinition
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
GoToDefinition
)
>
Public
Async
Function
TestCSharp
PreferNong
eneratedSourceLocations
()
As
Task
Public
Async
Function
TestCSharp
DoNotFilterG
eneratedSourceLocations
()
As
Task
Dim
workspace
=
Dim
workspace
=
<
Workspace
>
<
Workspace
>
<
Project
Language
=
"C#"
CommonReferences
=
"true"
>
<
Project
Language
=
"C#"
CommonReferences
=
"true"
>
...
@@ -1083,7 +1083,7 @@ partial class [|C|]
...
@@ -1083,7 +1083,7 @@ partial class [|C|]
}
}
</
Document
>
</
Document
>
<
Document
FilePath
=
"Generated.g.i.cs"
>
<
Document
FilePath
=
"Generated.g.i.cs"
>
partial
class
C
partial
class
[|
C
|]
{
{
}
}
</
Document
>
</
Document
>
...
...
src/Features/Core/Portable/FindUsages/IDefinitionsAndReferencesFactory.cs
浏览文件 @
441c4c99
...
@@ -17,7 +17,7 @@ namespace Microsoft.CodeAnalysis.FindUsages
...
@@ -17,7 +17,7 @@ namespace Microsoft.CodeAnalysis.FindUsages
internal
interface
IDefinitionsAndReferencesFactory
:
IWorkspaceService
internal
interface
IDefinitionsAndReferencesFactory
:
IWorkspaceService
{
{
DefinitionsAndReferences
CreateDefinitionsAndReferences
(
DefinitionsAndReferences
CreateDefinitionsAndReferences
(
Solution
solution
,
IEnumerable
<
ReferencedSymbol
>
referencedSymbols
);
Solution
solution
,
IEnumerable
<
ReferencedSymbol
>
referencedSymbols
,
bool
includeHiddenLocations
);
DefinitionItem
GetThirdPartyDefinitionItem
(
Solution
solution
,
ISymbol
definition
);
DefinitionItem
GetThirdPartyDefinitionItem
(
Solution
solution
,
ISymbol
definition
);
}
}
...
@@ -26,7 +26,7 @@ internal interface IDefinitionsAndReferencesFactory : IWorkspaceService
...
@@ -26,7 +26,7 @@ internal interface IDefinitionsAndReferencesFactory : IWorkspaceService
internal
class
DefaultDefinitionsAndReferencesFactory
:
IDefinitionsAndReferencesFactory
internal
class
DefaultDefinitionsAndReferencesFactory
:
IDefinitionsAndReferencesFactory
{
{
public
DefinitionsAndReferences
CreateDefinitionsAndReferences
(
public
DefinitionsAndReferences
CreateDefinitionsAndReferences
(
Solution
solution
,
IEnumerable
<
ReferencedSymbol
>
referencedSymbols
)
Solution
solution
,
IEnumerable
<
ReferencedSymbol
>
referencedSymbols
,
bool
includeHiddenLocations
)
{
{
var
definitions
=
ArrayBuilder
<
DefinitionItem
>.
GetInstance
();
var
definitions
=
ArrayBuilder
<
DefinitionItem
>.
GetInstance
();
var
references
=
ArrayBuilder
<
SourceReferenceItem
>.
GetInstance
();
var
references
=
ArrayBuilder
<
SourceReferenceItem
>.
GetInstance
();
...
@@ -39,7 +39,8 @@ internal class DefaultDefinitionsAndReferencesFactory : IDefinitionsAndReference
...
@@ -39,7 +39,8 @@ internal class DefaultDefinitionsAndReferencesFactory : IDefinitionsAndReference
foreach
(
var
referencedSymbol
in
referencedSymbols
.
OrderBy
(
GetPrecedence
))
foreach
(
var
referencedSymbol
in
referencedSymbols
.
OrderBy
(
GetPrecedence
))
{
{
ProcessReferencedSymbol
(
ProcessReferencedSymbol
(
solution
,
referencedSymbol
,
definitions
,
references
,
uniqueLocations
);
solution
,
referencedSymbol
,
definitions
,
references
,
includeHiddenLocations
,
uniqueLocations
);
}
}
return
new
DefinitionsAndReferences
(
return
new
DefinitionsAndReferences
(
...
@@ -86,6 +87,7 @@ private static int GetPrecedence(ReferencedSymbol referencedSymbol)
...
@@ -86,6 +87,7 @@ private static int GetPrecedence(ReferencedSymbol referencedSymbol)
ReferencedSymbol
referencedSymbol
,
ReferencedSymbol
referencedSymbol
,
ArrayBuilder
<
DefinitionItem
>
definitions
,
ArrayBuilder
<
DefinitionItem
>
definitions
,
ArrayBuilder
<
SourceReferenceItem
>
references
,
ArrayBuilder
<
SourceReferenceItem
>
references
,
bool
includeHiddenLocations
,
HashSet
<
DocumentSpan
>
uniqueSpans
)
HashSet
<
DocumentSpan
>
uniqueSpans
)
{
{
// See if this is a symbol we even want to present to the user. If not,
// See if this is a symbol we even want to present to the user. If not,
...
@@ -95,12 +97,15 @@ private static int GetPrecedence(ReferencedSymbol referencedSymbol)
...
@@ -95,12 +97,15 @@ private static int GetPrecedence(ReferencedSymbol referencedSymbol)
return
;
return
;
}
}
var
definitionItem
=
referencedSymbol
.
Definition
.
ToDefinitionItem
(
solution
,
uniqueSpans
);
var
definitionItem
=
referencedSymbol
.
Definition
.
ToDefinitionItem
(
solution
,
includeHiddenLocations
,
uniqueSpans
);
definitions
.
Add
(
definitionItem
);
definitions
.
Add
(
definitionItem
);
// Now, create the SourceReferenceItems for all the reference locations
// Now, create the SourceReferenceItems for all the reference locations
// for this definition.
// for this definition.
CreateReferences
(
referencedSymbol
,
references
,
definitionItem
,
uniqueSpans
);
CreateReferences
(
referencedSymbol
,
references
,
definitionItem
,
includeHiddenLocations
,
uniqueSpans
);
// Finally, see if there are any third parties that want to add their
// Finally, see if there are any third parties that want to add their
// own result to our collection.
// own result to our collection.
...
@@ -125,11 +130,13 @@ private static int GetPrecedence(ReferencedSymbol referencedSymbol)
...
@@ -125,11 +130,13 @@ private static int GetPrecedence(ReferencedSymbol referencedSymbol)
ReferencedSymbol
referencedSymbol
,
ReferencedSymbol
referencedSymbol
,
ArrayBuilder
<
SourceReferenceItem
>
references
,
ArrayBuilder
<
SourceReferenceItem
>
references
,
DefinitionItem
definitionItem
,
DefinitionItem
definitionItem
,
bool
includeHiddenLocations
,
HashSet
<
DocumentSpan
>
uniqueSpans
)
HashSet
<
DocumentSpan
>
uniqueSpans
)
{
{
foreach
(
var
referenceLocation
in
referencedSymbol
.
Locations
)
foreach
(
var
referenceLocation
in
referencedSymbol
.
Locations
)
{
{
var
sourceReferenceItem
=
referenceLocation
.
TryCreateSourceReferenceItem
(
definitionItem
);
var
sourceReferenceItem
=
referenceLocation
.
TryCreateSourceReferenceItem
(
definitionItem
,
includeHiddenLocations
);
if
(
sourceReferenceItem
==
null
)
if
(
sourceReferenceItem
==
null
)
{
{
continue
;
continue
;
...
@@ -148,6 +155,7 @@ internal static class DefinitionItemExtensions
...
@@ -148,6 +155,7 @@ internal static class DefinitionItemExtensions
public
static
DefinitionItem
ToDefinitionItem
(
public
static
DefinitionItem
ToDefinitionItem
(
this
ISymbol
definition
,
this
ISymbol
definition
,
Solution
solution
,
Solution
solution
,
bool
includeHiddenLocations
,
HashSet
<
DocumentSpan
>
uniqueSpans
=
null
)
HashSet
<
DocumentSpan
>
uniqueSpans
=
null
)
{
{
var
displayParts
=
definition
.
ToDisplayParts
(
GetFormat
(
definition
)).
ToTaggedText
();
var
displayParts
=
definition
.
ToDisplayParts
(
GetFormat
(
definition
)).
ToTaggedText
();
...
@@ -170,8 +178,14 @@ internal static class DefinitionItemExtensions
...
@@ -170,8 +178,14 @@ internal static class DefinitionItemExtensions
return
DefinitionItem
.
CreateMetadataDefinition
(
return
DefinitionItem
.
CreateMetadataDefinition
(
tags
,
displayParts
,
solution
,
definition
,
displayIfNoReferences
);
tags
,
displayParts
,
solution
,
definition
,
displayIfNoReferences
);
}
}
else
if
(
location
.
Is
VisibleSourceLocation
()
)
else
if
(
location
.
Is
InSource
)
{
{
if
(!
location
.
IsVisibleSourceLocation
()
&&
!
includeHiddenLocations
)
{
continue
;
}
var
document
=
solution
.
GetDocument
(
location
.
SourceTree
);
var
document
=
solution
.
GetDocument
(
location
.
SourceTree
);
if
(
document
!=
null
)
if
(
document
!=
null
)
{
{
...
@@ -209,12 +223,14 @@ internal static class DefinitionItemExtensions
...
@@ -209,12 +223,14 @@ internal static class DefinitionItemExtensions
public
static
SourceReferenceItem
TryCreateSourceReferenceItem
(
public
static
SourceReferenceItem
TryCreateSourceReferenceItem
(
this
ReferenceLocation
referenceLocation
,
this
ReferenceLocation
referenceLocation
,
DefinitionItem
definitionItem
)
DefinitionItem
definitionItem
,
bool
includeHiddenLocations
)
{
{
var
location
=
referenceLocation
.
Location
;
var
location
=
referenceLocation
.
Location
;
Debug
.
Assert
(
location
.
IsInSource
);
Debug
.
Assert
(
location
.
IsInSource
);
if
(!
location
.
IsVisibleSourceLocation
())
if
(!
location
.
IsVisibleSourceLocation
()
&&
!
includeHiddenLocations
)
{
{
return
null
;
return
null
;
}
}
...
...
src/VisualStudio/Core/Impl/RoslynVisualStudioWorkspace.cs
浏览文件 @
441c4c99
...
@@ -230,7 +230,8 @@ public override bool TryFindAllReferences(ISymbol symbol, Project project, Cance
...
@@ -230,7 +230,8 @@ public override bool TryFindAllReferences(ISymbol symbol, Project project, Cance
Solution
solution
,
IEnumerable
<
ReferencedSymbol
>
referencedSymbols
)
Solution
solution
,
IEnumerable
<
ReferencedSymbol
>
referencedSymbols
)
{
{
var
service
=
this
.
Services
.
GetService
<
IDefinitionsAndReferencesFactory
>();
var
service
=
this
.
Services
.
GetService
<
IDefinitionsAndReferencesFactory
>();
var
definitionsAndReferences
=
service
.
CreateDefinitionsAndReferences
(
solution
,
referencedSymbols
);
var
definitionsAndReferences
=
service
.
CreateDefinitionsAndReferences
(
solution
,
referencedSymbols
,
includeHiddenLocations
:
false
);
foreach
(
var
presenter
in
_referencedSymbolsPresenters
)
foreach
(
var
presenter
in
_referencedSymbolsPresenters
)
{
{
...
...
src/VisualStudio/Core/Test/FindResults/FindResultsTests.vb
浏览文件 @
441c4c99
...
@@ -150,7 +150,8 @@ using System.Threading;
...
@@ -150,7 +150,8 @@ using System.Threading;
Dim
libraryManager
=
New
LibraryManager
(
New
MockServiceProvider
(
New
MockComponentModel
(
workspace
.
ExportProvider
)))
Dim
libraryManager
=
New
LibraryManager
(
New
MockServiceProvider
(
New
MockComponentModel
(
workspace
.
ExportProvider
)))
Dim
factory
=
workspace
.
Services
.
GetService
(
Of
IDefinitionsAndReferencesFactory
)
Dim
factory
=
workspace
.
Services
.
GetService
(
Of
IDefinitionsAndReferencesFactory
)
Dim
definitionsAndReferences
=
factory
.
CreateDefinitionsAndReferences
(
workspace
.
CurrentSolution
,
result
)
Dim
definitionsAndReferences
=
factory
.
CreateDefinitionsAndReferences
(
workspace
.
CurrentSolution
,
result
,
includeHiddenLocations
:
=
False
)
Dim
findReferencesTree
=
libraryManager
.
CreateFindReferencesItems
(
definitionsAndReferences
)
Dim
findReferencesTree
=
libraryManager
.
CreateFindReferencesItems
(
definitionsAndReferences
)
' We cannot control the ordering of top-level nodes in the Find Symbol References window, so do not consider ordering of these items here.
' We cannot control the ordering of top-level nodes in the Find Symbol References window, so do not consider ordering of these items here.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录