Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2011-08-22 12:43:36 +0400
committerMike Krüger <mkrueger@xamarin.com>2011-08-22 12:43:56 +0400
commitcfdb23292d7c1958703e9590cb639eb3bd26e142 (patch)
treefe3792d5e3998cda2cbdad0fcc44e9ebed9821a2 /main/src
parent939f7206e5571b2279f2cb82536f1c63858ce251 (diff)
Added some error handling in case of unknown outlet types (Bug 337 -
MonoDevelop 2.8a1 its not synching correctly with Xcode 4 xibs).
Diffstat (limited to 'main/src')
-rw-r--r--main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs
index 0c8bfd18e8..ec891fdd03 100644
--- a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs
+++ b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs
@@ -31,6 +31,9 @@ using System.Text.RegularExpressions;
using MonoDevelop.Projects;
using MonoDevelop.Projects.Dom;
using MonoDevelop.Projects.Dom.Parser;
+using MonoDevelop.Core;
+using MonoDevelop.Ide;
+using System.Text;
namespace MonoDevelop.MacDev.ObjCIntegration
{
public class NSObjectProjectInfo
@@ -127,6 +130,20 @@ namespace MonoDevelop.MacDev.ObjCIntegration
if (rDom != null && rDom.objcTypes.TryGetValue (objcType, out resolved))
return true;
}
+ var msg = new StringBuilder ("Can't resolve "+ objcType + Environment.NewLine);
+ foreach (var r in dom.References) {
+ msg.Append ("Referenced dom:");
+ msg.Append (r);
+ var rDom = infoService.GetProjectInfo (r);
+ if (rDom == null) {
+ msg.AppendLine ("projectinfo == null");
+ continue;
+ }
+ msg.Append ("known types:");
+ msg.AppendLine (string.Join (",", rDom.objcTypes.Keys.ToArray()));
+ }
+ LoggingService.LogWarning (msg.ToString ());
+
resolved = null;
return false;
}
@@ -175,8 +192,13 @@ namespace MonoDevelop.MacDev.ObjCIntegration
}
}
if (outlet.CliType == null) {
- if (TryResolveObjcToCli (outlet.ObjCType, out resolved))
+ if (TryResolveObjcToCli (outlet.ObjCType, out resolved)) {
outlet.CliType = resolved.CliName;
+ } else {
+ MessageService.ShowError (GettextCatalog.GetString ("Error while syncing object c type."),
+ string.Format (GettextCatalog.GetString ("Type '{0}' can't be resolved to a valid cli type."), outlet.ObjCType));
+ outlet.CliType = outlet.ObjCType;
+ }
}
}