Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
c244ae1c
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,发现更多精彩内容 >>
提交
c244ae1c
编写于
7月 30, 2015
作者:
B
Balaji Soundrarajan
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3870 from basoundr/3447BraceCompletionFormatOnReturn
Format during Return in a Brace Completion Session
上级
f4adac97
1268499c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
10 deletion
+15
-10
src/EditorFeatures/CSharp/AutomaticCompletion/Sessions/CurlyBraceCompletionSession.cs
...tomaticCompletion/Sessions/CurlyBraceCompletionSession.cs
+5
-9
src/EditorFeatures/CSharpTest/AutomaticCompletion/AutomaticBraceCompletionTests.cs
...Test/AutomaticCompletion/AutomaticBraceCompletionTests.cs
+10
-1
未找到文件。
src/EditorFeatures/CSharp/AutomaticCompletion/Sessions/CurlyBraceCompletionSession.cs
浏览文件 @
c244ae1c
...
...
@@ -39,7 +39,7 @@ public CurlyBraceCompletionSession(ISyntaxFactsService syntaxFactsService, ISmar
public
override
void
AfterStart
(
IBraceCompletionSession
session
,
CancellationToken
cancellationToken
)
{
FormatTrackingSpan
(
session
);
FormatTrackingSpan
(
session
,
shouldHonorAutoFormattingOnCloseBraceOption
:
true
);
session
.
TextView
.
TryMoveCaretToAndEnsureVisible
(
session
.
ClosingPoint
.
GetPoint
(
session
.
SubjectBuffer
.
CurrentSnapshot
).
Subtract
(
1
));
}
...
...
@@ -65,12 +65,8 @@ public override void AfterReturn(IBraceCompletionSession session, CancellationTo
var
document
=
session
.
SubjectBuffer
.
CurrentSnapshot
.
GetOpenDocumentInCurrentContextWithChanges
();
if
(
document
!=
null
)
{
// first add one line in between, and format braces
if
(
session
.
SubjectBuffer
.
GetOption
(
FeatureOnOffOptions
.
AutoFormattingOnCloseBrace
))
{
document
.
InsertText
(
session
.
ClosingPoint
.
GetPosition
(
session
.
SubjectBuffer
.
CurrentSnapshot
)
-
1
,
Environment
.
NewLine
,
cancellationToken
);
FormatTrackingSpan
(
session
,
GetFormattingRules
(
document
));
}
document
.
InsertText
(
session
.
ClosingPoint
.
GetPosition
(
session
.
SubjectBuffer
.
CurrentSnapshot
)
-
1
,
Environment
.
NewLine
,
cancellationToken
);
FormatTrackingSpan
(
session
,
shouldHonorAutoFormattingOnCloseBraceOption
:
false
,
rules
:
GetFormattingRules
(
document
));
// put caret at right indentation
PutCaretOnLine
(
session
,
session
.
OpeningPoint
.
GetPoint
(
session
.
SubjectBuffer
.
CurrentSnapshot
).
GetContainingLineNumber
()
+
1
);
...
...
@@ -114,9 +110,9 @@ private IEnumerable<IFormattingRule> GetFormattingRules(Document document)
return
SpecializedCollections
.
SingletonEnumerable
(
BraceCompletionFormattingRule
.
Instance
).
Concat
(
Formatter
.
GetDefaultFormattingRules
(
document
));
}
private
void
FormatTrackingSpan
(
IBraceCompletionSession
session
,
IEnumerable
<
IFormattingRule
>
rules
=
null
)
private
void
FormatTrackingSpan
(
IBraceCompletionSession
session
,
bool
shouldHonorAutoFormattingOnCloseBraceOption
,
IEnumerable
<
IFormattingRule
>
rules
=
null
)
{
if
(!
session
.
SubjectBuffer
.
GetOption
(
FeatureOnOffOptions
.
AutoFormattingOnCloseBrace
))
if
(!
session
.
SubjectBuffer
.
GetOption
(
FeatureOnOffOptions
.
AutoFormattingOnCloseBrace
)
&&
shouldHonorAutoFormattingOnCloseBraceOption
)
{
return
;
}
...
...
src/EditorFeatures/CSharpTest/AutomaticCompletion/AutomaticBraceCompletionTests.cs
浏览文件 @
c244ae1c
...
...
@@ -757,6 +757,7 @@ public void man()
}
}
[
WorkItem
(
3447
,
"https://github.com/dotnet/roslyn/issues/3447"
)]
[
WorkItem
(
850540
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
AutomaticCompletion
)]
public
void
BlockIndentationWithAutomaticBraceFormattingDisabled
()
...
...
@@ -773,6 +774,14 @@ public void X()
{}
}"
;
var
expectedAfterReturn
=
@"class C
{
public void X()
{
}
}"
;
var
optionSet
=
new
Dictionary
<
OptionKey
,
object
>
{
{
new
OptionKey
(
FeatureOnOffOptions
.
AutoFormattingOnCloseBrace
,
LanguageNames
.
CSharp
),
false
},
...
...
@@ -785,7 +794,7 @@ public void X()
CheckStart
(
session
.
Session
);
Assert
.
Equal
(
expected
,
session
.
Session
.
SubjectBuffer
.
CurrentSnapshot
.
GetText
());
CheckReturn
OnNonEmptyLine
(
session
.
Session
,
3
);
CheckReturn
(
session
.
Session
,
4
,
expectedAfterReturn
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录