未验证 提交 f076f791 编写于 作者: S Sam Harwell 提交者: GitHub

Merge pull request #26265 from sharwell/openfile-race

Fix race condition in SolutionExplorer_InProc.OpenFile
......@@ -19,7 +19,7 @@ public CSharpWinForms(VisualStudioInstanceFactory instanceFactory)
{
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void AddControl()
{
var project = new ProjectUtils.Project(ProjectName);
......@@ -32,7 +32,7 @@ public void AddControl()
Assert.Contains(@"private System.Windows.Forms.Button SomeButton;", actualText);
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void ChangeControlProperty()
{
var project = new ProjectUtils.Project(ProjectName);
......@@ -45,7 +45,7 @@ public void ChangeControlProperty()
Assert.Contains(@"this.SomeButton.Text = ""NewButtonText""", actualText);
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void ChangeControlPropertyInCode()
{
var project = new ProjectUtils.Project(ProjectName);
......@@ -72,7 +72,7 @@ public void ChangeControlPropertyInCode()
Assert.Equal(expectedPropertyValue, actualPropertyValue);
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void AddClickHandler()
{
var project = new ProjectUtils.Project(ProjectName);
......
......@@ -49,7 +49,7 @@ End Sub
VisualStudio.Editor.Verify.CompletionItemDoNotExist("ToString");
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void AddControl()
{
var project = new ProjectUtils.Project(ProjectName);
......@@ -62,7 +62,7 @@ public void AddControl()
Assert.Contains(@"Friend WithEvents SomeButton As Button", actualText);
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void ChangeControlProperty()
{
var project = new ProjectUtils.Project(ProjectName);
......@@ -75,7 +75,7 @@ public void ChangeControlProperty()
Assert.Contains(@"Me.SomeButton.Text = ""NewButtonText""", actualText);
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void ChangeControlPropertyInCode()
{
var project = new ProjectUtils.Project(ProjectName);
......@@ -102,7 +102,7 @@ public void ChangeControlPropertyInCode()
Assert.Equal(expectedPropertyValue, actualPropertyValue);
}
[WpfFact(Skip = "https://github.com/dotnet/roslyn/issues/19191"), Trait(Traits.Feature, Traits.Features.WinForms)]
[WpfFact, Trait(Traits.Feature, Traits.Features.WinForms)]
public void AddClickHandler()
{
var project = new ProjectUtils.Project(ProjectName);
......
......@@ -10,6 +10,7 @@
using EnvDTE80;
using Microsoft.CodeAnalysis;
using Microsoft.VisualStudio.ProjectSystem.Properties;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.TextManager.Interop;
......@@ -722,14 +723,13 @@ public void OpenFileWithDesigner(string projectName, string relativeFilePath)
public void OpenFile(string projectName, string relativeFilePath)
{
var filePath = GetAbsolutePathForProjectRelativeFilePath(projectName, relativeFilePath);
VsShellUtilities.OpenDocument(ServiceProvider.GlobalProvider, filePath, VSConstants.LOGVIEWID.Code_guid, out _, out _, out _, out var view);
ExecuteCommand(WellKnownCommandNames.File_OpenFile, filePath);
var dte = GetDTE();
while (!dte.ActiveWindow.Caption.Contains(Path.GetFileName(filePath)))
{
Thread.Yield();
}
// Reliably set focus using NavigateToLineAndColumn
var textManager = GetGlobalService<SVsTextManager, IVsTextManager>();
ErrorHandler.ThrowOnFailure(view.GetBuffer(out var textLines));
ErrorHandler.ThrowOnFailure(view.GetCaretPos(out var line, out var column));
ErrorHandler.ThrowOnFailure(textManager.NavigateToLineAndColumn(textLines, VSConstants.LOGVIEWID.Code_guid, line, column, line, column));
}
public void CloseFile(string projectName, string relativeFilePath, bool saveFile)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册