From c3c65840e7e4cdbfdf2c5e082e3587212a98b1c1 Mon Sep 17 00:00:00 2001
From: Siegfried Pammer <siegfriedpammer@gmail.com>
Date: Wed, 8 Jan 2014 23:56:13 +0100
Subject: [PATCH] only use fully qualified names for type and member
 definitions

---
 .../OutputVisitor/CSharpAmbience.cs                        | 4 +++-
 .../ICSharpCode.NRefactory/TypeSystem/IAmbience.cs         | 7 ++++++-
 src/Main/Base/Project/Editor/XmlDocFormatter.cs            | 4 ++--
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs
index 84d72ff750..053b6efadf 100644
--- a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs
+++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs
@@ -167,7 +167,7 @@ namespace ICSharpCode.NRefactory.CSharp
 			if (typeDef.DeclaringTypeDefinition != null) {
 				WriteTypeDeclarationName(typeDef.DeclaringTypeDefinition, writer, formattingPolicy);
 				writer.WriteToken(Roles.Dot, ".");
-			} else if ((ConversionFlags & ConversionFlags.UseFullyQualifiedTypeNames) == ConversionFlags.UseFullyQualifiedTypeNames) {
+			} else if ((ConversionFlags & ConversionFlags.UseFullyQualifiedMemberNames) == ConversionFlags.UseFullyQualifiedMemberNames) {
 				WriteQualifiedName(typeDef.Namespace, writer, formattingPolicy);
 				writer.WriteToken(Roles.Dot, ".");
 			}
@@ -265,6 +265,7 @@ namespace ICSharpCode.NRefactory.CSharp
 				throw new ArgumentNullException("type");
 			
 			TypeSystemAstBuilder astBuilder = CreateAstBuilder();
+			astBuilder.AlwaysUseShortTypeNames = (ConversionFlags & ConversionFlags.UseFullyQualifiedMemberNames) != ConversionFlags.UseFullyQualifiedMemberNames;
 			AstType astType = astBuilder.ConvertType(type);
 			return astType.ToString();
 		}
@@ -272,6 +273,7 @@ namespace ICSharpCode.NRefactory.CSharp
 		public void ConvertType(IType type, TokenWriter writer, CSharpFormattingOptions formattingPolicy)
 		{
 			TypeSystemAstBuilder astBuilder = CreateAstBuilder();
+			astBuilder.AlwaysUseShortTypeNames = (ConversionFlags & ConversionFlags.UseFullyQualifiedMemberNames) != ConversionFlags.UseFullyQualifiedMemberNames;
 			AstType astType = astBuilder.ConvertType(type);
 			astType.AcceptVisitor(new CSharpOutputVisitor(writer, formattingPolicy));
 		}
diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/IAmbience.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/IAmbience.cs
index 1aa9d299cb..e56e21c0b5 100644
--- a/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/IAmbience.cs
+++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/IAmbience.cs
@@ -70,6 +70,11 @@ namespace ICSharpCode.NRefactory.TypeSystem
 		/// </summary>
 		ShowBody = 0x200,
 		
+		/// <summary>
+		/// Use fully qualified names for members.
+		/// </summary>
+		UseFullyQualifiedMemberNames = 0x400,
+		
 		StandardConversionFlags = ShowParameterNames |
 			ShowAccessibility |
 			ShowParameterList |
@@ -79,7 +84,7 @@ namespace ICSharpCode.NRefactory.TypeSystem
 			ShowDefinitionKeyword |
 			ShowBody,
 		
-		All = 0x3ff,
+		All = 0x7ff,
 	}
 	
 	public interface IAmbience
diff --git a/src/Main/Base/Project/Editor/XmlDocFormatter.cs b/src/Main/Base/Project/Editor/XmlDocFormatter.cs
index 2c4c1af362..9fd78fca81 100644
--- a/src/Main/Base/Project/Editor/XmlDocFormatter.cs
+++ b/src/Main/Base/Project/Editor/XmlDocFormatter.cs
@@ -16,7 +16,7 @@ namespace ICSharpCode.SharpDevelop.Editor
 		public static FlowDocument CreateTooltip(IType type)
 		{
 			var ambience = AmbienceService.GetCurrentAmbience();
-			ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType | ConversionFlags.UseFullyQualifiedTypeNames;
+			ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType | ConversionFlags.UseFullyQualifiedMemberNames;
 			string header;
 			if (type is ITypeDefinition)
 				header = ambience.ConvertEntity((ITypeDefinition)type);
@@ -42,7 +42,7 @@ namespace ICSharpCode.SharpDevelop.Editor
 		public static FlowDocument CreateTooltip(IEntity entity)
 		{
 			var ambience = AmbienceService.GetCurrentAmbience();
-			ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType | ConversionFlags.UseFullyQualifiedTypeNames;
+			ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType | ConversionFlags.UseFullyQualifiedMemberNames;
 			string header = ambience.ConvertEntity(entity);
 			var documentation = XmlDocumentationElement.Get(entity);