提交 f07ef511 编写于 作者: S Sam Harwell

Pass a project when creating an invisible editor

上级 10899a37
......@@ -64,7 +64,7 @@ public VisualStudioDefinitionsAndReferencesFactory(SVsServiceProvider servicePro
private string GetSourceLine(string filePath, int lineNumber)
{
using (var invisibleEditor = new InvisibleEditor(
_serviceProvider, filePath, needsSave: false, needsUndoDisabled: false))
_serviceProvider, filePath, projectOpt: null, needsSave: false, needsUndoDisabled: false))
{
var vsTextLines = invisibleEditor.VsTextLines;
if (vsTextLines != null &&
......
......@@ -28,15 +28,16 @@ internal partial class InvisibleEditor : IInvisibleEditor
private OLE.Interop.IOleUndoManager _manager;
private readonly bool _needsUndoRestored;
public InvisibleEditor(IServiceProvider serviceProvider, string filePath, bool needsSave, bool needsUndoDisabled)
public InvisibleEditor(IServiceProvider serviceProvider, string filePath, IVisualStudioHostProject projectOpt, bool needsSave, bool needsUndoDisabled)
{
_serviceProvider = serviceProvider;
_filePath = filePath;
_needsSave = needsSave;
var invisibleEditorManager = (IIntPtrReturningVsInvisibleEditorManager)serviceProvider.GetService(typeof(SVsInvisibleEditorManager));
var vsProject = projectOpt?.Hierarchy as IVsProject;
var invisibleEditorPtr = IntPtr.Zero;
Marshal.ThrowExceptionForHR(invisibleEditorManager.RegisterInvisibleEditor(filePath, null, 0, null, out invisibleEditorPtr));
Marshal.ThrowExceptionForHR(invisibleEditorManager.RegisterInvisibleEditor(filePath, vsProject, 0, null, out invisibleEditorPtr));
try
{
......
......@@ -17,7 +17,7 @@ public EnvDTE.TextPoint CreateTextPoint(FileCodeModel fileCodeModel, VirtualTree
return null;
}
using (var invisibleEditor = new InvisibleEditor(fileCodeModel.ServiceProvider, hostDocument.FilePath, needsSave: false, needsUndoDisabled: false))
using (var invisibleEditor = new InvisibleEditor(fileCodeModel.ServiceProvider, hostDocument.FilePath, hostDocument.Project, needsSave: false, needsUndoDisabled: false))
{
var vsTextLines = invisibleEditor.VsTextLines;
......
......@@ -143,7 +143,7 @@ internal override IInvisibleEditor OpenInvisibleEditor(IVisualStudioHostDocument
}
}
return new InvisibleEditor(DeferredState.ServiceProvider, hostDocument.FilePath, needsSave, needsUndoDisabled);
return new InvisibleEditor(DeferredState.ServiceProvider, hostDocument.FilePath, hostDocument.Project, needsSave, needsUndoDisabled);
}
private static bool TryResolveSymbol(ISymbol symbol, Project project, CancellationToken cancellationToken, out ISymbol resolvedSymbol, out Project resolvedProject)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册