Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
c232013b
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,发现更多精彩内容 >>
提交
c232013b
编写于
10月 05, 2016
作者:
R
Ravi Chande
提交者:
GitHub
10月 05, 2016
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #13993 from rchande/removeMultiWordMap
Typing delay: CSharpEditorFormatingService constructor
上级
6f017b72
8e823b69
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
21 deletion
+13
-21
src/EditorFeatures/CSharp/Formatting/CSharpEditorFormattingService.cs
...atures/CSharp/Formatting/CSharpEditorFormattingService.cs
+13
-21
未找到文件。
src/EditorFeatures/CSharp/Formatting/CSharpEditorFormattingService.cs
浏览文件 @
c232013b
...
...
@@ -28,24 +28,11 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.Formatting
[
ExportLanguageService
(
typeof
(
IEditorFormattingService
),
LanguageNames
.
CSharp
),
Shared
]
internal
partial
class
CSharpEditorFormattingService
:
IEditorFormattingService
{
private
readonly
ImmutableHashSet
<
char
>
_supportedChars
;
private
readonly
ImmutableHashSet
<
char
>
_autoFormattingTriggerChars
;
private
readonly
ImmutableDictionary
<
char
,
ImmutableHashSet
<
SyntaxKind
>>
_multiWordsMap
;
// All the characters that might potentially trigger formatting when typed
private
readonly
char
[]
_supportedChars
=
";{}#nte:)"
.
ToCharArray
();
public
CSharpEditorFormattingService
()
{
_autoFormattingTriggerChars
=
ImmutableHashSet
.
CreateRange
<
char
>(
";}"
);
// add all auto formatting trigger to supported char
_supportedChars
=
_autoFormattingTriggerChars
.
Union
(
"{}#nte:)"
);
// set up multi words map
_multiWordsMap
=
ImmutableDictionary
.
CreateRange
(
new
[]
{
KeyValuePair
.
Create
(
'n'
,
ImmutableHashSet
.
Create
(
SyntaxKind
.
RegionKeyword
,
SyntaxKind
.
EndRegionKeyword
)),
KeyValuePair
.
Create
(
't'
,
ImmutableHashSet
.
Create
(
SyntaxKind
.
SelectKeyword
)),
KeyValuePair
.
Create
(
'e'
,
ImmutableHashSet
.
Create
(
SyntaxKind
.
WhereKeyword
)),
});
}
public
bool
SupportsFormatDocument
{
get
{
return
true
;
}
}
...
...
@@ -271,14 +258,19 @@ private bool IsEndToken(SyntaxToken endToken)
private
bool
ValidSingleOrMultiCharactersTokenKind
(
char
typedChar
,
SyntaxKind
kind
)
{
ImmutableHashSet
<
SyntaxKind
>
set
;
if
(!
_multiWordsMap
.
TryGetValue
(
typedChar
,
out
set
))
// We'll autoformat on n, t, e, only if they are the last character of the below
// keywords.
switch
(
typedChar
)
{
// all single char token is valid
return
true
;
case
(
'n'
):
return
kind
==
SyntaxKind
.
RegionKeyword
||
kind
==
SyntaxKind
.
EndRegionKeyword
;
case
(
't'
):
return
kind
==
SyntaxKind
.
SelectKeyword
;
case
(
'e'
):
return
kind
==
SyntaxKind
.
WhereKeyword
;
default
:
return
true
;
}
return
set
.
Contains
(
kind
);
}
private
bool
IsInvalidToken
(
char
typedChar
,
SyntaxToken
token
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录