Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
8b38d0ce
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,发现更多精彩内容 >>
未验证
提交
8b38d0ce
编写于
5月 08, 2019
作者:
D
dotnet-automerge-bot
提交者:
GitHub
5月 08, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #35588 from dotnet/merges/release/dev16.1-to-release/dev16.1-vs-deps
Merge release/dev16.1 to release/dev16.1-vs-deps
上级
214df40e
abad5e19
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
115 addition
and
3 deletion
+115
-3
src/VisualStudio/Core/Impl/Options/AbstractOptionPage.cs
src/VisualStudio/Core/Impl/Options/AbstractOptionPage.cs
+4
-1
src/Workspaces/Core/Portable/Workspace/Solution/SolutionState.cs
...kspaces/Core/Portable/Workspace/Solution/SolutionState.cs
+6
-2
src/Workspaces/CoreTest/SolutionTests/SolutionTests.cs
src/Workspaces/CoreTest/SolutionTests/SolutionTests.cs
+105
-0
未找到文件。
src/VisualStudio/Core/Impl/Options/AbstractOptionPage.cs
浏览文件 @
8b38d0ce
...
...
@@ -109,8 +109,11 @@ public override void SaveSettingsToStorage()
// Save the changes that were accumulated in the option store.
var
oldOptions
=
s_optionService
.
GetOptions
();
var
newOptions
=
s_optionStore
.
GetOptions
();
s_optionService
.
SetOptions
(
newOptions
);
// Must log the option change before setting the new option values via s_optionService,
// otherwise oldOptions and newOptions would be identical and nothing will be logged.
OptionLogger
.
Log
(
oldOptions
,
newOptions
);
s_optionService
.
SetOptions
(
newOptions
);
// Make sure we load the next time a page is activated, in case that options changed
// programmatically between now and the next time the page is activated
...
...
src/Workspaces/Core/Portable/Workspace/Solution/SolutionState.cs
浏览文件 @
8b38d0ce
...
...
@@ -1141,7 +1141,7 @@ public SolutionState AddDocuments(ImmutableArray<DocumentInfo> documentInfos)
{
return
AddDocumentsToMultipleProjects
(
documentInfos
,
(
documentInfo
,
project
)
=>
project
.
CreateDocument
(
documentInfo
,
project
.
ParseOptions
),
(
project
,
documents
)
=>
(
p
roject
.
AddDocuments
(
documents
),
new
CompilationTranslationAction
.
AddDocumentsAction
(
documents
)));
(
oldProject
,
documents
)
=>
(
oldP
roject
.
AddDocuments
(
documents
),
new
CompilationTranslationAction
.
AddDocumentsAction
(
documents
)));
}
/// <summary>
...
...
@@ -1225,7 +1225,11 @@ public SolutionState AddAnalyzerConfigDocuments(ImmutableArray<DocumentInfo> doc
// attached to them, so we'll just replace all syntax trees in that case.
return
AddDocumentsToMultipleProjects
(
documentInfos
,
(
documentInfo
,
project
)
=>
new
AnalyzerConfigDocumentState
(
documentInfo
,
_solutionServices
),
(
projectState
,
documents
)
=>
(
projectState
.
AddAnalyzerConfigDocuments
(
documents
),
new
CompilationTranslationAction
.
ReplaceAllSyntaxTreesAction
(
projectState
)));
(
oldProject
,
documents
)
=>
{
var
newProject
=
oldProject
.
AddAnalyzerConfigDocuments
(
documents
);
return
(
newProject
,
new
CompilationTranslationAction
.
ReplaceAllSyntaxTreesAction
(
newProject
));
});
}
public
SolutionState
RemoveAnalyzerConfigDocument
(
DocumentId
documentId
)
...
...
src/Workspaces/CoreTest/SolutionTests/SolutionTests.cs
浏览文件 @
8b38d0ce
...
...
@@ -1624,6 +1624,111 @@ public void TestUpdateDocumentsOrderExceptions()
Assert
.
Throws
<
ArgumentException
>(()
=>
solution
=
solution
.
WithProjectDocumentsOrder
(
pid
,
ImmutableList
.
CreateRange
(
new
[]
{
did3
,
did2
,
did1
})));
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Workspace
)]
public
async
Task
TestAddingEditorConfigFileWithDiagnosticSeverity
()
{
var
solution
=
CreateSolution
();
var
projectId
=
ProjectId
.
CreateNewId
();
var
sourceDocumentId
=
DocumentId
.
CreateNewId
(
projectId
);
solution
=
solution
.
AddProject
(
projectId
,
"Test"
,
"Test.dll"
,
LanguageNames
.
CSharp
);
solution
=
solution
.
AddDocument
(
sourceDocumentId
,
"Test.cs"
,
"// Hello, world!"
,
filePath
:
@"Z:\Test.cs"
);
var
originalSyntaxTree
=
await
solution
.
GetDocument
(
sourceDocumentId
).
GetSyntaxTreeAsync
();
var
originalCompilation
=
await
solution
.
GetProject
(
projectId
).
GetCompilationAsync
();
var
editorConfigDocumentId
=
DocumentId
.
CreateNewId
(
projectId
);
solution
=
solution
.
AddAnalyzerConfigDocuments
(
ImmutableArray
.
Create
(
DocumentInfo
.
Create
(
editorConfigDocumentId
,
".editorconfig"
,
filePath
:
@"Z:\.editorconfig"
,
loader
:
TextLoader
.
From
(
TextAndVersion
.
Create
(
SourceText
.
From
(
"[*.cs]\r\n\r\ndotnet_diagnostic.CA1234.severity = error"
),
VersionStamp
.
Default
)))));
var
newSyntaxTree
=
await
solution
.
GetDocument
(
sourceDocumentId
).
GetSyntaxTreeAsync
();
var
newCompilation
=
await
solution
.
GetProject
(
projectId
).
GetCompilationAsync
();
Assert
.
NotSame
(
originalSyntaxTree
,
newSyntaxTree
);
Assert
.
NotSame
(
originalCompilation
,
newCompilation
);
Assert
.
True
(
newCompilation
.
ContainsSyntaxTree
(
newSyntaxTree
));
Assert
.
Single
(
newSyntaxTree
.
DiagnosticOptions
);
Assert
.
Equal
(
ReportDiagnostic
.
Error
,
newSyntaxTree
.
DiagnosticOptions
[
"CA1234"
]);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Workspace
)]
public
async
Task
TestAddingAndRemovingEditorConfigFileWithDiagnosticSeverity
()
{
var
solution
=
CreateSolution
();
var
projectId
=
ProjectId
.
CreateNewId
();
var
sourceDocumentId
=
DocumentId
.
CreateNewId
(
projectId
);
solution
=
solution
.
AddProject
(
projectId
,
"Test"
,
"Test.dll"
,
LanguageNames
.
CSharp
);
solution
=
solution
.
AddDocument
(
sourceDocumentId
,
"Test.cs"
,
"// Hello, world!"
,
filePath
:
@"Z:\Test.cs"
);
var
editorConfigDocumentId
=
DocumentId
.
CreateNewId
(
projectId
);
solution
=
solution
.
AddAnalyzerConfigDocuments
(
ImmutableArray
.
Create
(
DocumentInfo
.
Create
(
editorConfigDocumentId
,
".editorconfig"
,
filePath
:
@"Z:\.editorconfig"
,
loader
:
TextLoader
.
From
(
TextAndVersion
.
Create
(
SourceText
.
From
(
"[*.cs]\r\n\r\ndotnet_diagnostic.CA1234.severity = error"
),
VersionStamp
.
Default
)))));
var
syntaxTreeAfterAddingEditorConfig
=
await
solution
.
GetDocument
(
sourceDocumentId
).
GetSyntaxTreeAsync
();
Assert
.
Single
(
syntaxTreeAfterAddingEditorConfig
.
DiagnosticOptions
);
Assert
.
Equal
(
ReportDiagnostic
.
Error
,
syntaxTreeAfterAddingEditorConfig
.
DiagnosticOptions
[
"CA1234"
]);
solution
=
solution
.
RemoveAnalyzerConfigDocument
(
editorConfigDocumentId
);
var
syntaxTreeAfterRemovingEditorConfig
=
await
solution
.
GetDocument
(
sourceDocumentId
).
GetSyntaxTreeAsync
();
Assert
.
Empty
(
syntaxTreeAfterRemovingEditorConfig
.
DiagnosticOptions
);
var
finalCompilation
=
await
solution
.
GetProject
(
projectId
).
GetCompilationAsync
();
Assert
.
True
(
finalCompilation
.
ContainsSyntaxTree
(
syntaxTreeAfterRemovingEditorConfig
));
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Workspace
)]
public
async
Task
TestChangingAnEditorConfigFile
()
{
var
solution
=
CreateSolution
();
var
projectId
=
ProjectId
.
CreateNewId
();
var
sourceDocumentId
=
DocumentId
.
CreateNewId
(
projectId
);
solution
=
solution
.
AddProject
(
projectId
,
"Test"
,
"Test.dll"
,
LanguageNames
.
CSharp
);
solution
=
solution
.
AddDocument
(
sourceDocumentId
,
"Test.cs"
,
"// Hello, world!"
,
filePath
:
@"Z:\Test.cs"
);
var
editorConfigDocumentId
=
DocumentId
.
CreateNewId
(
projectId
);
solution
=
solution
.
AddAnalyzerConfigDocuments
(
ImmutableArray
.
Create
(
DocumentInfo
.
Create
(
editorConfigDocumentId
,
".editorconfig"
,
filePath
:
@"Z:\.editorconfig"
,
loader
:
TextLoader
.
From
(
TextAndVersion
.
Create
(
SourceText
.
From
(
"[*.cs]\r\n\r\ndotnet_diagnostic.CA1234.severity = error"
),
VersionStamp
.
Default
)))));
var
syntaxTreeBeforeEditorConfigChange
=
await
solution
.
GetDocument
(
sourceDocumentId
).
GetSyntaxTreeAsync
();
Assert
.
Single
(
syntaxTreeBeforeEditorConfigChange
.
DiagnosticOptions
);
Assert
.
Equal
(
ReportDiagnostic
.
Error
,
syntaxTreeBeforeEditorConfigChange
.
DiagnosticOptions
[
"CA1234"
]);
solution
=
solution
.
WithAnalyzerConfigDocumentTextLoader
(
editorConfigDocumentId
,
TextLoader
.
From
(
TextAndVersion
.
Create
(
SourceText
.
From
(
"[*.cs]\r\n\r\ndotnet_diagnostic.CA6789.severity = error"
),
VersionStamp
.
Default
)),
PreservationMode
.
PreserveValue
);
var
syntaxTreeAfterEditorConfigChange
=
await
solution
.
GetDocument
(
sourceDocumentId
).
GetSyntaxTreeAsync
();
Assert
.
Single
(
syntaxTreeAfterEditorConfigChange
.
DiagnosticOptions
);
Assert
.
Equal
(
ReportDiagnostic
.
Error
,
syntaxTreeAfterEditorConfigChange
.
DiagnosticOptions
[
"CA6789"
]);
var
finalCompilation
=
await
solution
.
GetProject
(
projectId
).
GetCompilationAsync
();
Assert
.
True
(
finalCompilation
.
ContainsSyntaxTree
(
syntaxTreeAfterEditorConfigChange
));
}
private
static
void
GetMultipleProjects
(
out
Project
csBrokenProject
,
out
Project
vbNormalProject
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录