[mono/monodevelop] 77610dd5: Fixed 'Bug 13989 - Importable symbols selected before imported

Mike Krüger ([email protected]) <[email protected]>
Newsgroups gmane.comp.gnome.mono.patches
Message-ID <00000141b608bed5-73307e66-a3f1-467c-bd22-ba358b865859-000000@email.amazonses.com>
   Branch: refs/heads/master
     Home: https://github.com/mono/monodevelop
  Compare: https://github.com/mono/monodevelop/compare/7a159de82c68...77610dd52753

   Commit: 77610dd527534ab8b2c801ccb48bde242e3ec1bf
   Author: Mike Krüger <[email protected]> (mkrueger)
     Date: 2013-10-14 08:14:22 GMT
      URL: https://github.com/mono/monodevelop/commit/77610dd527534ab8b2c801ccb48bde242e3ec1bf

Fixed 'Bug 13989 - Importable symbols selected before imported
symbols'.

Changed paths:
  M main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
  M main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/ImportSymbolHandler.cs
  M main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionData.cs

Modified: main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
===================================================================
@@ -1111,6 +1111,7 @@ public ImportSymbolCompletionData (CSharpCompletionTextEditorExtension ext, bool
 					this.ext = ext;
 					this.useFullName = useFullName;
 					this.type = type;
+					this.DisplayFlags |= ICSharpCode.NRefactory.Completion.DisplayFlags.IsImportCompletion;
 				}
 
 				public override TooltipInformation CreateTooltipInformation (bool smartWrap)
@@ -1194,10 +1195,7 @@ public override string GetDisplayDescription (bool isSelected)
 
 				public override string Description {
 					get {
-						Initialize ();
-						if (generateUsing)
-							return type.Namespace;
-						return null;
+						return type.Namespace;
 					}
 				}
 
@@ -1208,19 +1206,6 @@ public override string GetDisplayDescription (bool isSelected)
 				}
 				#endregion
 
-				public override int CompareTo (object obj)
-				{
-					var result = base.CompareTo (obj);
-					if (result == 0) {
-						var isd = obj as ImportSymbolCompletionData;
-						if (isd != null) {
-							result = StringComparer.OrdinalIgnoreCase.Compare (Description, isd.Description);
-						} else {
-							return 1;
-						}
-					}
-					return result;
-				}
 
 				List<CompletionData> overloads;
 

Modified: main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/ImportSymbolHandler.cs
===================================================================
@@ -111,6 +111,7 @@ public ImportSymbolCompletionData (MonoDevelop.Ide.Gui.Document doc, ImportSymbo
 			this.ambience = AmbienceService.GetAmbience (doc.Editor.MimeType);
 			this.type = type;
 			this.unit = doc.ParsedDocument;
+			this.DisplayFlags |= ICSharpCode.NRefactory.Completion.DisplayFlags.IsImportCompletion;
 		}
 		
 		bool initialized = false;

Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/CompletionData.cs
===================================================================
@@ -126,9 +126,17 @@ public virtual int CompareTo (object obj)
 
 		public static int Compare (ICompletionData a, ICompletionData b)
 		{
-			var result =  ((a.DisplayFlags & DisplayFlags.Obsolete) == (b.DisplayFlags & DisplayFlags.Obsolete))
-				? StringComparer.OrdinalIgnoreCase.Compare (a.DisplayText, b.DisplayText)
-					: (a.DisplayFlags & DisplayFlags.Obsolete) != 0 ? 1 : -1;
+			var result =  ((a.DisplayFlags & DisplayFlags.Obsolete) == (b.DisplayFlags & DisplayFlags.Obsolete)) ? StringComparer.OrdinalIgnoreCase.Compare (a.DisplayText, b.DisplayText) : (a.DisplayFlags & DisplayFlags.Obsolete) != 0 ? 1 : -1;
+			if (result == 0) {
+				var aIsImport = (a.DisplayFlags & DisplayFlags.IsImportCompletion) != 0;
+				var bIsImport = (b.DisplayFlags & DisplayFlags.IsImportCompletion) != 0;
+				if (!aIsImport && bIsImport)
+					return -1;
+				if (aIsImport && !bIsImport)
+					return 1;
+				if (aIsImport && bIsImport)
+					return StringComparer.Ordinal.Compare (a.Description, b.Description);
+			}
 			return result;
 		}
 
_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.