Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
9c892ae5
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,发现更多精彩内容 >>
提交
9c892ae5
编写于
4月 04, 2019
作者:
D
David Barbet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add telemetry to toggle block comment.
上级
171b67c2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
11 deletion
+23
-11
src/EditorFeatures/Core/Implementation/CommentSelection/AbstractToggleBlockCommentBase.cs
...tation/CommentSelection/AbstractToggleBlockCommentBase.cs
+22
-11
src/Workspaces/Core/Portable/Log/FunctionId.cs
src/Workspaces/Core/Portable/Log/FunctionId.cs
+1
-0
未找到文件。
src/EditorFeatures/Core/Implementation/CommentSelection/AbstractToggleBlockCommentBase.cs
浏览文件 @
9c892ae5
...
...
@@ -9,6 +9,7 @@
using
Microsoft.CodeAnalysis.CommentSelection
;
using
Microsoft.CodeAnalysis.Editor.Shared.Extensions
;
using
Microsoft.CodeAnalysis.Experiments
;
using
Microsoft.CodeAnalysis.Internal.Log
;
using
Microsoft.CodeAnalysis.PooledObjects
;
using
Microsoft.CodeAnalysis.Shared.Extensions
;
using
Microsoft.CodeAnalysis.Text
;
...
...
@@ -30,6 +31,9 @@ internal abstract class AbstractToggleBlockCommentBase :
private
static
readonly
CommentSelectionResult
s_emptyCommentSelectionResult
=
new
CommentSelectionResult
(
new
List
<
TextChange
>(),
new
List
<
CommentTrackingSpan
>(),
Operation
.
Uncomment
);
private
const
string
ContentTypeString
=
"ContentType"
;
private
const
string
SubjectBufferLengthString
=
"subjectBufferLength"
;
private
readonly
ITextStructureNavigatorSelectorService
_navigatorSelectorService
;
internal
AbstractToggleBlockCommentBase
(
...
...
@@ -83,21 +87,28 @@ public bool ExecuteCommand(ToggleBlockCommentCommandArgs args, CommandExecutionC
internal
async
override
Task
<
CommentSelectionResult
>
CollectEditsAsync
(
Document
document
,
ICommentSelectionService
service
,
ITextBuffer
subjectBuffer
,
NormalizedSnapshotSpanCollection
selectedSpans
,
ValueTuple
command
,
CancellationToken
cancellationToken
)
{
var
experimentationService
=
document
.
Project
.
Solution
.
Workspace
.
Services
.
GetRequiredService
<
IExperimentationService
>();
if
(!
experimentationService
.
IsExperimentEnabled
(
WellKnownExperimentNames
.
RoslynToggleBlockComment
))
using
(
Logger
.
LogBlock
(
FunctionId
.
CommandHandler_ToggleBlockComment
,
KeyValueLogMessage
.
Create
(
LogType
.
UserAction
,
m
=>
{
return
s_emptyCommentSelectionResult
;
}
m
[
ContentTypeString
]
=
subjectBuffer
.
ContentType
.
DisplayName
;
m
[
SubjectBufferLengthString
]
=
subjectBuffer
.
CurrentSnapshot
.
Length
;
}),
cancellationToken
))
{
var
experimentationService
=
document
.
Project
.
Solution
.
Workspace
.
Services
.
GetRequiredService
<
IExperimentationService
>();
if
(!
experimentationService
.
IsExperimentEnabled
(
WellKnownExperimentNames
.
RoslynToggleBlockComment
))
{
return
s_emptyCommentSelectionResult
;
}
var
navigator
=
_navigatorSelectorService
.
GetTextStructureNavigator
(
subjectBuffer
);
var
navigator
=
_navigatorSelectorService
.
GetTextStructureNavigator
(
subjectBuffer
);
var
commentInfo
=
await
service
.
GetInfoAsync
(
document
,
selectedSpans
.
First
().
Span
.
ToTextSpan
(),
cancellationToken
).
ConfigureAwait
(
false
);
if
(
commentInfo
.
SupportsBlockComment
)
{
return
await
ToggleBlockCommentsAsync
(
document
,
commentInfo
,
navigator
,
selectedSpans
,
cancellationToken
).
ConfigureAwait
(
false
);
}
var
commentInfo
=
await
service
.
GetInfoAsync
(
document
,
selectedSpans
.
First
().
Span
.
ToTextSpan
(),
cancellationToken
).
ConfigureAwait
(
false
);
if
(
commentInfo
.
SupportsBlockComment
)
{
return
await
ToggleBlockCommentsAsync
(
document
,
commentInfo
,
navigator
,
selectedSpans
,
cancellationToken
).
ConfigureAwait
(
false
);
}
return
s_emptyCommentSelectionResult
;
return
s_emptyCommentSelectionResult
;
}
}
private
async
Task
<
CommentSelectionResult
>
ToggleBlockCommentsAsync
(
Document
document
,
CommentSelectionInfo
commentInfo
,
...
...
src/Workspaces/Core/Portable/Log/FunctionId.cs
浏览文件 @
9c892ae5
...
...
@@ -61,6 +61,7 @@ internal enum FunctionId
CommandHandler_GetCommandState
,
CommandHandler_ExecuteHandlers
,
CommandHandler_FormatCommand
,
CommandHandler_ToggleBlockComment
,
Workspace_SourceText_GetChangeRanges
,
Workspace_Recoverable_RecoverRootAsync
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录