diff --git a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs index c48e44a6ac..bd62b335e1 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs @@ -16,11 +16,6 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser { ClassBrowserWorkspace currentWorkspace; - public ClassBrowserTreeView() - { - Workspace = ClassBrowserSettings.LoadDefaultWorkspace(); - } - public ClassBrowserWorkspace Workspace { get { return currentWorkspace; } set { diff --git a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserWorkspace.cs b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserWorkspace.cs index 5478c714d3..e5d1d683d6 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserWorkspace.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserWorkspace.cs @@ -18,19 +18,19 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser public class ClassBrowserWorkspace { ISolution assignedSolution; - IModelCollection loadedAssemblies; + IModelCollection loadedAssemblies; string workspaceName; - public ClassBrowserWorkspace(ISolution assignedSolution, IEnumerable assemblies = null) + public ClassBrowserWorkspace(ISolution assignedSolution, IEnumerable assemblies = null) : this(assignedSolution.FileName, assemblies) { this.assignedSolution = assignedSolution; } - public ClassBrowserWorkspace(string workspaceName, IEnumerable assemblies = null) + public ClassBrowserWorkspace(string workspaceName, IEnumerable assemblies = null) { this.workspaceName = workspaceName; - this.loadedAssemblies = new SimpleModelCollection(assemblies ?? EmptyList.Instance); + this.loadedAssemblies = new SimpleModelCollection(assemblies ?? EmptyList.Instance); } public bool IsAssigned { @@ -45,38 +45,49 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser get { return workspaceName; } } - public IModelCollection LoadedAssemblies { + public IModelCollection LoadedAssemblies { get { return loadedAssemblies; } } } - public static class ClassBrowserSettings + public class ClassBrowserSettings { - static IUnresolvedAssembly[] LoadAssemblyList(string name) + IAssemblyReference[] ResolveReferences(IUnresolvedAssembly asm) + { + return new IAssemblyReference[0]; + } + + IAssemblyModel[] LoadAssemblyList(string name) { var assemblyNames = Container.GetList("AssemblyList." + name); CecilLoader loader = new CecilLoader(); - return assemblyNames.Select(loader.LoadAssemblyFile).ToArray(); + var factory = SD.GetRequiredService(); + return assemblyNames + .Select(loader.LoadAssemblyFile) + .Select(asm => new AssemblyEntityModelContext(asm, ResolveReferences(asm))) + .Select(factory.CreateAssemblyModel) + .ToArray(); } - static readonly Properties Container = SD.PropertyService.NestedProperties(typeof(ClassBrowserSettings).FullName); + readonly Properties Container = SD.PropertyService.NestedProperties(typeof(ClassBrowserSettings).FullName); - public static ClassBrowserWorkspace LoadDefaultWorkspace() + public ClassBrowserWorkspace LoadDefaultWorkspace() { return LoadWorkspace(""); } - public static ClassBrowserWorkspace LoadWorkspace(string name) + public ClassBrowserWorkspace LoadWorkspace(string name) { return new ClassBrowserWorkspace(name, LoadAssemblyList(name)); } - public static ClassBrowserWorkspace LoadForSolution(ISolution solution) + public ClassBrowserWorkspace LoadForSolution(ISolution solution) { + // maybe use solution.Preferences? return new ClassBrowserWorkspace(solution, LoadAssemblyList(solution.FileName)); } - public static void SaveWorkspace(ClassBrowserWorkspace workspace) + public void SaveWorkspace(ClassBrowserWorkspace workspace) { } diff --git a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs index d49dd6e8fd..b17ebc07ba 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs @@ -3,11 +3,7 @@ using System; using System.Collections.Generic; -using System.Windows.Media; -using ICSharpCode.NRefactory.TypeSystem; -using ICSharpCode.NRefactory.Utils; using ICSharpCode.TreeView; -using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser { @@ -44,6 +40,12 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser } } + public override object Icon { + get { + return SD.ResourceService.GetImageSource("PadIcons.ClassBrowser"); + } + } + protected override bool IsSpecialNode() { return true; diff --git a/src/Main/Base/Project/Dom/IAssemblyModel.cs b/src/Main/Base/Project/Dom/IAssemblyModel.cs index d0773b8eae..4f496c33d4 100644 --- a/src/Main/Base/Project/Dom/IAssemblyModel.cs +++ b/src/Main/Base/Project/Dom/IAssemblyModel.cs @@ -53,9 +53,14 @@ namespace ICSharpCode.SharpDevelop.Dom /// /// /// is null if the file is newly added to the assemly. - /// is null if the file is removed from the assembly. + /// is null if the file is removed from the assembly. /// void Update(IUnresolvedFile oldFile, IUnresolvedFile newFile); + + /// + /// Gets the assembly name (short name). + /// + new string AssemblyName { get; set; } } public sealed class EmptyAssemblyModel : IAssemblyModel diff --git a/src/Main/Base/Project/Dom/IEntityModel.cs b/src/Main/Base/Project/Dom/IEntityModel.cs index 13946955bf..3a7c081692 100644 --- a/src/Main/Base/Project/Dom/IEntityModel.cs +++ b/src/Main/Base/Project/Dom/IEntityModel.cs @@ -44,15 +44,15 @@ namespace ICSharpCode.SharpDevelop.Dom bool IsShadowing { get; } /// - /// Resolves the entity in the current solution snapshot. + /// Resolves the entity in the current compilation. /// Returns null if the entity could not be resolved. /// IEntity Resolve(); /// - /// Resolves the entity in the specified solution snapshot. + /// Resolves the entity in the specified compilation. /// Returns null if the entity could not be resolved. /// - IEntity Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot); + IEntity Resolve(ICompilation compilation); } } diff --git a/src/Main/Base/Project/Dom/IEntityModelContext.cs b/src/Main/Base/Project/Dom/IEntityModelContext.cs index 48f8c01ddc..5fe67f32e4 100644 --- a/src/Main/Base/Project/Dom/IEntityModelContext.cs +++ b/src/Main/Base/Project/Dom/IEntityModelContext.cs @@ -3,6 +3,7 @@ using System; using ICSharpCode.NRefactory.TypeSystem; +using ICSharpCode.NRefactory.TypeSystem.Implementation; using ICSharpCode.SharpDevelop.Parser; using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Refactoring; @@ -27,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Dom /// The solution snapshot provided to , /// or null if the overload was used. /// - ICompilation GetCompilation(ISolutionSnapshotWithProjectMapping solutionSnapshot); + ICompilation GetCompilation(); /// /// Returns true if part1 is considered a better candidate for the primary part than part2. @@ -48,16 +49,17 @@ namespace ICSharpCode.SharpDevelop.Dom this.primaryCodeFileExtension = primaryCodeFileExtension; } + public string AssemblyName { + get { return project.AssemblyName; } + } + public IProject Project { get { return project; } } - public ICompilation GetCompilation(ISolutionSnapshotWithProjectMapping solutionSnapshot) + public ICompilation GetCompilation() { - if (solutionSnapshot != null) - return solutionSnapshot.GetCompilation(project); - else - return SD.ParserService.GetCompilation(project); + return SD.ParserService.GetCompilation(project); } public bool IsBetterPart(IUnresolvedTypeDefinition part1, IUnresolvedTypeDefinition part2) @@ -66,6 +68,41 @@ namespace ICSharpCode.SharpDevelop.Dom } } + public class AssemblyEntityModelContext : IEntityModelContext + { + ICompilation compilation; + IUnresolvedAssembly mainAssembly; + IAssemblyReference[] references; + + public AssemblyEntityModelContext(IUnresolvedAssembly mainAssembly, params IAssemblyReference[] references) + { + if (mainAssembly == null) + throw new ArgumentNullException("mainAssembly"); + this.mainAssembly = mainAssembly; + this.references = references; + // implement lazy init + weak caching + this.compilation = new SimpleCompilation(mainAssembly, references); + } + + public string AssemblyName { + get { return mainAssembly.AssemblyName; } + } + + public ICompilation GetCompilation() + { + return compilation; + } + + public bool IsBetterPart(IUnresolvedTypeDefinition part1, IUnresolvedTypeDefinition part2) + { + return false; + } + + public IProject Project { + get { return null; } + } + } + public static class EntityModelContextUtils { public static bool IsBetterPart(IUnresolvedTypeDefinition part1, IUnresolvedTypeDefinition part2, string codeFileExtension) diff --git a/src/Main/Base/Project/Dom/IMemberModel.cs b/src/Main/Base/Project/Dom/IMemberModel.cs index ce7cacc477..8edf24adbf 100644 --- a/src/Main/Base/Project/Dom/IMemberModel.cs +++ b/src/Main/Base/Project/Dom/IMemberModel.cs @@ -13,16 +13,16 @@ namespace ICSharpCode.SharpDevelop.Dom public interface IMemberModel : IEntityModel { /// - /// Resolves the member in the current solution snapshot. + /// Resolves the member in the current compilation. /// Returns null if the member could not be resolved. /// new IMember Resolve(); /// - /// Resolves the member in the specified solution snapshot. + /// Resolves the member in the specified compilation. /// Returns null if the member could not be resolved. /// - new IMember Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot); + new IMember Resolve(ICompilation compilation); /// /// Gets if the member is virtual. Is true only if the "virtual" modifier was used, but non-virtual diff --git a/src/Main/Base/Project/Dom/INamespaceModel.cs b/src/Main/Base/Project/Dom/INamespaceModel.cs index 689fdc3c5d..7173aedc4f 100644 --- a/src/Main/Base/Project/Dom/INamespaceModel.cs +++ b/src/Main/Base/Project/Dom/INamespaceModel.cs @@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Dom { } - public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged { add {} remove {} } public string FullName { get { return string.Empty; } diff --git a/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs b/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs index 8a86f2d7a1..62934f4576 100644 --- a/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs +++ b/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs @@ -22,16 +22,16 @@ namespace ICSharpCode.SharpDevelop.Dom IEnumerable GetPartRegions(); /// - /// Resolves the type definition in the current solution snapshot. + /// Resolves the type definition in the current compilation. /// Returns null if the type definition could not be resolved. /// new ITypeDefinition Resolve(); /// - /// Resolves the type definition in the specified solution snapshot. + /// Resolves the type definition in the specified compilation. /// Returns null if the type definition could not be resolved. /// - new ITypeDefinition Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot); + new ITypeDefinition Resolve(ICompilation compilation); /// /// Retrieves the nested type with the specified name and additional type parameter count diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin index 1ead9ebad6..7bbc1dc26f 100755 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin @@ -919,6 +919,10 @@ class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateForward"/> + - + diff --git a/src/Main/Base/Project/Src/Project/CompilableProject.cs b/src/Main/Base/Project/Src/Project/CompilableProject.cs index b10cfcb48e..04a768d399 100644 --- a/src/Main/Base/Project/Src/Project/CompilableProject.cs +++ b/src/Main/Base/Project/Src/Project/CompilableProject.cs @@ -358,6 +358,7 @@ namespace ICSharpCode.SharpDevelop.Project assemblyModel = SD.GetRequiredService().CreateAssemblyModel(new ProjectEntityModelContext(this, ".cs")); var pc = ProjectContent; if (pc != null && assemblyModel is IUpdateableAssemblyModel) { + ((IUpdateableAssemblyModel)assemblyModel).AssemblyName = AssemblyName; // Add the already loaded files into the model foreach (var file in pc.Files) { ((IUpdateableAssemblyModel)assemblyModel).Update(null, file); diff --git a/src/Main/Base/Project/Util/SharpDevelopExtensions.cs b/src/Main/Base/Project/Util/SharpDevelopExtensions.cs index 8fb57240dd..acb6ae72cb 100644 --- a/src/Main/Base/Project/Util/SharpDevelopExtensions.cs +++ b/src/Main/Base/Project/Util/SharpDevelopExtensions.cs @@ -537,7 +537,7 @@ namespace ICSharpCode.SharpDevelop foreach (var memberModel in typeModel.Members) { if (memberModel.Name == member.Name) { - if (memberModel.Resolve(snapshot) == member.MemberDefinition) { + if (memberModel.Resolve() == member.MemberDefinition) { return memberModel; } } @@ -580,7 +580,7 @@ namespace ICSharpCode.SharpDevelop foreach (var memberModel in typeModel.Members) { if (memberModel.Name == unresolvedMember.Name) { - if (memberModel.Resolve(snapshot) == member.MemberDefinition) { + if (memberModel.Resolve() == member.MemberDefinition) { return memberModel; } } diff --git a/src/Main/SharpDevelop/Dom/ProjectAssemblyModel.cs b/src/Main/SharpDevelop/Dom/AssemblyModel.cs similarity index 90% rename from src/Main/SharpDevelop/Dom/ProjectAssemblyModel.cs rename to src/Main/SharpDevelop/Dom/AssemblyModel.cs index 78cea3b705..accac7f252 100644 --- a/src/Main/SharpDevelop/Dom/ProjectAssemblyModel.cs +++ b/src/Main/SharpDevelop/Dom/AssemblyModel.cs @@ -11,29 +11,25 @@ using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.SharpDevelop.Dom { - sealed class ProjectAssemblyModel : IUpdateableAssemblyModel + sealed class AssemblyModel : IUpdateableAssemblyModel { IEntityModelContext context; TopLevelTypeDefinitionModelCollection typeDeclarations; KeyedModelCollection namespaces; NamespaceModel rootNamespace; - public ProjectAssemblyModel(IEntityModelContext context) + public AssemblyModel(IEntityModelContext context) { if (context == null) throw new ArgumentNullException("context"); this.context = context; - this.rootNamespace = new NamespaceModel(context, null, ""); + this.rootNamespace = new NamespaceModel(context.Project, null, ""); this.typeDeclarations = new TopLevelTypeDefinitionModelCollection(context); this.typeDeclarations.CollectionChanged += TypeDeclarationsCollectionChanged; this.namespaces = new KeyedModelCollection(value => value.FullName); } - public string AssemblyName { - get { - return context.Project.AssemblyName; - } - } + public string AssemblyName { get; set; } public ITypeDefinitionModelCollection TopLevelTypeDefinitions { get { @@ -76,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Dom level++; } while (level < parts.Length) { - var child = new NamespaceModel(context, ns, parts[level]); + var child = new NamespaceModel(context.Project, ns, parts[level]); batchList.AddIfNotNull(ns.ChildNamespaces.BatchUpdate()); ns.ChildNamespaces.Add(child); ns = child; @@ -114,7 +110,5 @@ namespace ICSharpCode.SharpDevelop.Dom d.Dispose(); } } - } -} - - + } +} \ No newline at end of file diff --git a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs index 62765ce972..3369d695c7 100644 --- a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs +++ b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs @@ -11,10 +11,11 @@ using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser { - public class ClassBrowserPad : AbstractPadContent + class ClassBrowserPad : AbstractPadContent { IProjectService projectService; ClassBrowserTreeView treeView; + ClassBrowserSettings settings; DockPanel panel; ToolBar toolBar; @@ -26,6 +27,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser public ClassBrowserPad(IProjectService projectService) { this.projectService = projectService; + this.settings = new ClassBrowserSettings(); panel = new DockPanel(); treeView = new ClassBrowserTreeView(); // treeView must be created first because it's used by CreateToolBar @@ -59,9 +61,9 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser void ProjectServiceCurrentSolutionChanged(object sender, EventArgs e) { if (projectService.CurrentSolution == null) { - treeView.Workspace = ClassBrowserSettings.LoadDefaultWorkspace(); + treeView.Workspace = settings.LoadDefaultWorkspace(); } else { - treeView.Workspace = ClassBrowserSettings.LoadForSolution(projectService.CurrentSolution); + treeView.Workspace = settings.LoadForSolution(projectService.CurrentSolution); } } diff --git a/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserTreeNodesFactory.cs b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserTreeNodesFactory.cs new file mode 100644 index 0000000000..c85f22786a --- /dev/null +++ b/src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserTreeNodesFactory.cs @@ -0,0 +1,44 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using ICSharpCode.TreeView; +using ICSharpCode.SharpDevelop.Project; + +namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser +{ + class ClassBrowserTreeNodesFactory : ITreeNodeFactory + { + public Type GetSupportedType(object model) + { + if (model is ISolution) + return typeof(ISolution); + if (model is IProject) + return typeof(IProject); + if (model is INamespaceModel) + return typeof(INamespaceModel); + if (model is ITypeDefinitionModel) + return typeof(ITypeDefinitionModel); + if (model is IMemberModel) + return typeof(IMemberModel); + return null; + } + + public SharpTreeNode CreateTreeNode(object model) + { + if (model is ISolution) + return new SolutionTreeNode((ISolution)model); + if (model is IProject) + return new ProjectTreeNode((IProject)model); + if (model is INamespaceModel) + return new NamespaceTreeNode((INamespaceModel)model); + if (model is ITypeDefinitionModel) + return new TypeDefinitionTreeNode((ITypeDefinitionModel)model); + if (model is IMemberModel) + return new MemberTreeNode((IMemberModel)model); + return null; + } + } +} + + diff --git a/src/Main/SharpDevelop/Dom/ClassBrowser/OpenAssemblyCommand.cs b/src/Main/SharpDevelop/Dom/ClassBrowser/OpenAssemblyCommand.cs new file mode 100644 index 0000000000..d76b0dbd8d --- /dev/null +++ b/src/Main/SharpDevelop/Dom/ClassBrowser/OpenAssemblyCommand.cs @@ -0,0 +1,18 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using Microsoft.Win32; + +namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser +{ + /// + /// Description of OpenAssemblyCommand. + /// + class OpenAssemblyCommand : SimpleCommand + { + public override void Execute(object parameter) + { + } + } +} diff --git a/src/Main/SharpDevelop/Dom/MemberModel.cs b/src/Main/SharpDevelop/Dom/MemberModel.cs index 6eeb57d6a8..6d9a87fcfc 100644 --- a/src/Main/SharpDevelop/Dom/MemberModel.cs +++ b/src/Main/SharpDevelop/Dom/MemberModel.cs @@ -77,13 +77,12 @@ namespace ICSharpCode.SharpDevelop.Dom #region Resolve public IMember Resolve() { - var compilation = context.GetCompilation(null); + var compilation = context.GetCompilation(); return member.Resolve(new SimpleTypeResolveContext(compilation.MainAssembly)); } - public IMember Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot) + public IMember Resolve(ICompilation compilation) { - var compilation = context.GetCompilation(solutionSnapshot); return member.Resolve(new SimpleTypeResolveContext(compilation.MainAssembly)); } @@ -92,9 +91,9 @@ namespace ICSharpCode.SharpDevelop.Dom return Resolve(); } - IEntity IEntityModel.Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot) + IEntity IEntityModel.Resolve(ICompilation compilation) { - return Resolve(solutionSnapshot); + return Resolve(compilation); } #endregion diff --git a/src/Main/SharpDevelop/Dom/ModelFactory.cs b/src/Main/SharpDevelop/Dom/ModelFactory.cs index e639080388..da921a5031 100644 --- a/src/Main/SharpDevelop/Dom/ModelFactory.cs +++ b/src/Main/SharpDevelop/Dom/ModelFactory.cs @@ -10,7 +10,7 @@ namespace ICSharpCode.SharpDevelop.Dom { public IAssemblyModel CreateAssemblyModel(IEntityModelContext context) { - return new ProjectAssemblyModel(context); + return new AssemblyModel(context); } public ITypeDefinitionModel CreateTypeDefinitionModel(IEntityModelContext context, params IUnresolvedTypeDefinition[] parts) diff --git a/src/Main/SharpDevelop/Dom/NamespaceModel.cs b/src/Main/SharpDevelop/Dom/NamespaceModel.cs index e4fcad8368..b224280d47 100644 --- a/src/Main/SharpDevelop/Dom/NamespaceModel.cs +++ b/src/Main/SharpDevelop/Dom/NamespaceModel.cs @@ -11,17 +11,15 @@ namespace ICSharpCode.SharpDevelop.Dom { sealed class NamespaceModel : INamespaceModel { - IEntityModelContext context; + IProject parentProject; string name; NamespaceModel parent; NullSafeSimpleModelCollection childNamespaces; NullSafeSimpleModelCollection typeDefinitions; - public NamespaceModel(IEntityModelContext context, NamespaceModel parent, string name) + public NamespaceModel(IProject parentProject, NamespaceModel parent, string name) { - if (context == null) - throw new ArgumentNullException("context"); - this.context = context; + this.parentProject = parentProject; this.parent = parent; this.name = name; this.typeDefinitions = new NullSafeSimpleModelCollection(); @@ -67,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.Dom } public IProject ParentProject { - get { return context.Project; } + get { return parentProject; } } public DomRegion Region { diff --git a/src/Main/SharpDevelop/Dom/TypeDefinitionModel.cs b/src/Main/SharpDevelop/Dom/TypeDefinitionModel.cs index 97eea35738..20df0cead5 100644 --- a/src/Main/SharpDevelop/Dom/TypeDefinitionModel.cs +++ b/src/Main/SharpDevelop/Dom/TypeDefinitionModel.cs @@ -79,13 +79,12 @@ namespace ICSharpCode.SharpDevelop.Dom #region Resolve public ITypeDefinition Resolve() { - var compilation = context.GetCompilation(null); + var compilation = context.GetCompilation(); return compilation.MainAssembly.GetTypeDefinition(fullTypeName); } - public ITypeDefinition Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot) + public ITypeDefinition Resolve(ICompilation compilation) { - var compilation = context.GetCompilation(solutionSnapshot); return compilation.MainAssembly.GetTypeDefinition(fullTypeName); } @@ -94,9 +93,9 @@ namespace ICSharpCode.SharpDevelop.Dom return Resolve(); } - IEntity IEntityModel.Resolve(ISolutionSnapshotWithProjectMapping solutionSnapshot) + IEntity IEntityModel.Resolve(ICompilation compilation) { - return Resolve(solutionSnapshot); + return Resolve(compilation); } #endregion diff --git a/src/Main/SharpDevelop/SharpDevelop.csproj b/src/Main/SharpDevelop/SharpDevelop.csproj index 396f415c43..d62dcd7030 100644 --- a/src/Main/SharpDevelop/SharpDevelop.csproj +++ b/src/Main/SharpDevelop/SharpDevelop.csproj @@ -107,12 +107,13 @@ Project\Build\MSBuildEngine\ExtendedBinaryReader.cs - + + - +