Browse Source

Added FullAssemblyName property in AssemblyModel, ClassBrowser, AssemblyParserService etc. now use it instead of AssemblyName.

pull/80/head
Andreas Weizel 12 years ago
parent
commit
fd697f5cc4
  1. 5
      src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs
  2. 1
      src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs
  3. 6
      src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs
  4. 14
      src/Main/Base/Project/Dom/IAssemblyModel.cs
  5. 20
      src/Main/Base/Project/Dom/IEntityModelContext.cs
  6. 1
      src/Main/Base/Project/Src/Project/CompilableProject.cs
  7. 1
      src/Main/SharpDevelop/Dom/AssemblyModel.cs
  8. 14
      src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs
  9. 3
      src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs
  10. 1
      src/Main/SharpDevelop/Parser/AssemblyParserService.cs

5
src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs

@ -202,6 +202,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -202,6 +202,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
IUpdateableAssemblyModel model = SD.GetRequiredService<IModelFactory>().CreateAssemblyModel(context);
var types = module.Assembly.TopLevelTypeDefinitions.SelectMany(td => td.Parts).ToList();
model.AssemblyName = module.UnresolvedAssembly.AssemblyName;
model.FullAssemblyName = module.UnresolvedAssembly.FullAssemblyName;
model.Update(EmptyList<IUnresolvedTypeDefinition>.Instance, types);
return model;
@ -269,6 +270,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -269,6 +270,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
get { return Path.GetFileNameWithoutExtension(process.Filename); }
}
public string FullAssemblyName {
get { return AssemblyName; }
}
public string Location {
get { return process.Filename; }
}

1
src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs

@ -5,7 +5,6 @@ using System; @@ -5,7 +5,6 @@ using System;
using System.Linq;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using ICSharpCode.TreeView;
using ICSharpCode.SharpDevelop.Parser;
using ICSharpCode.SharpDevelop.Project;

6
src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs

@ -88,8 +88,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -88,8 +88,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
var treeNode = (ProjectTreeNode) node;
if (node.Model is IProject) {
var projectModel = (IProject) node.Model;
// TODO Use full name here!
return projectModel.AssemblyModel.AssemblyName == entityAssembly.AssemblyName;
return projectModel.AssemblyModel.FullAssemblyName == entityAssembly.FullAssemblyName;
}
}
@ -109,8 +108,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -109,8 +108,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
var asmTreeNode = (AssemblyTreeNode) node;
if (node.Model is IAssemblyModel) {
var asmModel = (IAssemblyModel) node.Model;
// TODO Use full name here!
return asmModel.AssemblyName == entityAssembly.AssemblyName;
return asmModel.FullAssemblyName == entityAssembly.FullAssemblyName;
}
}

14
src/Main/Base/Project/Dom/IAssemblyModel.cs

@ -21,6 +21,11 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -21,6 +21,11 @@ namespace ICSharpCode.SharpDevelop.Dom
/// </summary>
string AssemblyName { get; }
/// <summary>
/// Gets the full assembly name (including public key token etc.)
/// </summary>
string FullAssemblyName { get; }
/// <summary>
/// Gets a collection of all top-level type definitions.
/// Top-level means it does not contain nested classes (but classes from nested namespaces!).
@ -86,6 +91,11 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -86,6 +91,11 @@ namespace ICSharpCode.SharpDevelop.Dom
/// </summary>
new string AssemblyName { get; set; }
/// <summary>
/// Gets the full assembly name (including public key token etc.)
/// </summary>
new string FullAssemblyName { get; set; }
/// <summary>
/// Returns the assembly references.
/// </summary>
@ -103,6 +113,10 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -103,6 +113,10 @@ namespace ICSharpCode.SharpDevelop.Dom
public string AssemblyName {
get { return string.Empty; }
}
public string FullAssemblyName {
get { return string.Empty; }
}
public ITypeDefinitionModelCollection TopLevelTypeDefinitions {
get { return EmptyTypeDefinitionModelCollection.Instance; }

20
src/Main/Base/Project/Dom/IEntityModelContext.cs

@ -40,6 +40,11 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -40,6 +40,11 @@ namespace ICSharpCode.SharpDevelop.Dom
/// </summary>
string AssemblyName { get; }
/// <summary>
/// Gets the full assembly name (including public key token etc.)
/// </summary>
string FullAssemblyName { get; }
/// <summary>
/// Full path and file name of the assembly. Output assembly for projects.
/// </summary>
@ -68,6 +73,17 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -68,6 +73,17 @@ namespace ICSharpCode.SharpDevelop.Dom
get { return project.AssemblyName; }
}
public string FullAssemblyName {
get {
if (project.ProjectContent == null) {
return project.ProjectContent.FullAssemblyName;
}
// TODO Better fallback for the case we can't get a FullAssemblyName?
return project.AssemblyName;
}
}
public string Location {
get { return project.OutputAssemblyFullPath; }
}
@ -111,6 +127,10 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -111,6 +127,10 @@ namespace ICSharpCode.SharpDevelop.Dom
get { return mainAssembly.AssemblyName; }
}
public string FullAssemblyName {
get { return mainAssembly.FullAssemblyName; }
}
public string Location {
get { return mainAssembly.Location; }
}

