Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
3396d79c
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,发现更多精彩内容 >>
提交
3396d79c
编写于
11月 19, 2016
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow clients to specify the behavior they want on hidden locations.
上级
1d1a5c96
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
35 addition
and
16 deletion
+35
-16
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
+1
-1
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
浏览文件 @
3396d79c
...
@@ -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
浏览文件 @
3396d79c
...
@@ -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
浏览文件 @
3396d79c
...
@@ -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
浏览文件 @
3396d79c
...
@@ -112,7 +112,7 @@ internal static class GoToDefinitionHelpers
...
@@ -112,7 +112,7 @@ internal static class GoToDefinitionHelpers
return
false
;
return
false
;
}
}
var
definition
=
symbol
.
ToDefinitionItem
(
solution
);
var
definition
=
symbol
.
ToDefinitionItem
(
solution
,
includeHiddenLocations
:
false
);
var
context
=
presenter
.
StartSearch
(
EditorFeaturesResources
.
Go_to_Definition
);
var
context
=
presenter
.
StartSearch
(
EditorFeaturesResources
.
Go_to_Definition
);
try
try
{
{
...
...
src/Features/Core/Portable/FindUsages/IDefinitionsAndReferencesFactory.cs
浏览文件 @
3396d79c
...
@@ -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
.
IsVisibleSourceLocation
())
else
{
{
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
浏览文件 @
3396d79c
...
@@ -233,7 +233,8 @@ public override bool TryFindAllReferences(ISymbol symbol, Project project, Cance
...
@@ -233,7 +233,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
浏览文件 @
3396d79c
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录