Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
bcb11aac
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,发现更多精彩内容 >>
提交
bcb11aac
编写于
2月 17, 2015
作者:
B
Balaji
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #590 from basoundr/fix1077103
Don't format inside NonUser code
上级
00ff1ea5
80e33ccc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
365 addition
and
1 deletion
+365
-1
src/EditorFeatures/CSharp/Formatting/CSharpEditorFormattingService.cs
...atures/CSharp/Formatting/CSharpEditorFormattingService.cs
+7
-1
src/EditorFeatures/CSharpTest/Formatting/FormattingEngineTests.cs
...orFeatures/CSharpTest/Formatting/FormattingEngineTests.cs
+358
-0
未找到文件。
src/EditorFeatures/CSharp/Formatting/CSharpEditorFormattingService.cs
浏览文件 @
bcb11aac
...
@@ -12,12 +12,12 @@
...
@@ -12,12 +12,12 @@
using
Microsoft.CodeAnalysis.CSharp.Utilities
;
using
Microsoft.CodeAnalysis.CSharp.Utilities
;
using
Microsoft.CodeAnalysis.Editor.CSharp.Formatting.Indentation
;
using
Microsoft.CodeAnalysis.Editor.CSharp.Formatting.Indentation
;
using
Microsoft.CodeAnalysis.Editor.Implementation.Formatting.Indentation
;
using
Microsoft.CodeAnalysis.Editor.Implementation.Formatting.Indentation
;
using
Microsoft.CodeAnalysis.Editor.Options
;
using
Microsoft.CodeAnalysis.Editor.Shared.Options
;
using
Microsoft.CodeAnalysis.Editor.Shared.Options
;
using
Microsoft.CodeAnalysis.Editor.Shared.Utilities
;
using
Microsoft.CodeAnalysis.Editor.Shared.Utilities
;
using
Microsoft.CodeAnalysis.Formatting
;
using
Microsoft.CodeAnalysis.Formatting
;
using
Microsoft.CodeAnalysis.Formatting.Rules
;
using
Microsoft.CodeAnalysis.Formatting.Rules
;
using
Microsoft.CodeAnalysis.Host.Mef
;
using
Microsoft.CodeAnalysis.Host.Mef
;
using
Microsoft.CodeAnalysis.LanguageServices
;
using
Microsoft.CodeAnalysis.Options
;
using
Microsoft.CodeAnalysis.Options
;
using
Microsoft.CodeAnalysis.Shared.Extensions
;
using
Microsoft.CodeAnalysis.Shared.Extensions
;
using
Microsoft.CodeAnalysis.Text
;
using
Microsoft.CodeAnalysis.Text
;
...
@@ -159,6 +159,12 @@ public async Task<IList<TextChange>> GetFormattingChangesAsync(Document document
...
@@ -159,6 +159,12 @@ public async Task<IList<TextChange>> GetFormattingChangesAsync(Document document
return
null
;
return
null
;
}
}
var
service
=
document
.
GetLanguageService
<
ISyntaxFactsService
>();
if
(
service
!=
null
&&
service
.
IsInNonUserCode
(
token
.
SyntaxTree
,
caretPosition
,
cancellationToken
))
{
return
null
;
}
// Check to see if the token is ')' and also the parent is a using statement. If not, bail
// Check to see if the token is ')' and also the parent is a using statement. If not, bail
if
(
TokenShouldNotFormatOnTypeChar
(
token
))
if
(
TokenShouldNotFormatOnTypeChar
(
token
))
{
{
...
...
src/EditorFeatures/CSharpTest/Formatting/FormattingEngineTests.cs
浏览文件 @
bcb11aac
...
@@ -481,6 +481,364 @@ static void Main(string[] args)
...
@@ -481,6 +481,364 @@ static void Main(string[] args)
AssertFormatAfterTypeChar
(
code
,
expected
);
AssertFormatAfterTypeChar
(
code
,
expected
);
}
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideSingleLineRegularComment_1
()
{
var
code
=
@"class Program
{
// {$$
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
// {
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideSingleLineRegularComment_2
()
{
var
code
=
@"class Program
{
// {$$
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
// {
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideMultiLineRegularComment_1
()
{
var
code
=
@"class Program
{
static void Main(int a/* {$$ */, int b)
{
}
}"
;
var
expected
=
@"class Program
{
static void Main(int a/* { */, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideMultiLineRegularComment_2
()
{
var
code
=
@"class Program
{
static void Main(int a/* {$$
*/, int b)
{
}
}"
;
var
expected
=
@"class Program
{
static void Main(int a/* {
*/, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideMultiLineRegularComment_3
()
{
var
code
=
@"class Program
{
static void Main(int a/* {$$
*/, int b)
{
}
}"
;
var
expected
=
@"class Program
{
static void Main(int a/* {
*/, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideSingleLineDocComment_1
()
{
var
code
=
@"class Program
{
/// {$$
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
/// {
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideSingleLineDocComment_2
()
{
var
code
=
@"class Program
{
/// {$$
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
/// {
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideMultiLineDocComment_1
()
{
var
code
=
@"class Program
{
/** {$$ **/
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
/** { **/
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideMultiLineDocComment_2
()
{
var
code
=
@"class Program
{
/** {$$
**/
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
/** {
**/
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideMultiLineDocComment_3
()
{
var
code
=
@"class Program
{
/** {$$
**/
static void Main(int a, int b)
{
}
}"
;
var
expected
=
@"class Program
{
/** {
**/
static void Main(int a, int b)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideInactiveCode
()
{
var
code
=
@"class Program
{
#if false
{$$
#endif
static void Main(string[] args)
{
}
}"
;
var
expected
=
@"class Program
{
#if false
{
#endif
static void Main(string[] args)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideStringLiteral
()
{
var
code
=
@"class Program
{
static void Main(string[] args)
{
var asdas = ""{$$"" ;
}
}"
;
var
expected
=
@"class Program
{
static void Main(string[] args)
{
var asdas = ""{"" ;
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideCharLiteral
()
{
var
code
=
@"class Program
{
static void Main(string[] args)
{
var asdas = '{$$' ;
}
}"
;
var
expected
=
@"class Program
{
static void Main(string[] args)
{
var asdas = '{' ;
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
[
WorkItem
(
449
)]
[
WorkItem
(
1077103
)]
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Formatting
)]
public
void
NoFormattingInsideCommentsOfPreprocessorDirectves
()
{
var
code
=
@"class Program
{
#region
#endregion // a/*{$$*/
static void Main(string[] args)
{
}
}"
;
var
expected
=
@"class Program
{
#region
#endregion // a/*{*/
static void Main(string[] args)
{
}
}"
;
AssertFormatAfterTypeChar
(
code
,
expected
);
}
private
static
void
AssertFormatAfterTypeChar
(
string
code
,
string
expected
)
private
static
void
AssertFormatAfterTypeChar
(
string
code
,
string
expected
)
{
{
using
(
var
workspace
=
CSharpWorkspaceFactory
.
CreateWorkspaceFromFile
(
code
))
using
(
var
workspace
=
CSharpWorkspaceFactory
.
CreateWorkspaceFromFile
(
code
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录