1
src/Main/Base/Project/Src/Project/CompilableProject.cs

@ -359,6 +359,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -359,6 +359,7 @@ namespace ICSharpCode.SharpDevelop.Project
assemblyModel = SD.GetRequiredService<IModelFactory>().CreateAssemblyModel(new ProjectEntityModelContext(this, ".cs"));
if (pc != null && assemblyModel is IUpdateableAssemblyModel) {
((IUpdateableAssemblyModel)assemblyModel).AssemblyName = AssemblyName;
((IUpdateableAssemblyModel)assemblyModel).FullAssemblyName = ProjectContent.FullAssemblyName;
// Add the already loaded files into the model
foreach (var file in pc.Files) {
((IUpdateableAssemblyModel)assemblyModel).Update(null, file);

1
src/Main/SharpDevelop/Dom/AssemblyModel.cs

@ -34,6 +34,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -34,6 +34,7 @@ namespace ICSharpCode.SharpDevelop.Dom
}
public string AssemblyName { get; set; }
public string FullAssemblyName { get; set; }
public ITypeDefinitionModelCollection TopLevelTypeDefinitions {
get {

14
src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs

@ -34,11 +34,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -34,11 +34,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
class UnresolvedAssemblyEntityModelContext : IEntityModelContext
{
string assemblyName;
string fullAssemblyName;
string location;
public UnresolvedAssemblyEntityModelContext(string assemblyName, string location)
public UnresolvedAssemblyEntityModelContext(string assemblyName, string fullAssemblyName, string location)
{
this.assemblyName = assemblyName;
this.fullAssemblyName = fullAssemblyName;
this.location = location;
}
@ -64,6 +66,12 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -64,6 +66,12 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
}
}
public string FullAssemblyName {
get {
return fullAssemblyName;
}
}
public string Location {
get {
return location;
@ -246,9 +254,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -246,9 +254,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
return SD.AssemblyParserService.GetAssemblyModel(new FileName(fileName), true);
} catch (Exception) {
// Special AssemblyModel for unresolved file references
IEntityModelContext unresolvedContext = new UnresolvedAssemblyEntityModelContext(Path.GetFileName(fileName), fileName);
string fakedAssemblyName = Path.GetFileName(fileName);
IEntityModelContext unresolvedContext = new UnresolvedAssemblyEntityModelContext(fakedAssemblyName, fakedAssemblyName, fileName);
IUpdateableAssemblyModel unresolvedModel = modelFactory.CreateAssemblyModel(unresolvedContext);
unresolvedModel.AssemblyName = unresolvedContext.AssemblyName;
unresolvedModel.FullAssemblyName = unresolvedContext.FullAssemblyName;
unresolvedModel.References = EmptyList<DomAssemblyName>.Instance;
return unresolvedModel;

3
src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs

@ -51,8 +51,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -51,8 +51,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
foreach (string assemblyFile in gacDialog.SelectedFileNames) {
IAssemblyModel assemblyModel = SD.AssemblyParserService.GetAssemblyModelSafe(new ICSharpCode.Core.FileName(assemblyFile), true);
if (assemblyModel != null)
// classBrowser.MainAssemblyList.Assemblies.Add(assemblyModel);
classBrowser.UnpinnedAssemblies.Assemblies.Add(assemblyModel);
classBrowser.MainAssemblyList.Assemblies.Add(assemblyModel);
}
}
}

1
src/Main/SharpDevelop/Parser/AssemblyParserService.cs

@ -340,6 +340,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -340,6 +340,7 @@ namespace ICSharpCode.SharpDevelop.Parser
model.Update(EmptyList<IUnresolvedTypeDefinition>.Instance, assembly.ProjectContent.TopLevelTypeDefinitions.ToList());
model.AssemblyName = assembly.ProjectContent.AssemblyName;
model.FullAssemblyName = assembly.ProjectContent.FullAssemblyName;
model.References = assembly.References.ToList();
return model;

Loading…
Cancel
Save