提交 90695448 编写于 作者: J Jason Malinowski

Add generation of the /editorconfig switch to the build tasks

上级 a7f74342
......@@ -133,6 +133,12 @@ public bool PublicSign
get { return _store.GetOrDefault(nameof(PublicSign), false); }
}
public ITaskItem[] EditorConfigFiles
{
set { _store[nameof(EditorConfigFiles)] = value; }
get { return (ITaskItem[])_store[nameof(EditorConfigFiles)]; }
}
public bool EmitDebugInformation
{
set { _store[nameof(EmitDebugInformation)] = value; }
......@@ -736,6 +742,7 @@ internal void AddResponseFileCommandsForSwitchesSinceInitialReleaseThatAreNeeded
AddFeatures(commandLine, Features);
AddEmbeddedFilesToCommandLine(commandLine);
AddEditorConfigFilesToCommandLine(commandLine);
}
/// <summary>
......@@ -800,6 +807,20 @@ private void AddEmbeddedFilesToCommandLine(CommandLineBuilderExtension commandLi
}
}
/// <summary>
/// Adds a "/editorconfig:" switch to the command line for each .editorconfig file.
/// </summary>
private void AddEditorConfigFilesToCommandLine(CommandLineBuilderExtension commandLine)
{
if (EditorConfigFiles != null)
{
foreach (ITaskItem editorConfigFile in EditorConfigFiles)
{
commandLine.AppendSwitchIfNotNull("/editorconfig:", editorConfigFile.ItemSpec);
}
}
}
/// <summary>
/// Configure the debug switches which will be placed on the compiler command-line.
/// The matrix of debug type and symbol inputs and the desired results is as follows:
......
......@@ -286,5 +286,19 @@ public void Embed()
csc.EmbeddedFiles = MSBuildUtil.CreateTaskItems();
Assert.Equal(@"/debug:portable /out:test.exe test.cs", csc.GenerateResponseFileContents());
}
[Fact]
public void EditorConfig()
{
var csc = new Csc();
csc.Sources = MSBuildUtil.CreateTaskItems("test.cs");
csc.EditorConfigFiles = MSBuildUtil.CreateTaskItems(".editorconfig");
Assert.Equal(@"/out:test.exe /editorconfig:.editorconfig test.cs", csc.GenerateResponseFileContents());
csc = new Csc();
csc.Sources = MSBuildUtil.CreateTaskItems("test.cs", "subdir\\test.cs");
csc.EditorConfigFiles = MSBuildUtil.CreateTaskItems(".editorconfig", "subdir\\.editorconfig");
Assert.Equal(@"/out:test.exe /editorconfig:.editorconfig /editorconfig:subdir\.editorconfig test.cs subdir\test.cs", csc.GenerateResponseFileContents());
}
}
}
......@@ -283,5 +283,19 @@ public void Embed()
vbc.EmbeddedFiles = MSBuildUtil.CreateTaskItems();
Assert.Equal(@"/optionstrict:custom /debug:portable /out:test.exe test.vb", vbc.GenerateResponseFileContents());
}
[Fact]
public void EditorConfig()
{
var vbc = new Vbc();
vbc.Sources = MSBuildUtil.CreateTaskItems("test.vb");
vbc.EditorConfigFiles = MSBuildUtil.CreateTaskItems(".editorconfig");
Assert.Equal(@"/optionstrict:custom /out:test.exe /editorconfig:.editorconfig test.vb", vbc.GenerateResponseFileContents());
vbc = new Vbc();
vbc.Sources = MSBuildUtil.CreateTaskItems("test.vb", "subdir\\test.vb");
vbc.EditorConfigFiles = MSBuildUtil.CreateTaskItems(".editorconfig", "subdir\\.editorconfig");
Assert.Equal(@"/optionstrict:custom /out:test.exe /editorconfig:.editorconfig /editorconfig:subdir\.editorconfig test.vb subdir\test.vb", vbc.GenerateResponseFileContents());
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册