diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs index 4a6e6cc51a..bf0ae7847f 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs @@ -307,7 +307,7 @@ namespace CSharpBinding public RenamedClass(IClass c, string newName) : base(c.CompilationUnit, c.ClassType, c.Modifiers, c.Region, c.DeclaringType) { this.newName = newName; - this.Documentation = c.Documentation; + CopyDocumentationFrom(c); this.FullyQualifiedName = c.FullyQualifiedName; } diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs index a6f080b886..06501ab92e 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/EventHandlerCompletitionDataProvider.cs @@ -113,7 +113,9 @@ namespace CSharpBinding newHandlerTextBuilder.ToString(), 2+newHandlerName.Length, newHandlerName.Length, - "new " + eventHandlerFullyQualifiedTypeName + "(" + newHandlerName +StringParser.Parse(")\n${res:CSharpBinding.GenerateNewHandlerInstructions}\n") + CodeCompletionData.GetDocumentation(resolvedClass.Documentation), + "new " + eventHandlerFullyQualifiedTypeName + + "(" + newHandlerName + StringParser.Parse(")\n${res:CSharpBinding.GenerateNewHandlerInstructions}\n") + + CodeCompletionData.ConvertDocumentation(resolvedClass.Documentation), resolveResult, newHandlerCodeBuilder.ToString() )); diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs index 8a174345bd..ba1c1143d2 100644 --- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs +++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs @@ -66,7 +66,7 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow } } - public string Description { + public virtual string Description { get { return description; } @@ -89,6 +89,12 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow return false; } + public DefaultCompletionData(string text, int imageIndex) + { + this.text = text; + this.imageIndex = imageIndex; + } + public DefaultCompletionData(string text, string description, int imageIndex) { this.text = text; diff --git a/src/Main/Base/Project/Src/Commands/ChooseLayoutCommand.cs b/src/Main/Base/Project/Src/Commands/ChooseLayoutCommand.cs index 53bd42dc7e..9a41ed2ee3 100644 --- a/src/Main/Base/Project/Src/Commands/ChooseLayoutCommand.cs +++ b/src/Main/Base/Project/Src/Commands/ChooseLayoutCommand.cs @@ -116,6 +116,7 @@ namespace ICSharpCode.SharpDevelop.Commands frm.MinimizeBox = false; frm.ClientSize = new System.Drawing.Size(400, 300); frm.StartPosition = FormStartPosition.CenterParent; + frm.ShowInTaskbar = false; if (frm.ShowDialog(WorkbenchSingleton.MainForm) == DialogResult.OK) { IList oldNames = new List(CustomLayoutNames); diff --git a/src/Main/Base/Project/Src/Commands/FileCommands.cs b/src/Main/Base/Project/Src/Commands/FileCommands.cs index d335bf85bf..ece5ffc35d 100644 --- a/src/Main/Base/Project/Src/Commands/FileCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileCommands.cs @@ -74,7 +74,7 @@ namespace ICSharpCode.SharpDevelop.Commands internal static void Save(IViewContent content) { - if (content != null) { + if (content != null && content.IsDirty) { if (content is ICustomizedCommands) { if (((ICustomizedCommands)content).SaveCommand()) { return; @@ -85,7 +85,8 @@ namespace ICSharpCode.SharpDevelop.Commands } foreach (OpenedFile file in content.Files.ToArray()) { - Save(file); + if (file.IsDirty) + Save(file); } } } @@ -145,12 +146,15 @@ namespace ICSharpCode.SharpDevelop.Commands internal static void Save(IViewContent content) { - if (content != null && !content.IsViewOnly) { + if (content != null) { if (content is ICustomizedCommands) { if (((ICustomizedCommands)content).SaveAsCommand()) { return; } } + if (content.IsViewOnly) { + return; + } // save the primary file only if (content.PrimaryFile != null) { Save(content.PrimaryFile); diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectCulturePanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectCulturePanel.cs index 34b08befb1..a1841552de 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectCulturePanel.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectCulturePanel.cs @@ -74,6 +74,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels listView.Activation = ItemActivation.OneClick; listView.Anchor = (System.Windows.Forms.AnchorStyles.Top | (System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)); + listView.MultiSelect = false; foreach (Language language in LanguageService.Languages) { listView.Items.Add(new ListViewItem(new string[] {language.Name, language.Code}, language.ImageIndex)); diff --git a/src/Main/Base/Project/Src/Gui/IViewContent.cs b/src/Main/Base/Project/Src/Gui/IViewContent.cs index 62c88fa803..9b3623c208 100644 --- a/src/Main/Base/Project/Src/Gui/IViewContent.cs +++ b/src/Main/Base/Project/Src/Gui/IViewContent.cs @@ -106,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Gui /// /// Gets the list of files that are being edited using this view content. - /// The returned collection normally is readonly. + /// The returned collection usually is read-only. /// IList Files { get; } diff --git a/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs b/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs index 736f3b930c..feefb84056 100644 --- a/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs +++ b/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs @@ -79,7 +79,7 @@ namespace ICSharpCode.SharpDevelop /// /// Gets the current ambience. - /// Might return a new ambience object, or use an existing. Not thread-safe. + /// Might return a new ambience object, or use an existing. Use this method only on the main thread. /// public static IAmbience GetCurrentAmbience() { diff --git a/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs b/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs index 8a7689dadd..acb1270dc1 100644 --- a/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs +++ b/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs @@ -240,14 +240,17 @@ namespace ICSharpCode.SharpDevelop if (returnType == null) { return String.Empty; } + StringBuilder builder = new StringBuilder(); string name = returnType.DotNetName; if (UseFullyQualifiedTypeNames) { builder.Append(name); } else { - int pos = returnType.Namespace.Length; - builder.Append(name, pos, name.Length - pos); + string rtNamespace = returnType.Namespace; + if (name.StartsWith(rtNamespace, StringComparison.Ordinal)) { + builder.Append(name, rtNamespace.Length, name.Length - rtNamespace.Length); + } } return builder.ToString(); diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs index 6f13e73551..b00f742831 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs @@ -508,7 +508,7 @@ namespace ICSharpCode.SharpDevelop.Debugging string documentation = member.Documentation; if (documentation != null && documentation.Length > 0) { text.Append('\n'); - text.Append(ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionData.GetDocumentation(documentation)); + text.Append(ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionData.ConvertDocumentation(documentation)); } return text.ToString(); } diff --git a/src/Main/Base/Project/Src/TextEditor/ClipboardHandling.cs b/src/Main/Base/Project/Src/TextEditor/ClipboardHandling.cs index 24f03db1e5..82a2117efa 100644 --- a/src/Main/Base/Project/Src/TextEditor/ClipboardHandling.cs +++ b/src/Main/Base/Project/Src/TextEditor/ClipboardHandling.cs @@ -47,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor return clipboardContainsText; } - static Thread updateThread; + static volatile Thread updateThread; static void UpdateClipboardContainsText() { @@ -56,6 +56,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor Thread t = new Thread(new ThreadStart(DoUpdate)); t.SetApartmentState(ApartmentState.STA); t.IsBackground = true; + t.Name = "clipboard access"; updateThread = t; t.Start(); t.Join(50); // wait a few ms in case the clipboard can be accessed without problems diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs index badaa1b11b..3de5e63aa0 100644 --- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs +++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs @@ -20,15 +20,12 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor { public class CodeCompletionData : ICompletionData { - IAmbience ambience; + IEntity entity; int imageIndex; int overloads; string text; - string description; - string documentation; - IClass c; - IMember member; - bool convertedDocumentation = false; + string description; + string documentation; double priority; /// @@ -37,7 +34,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor /// public IClass Class { get { - return c; + return entity as IClass; } } @@ -47,7 +44,16 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor /// public IMember Member { get { - return member; + return entity as IMember; + } + } + + /// + /// Gets the class or member this CodeCompletionData object was created for. + /// + public IEntity Entity { + get { + return entity; } } @@ -93,9 +99,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor if (description.Length == 0 && (documentation == null || documentation.Length == 0)) { return ""; } - if (!convertedDocumentation && documentation != null) { - convertedDocumentation = true; - documentation = GetDocumentation(documentation); + if (documentation == null) { + if (entity != null) + documentation = ConvertDocumentation(entity.Documentation); + else + documentation = ""; } return description + (overloads > 0 ? " " + StringParser.Parse("${res:ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionData.OverloadsCounter}", new string[,] {{"NumOverloads", overloads.ToString()}}) : String.Empty) + "\n" + documentation; @@ -107,7 +115,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor string dotnetName; - void GetPriority(string dotnetName) + void InitializePriority(string dotnetName) { this.dotnetName = dotnetName; priority = CodeCompletionDataUsageCache.GetPriority(dotnetName, true); @@ -115,77 +123,51 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor public CodeCompletionData(string s, int imageIndex) { - ambience = AmbienceService.GetCurrentAmbience(); description = documentation = String.Empty; text = s; this.imageIndex = imageIndex; - GetPriority(s); + InitializePriority(s); } public CodeCompletionData(IClass c) { - ambience = AmbienceService.GetCurrentAmbience(); + IAmbience ambience = AmbienceService.GetCurrentAmbience(); // save class (for the delegate description shortcut) - this.c = c; + this.entity = c; imageIndex = ClassBrowserIconService.GetIcon(c); ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList; text = ambience.Convert(c); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.UseFullyQualifiedMemberNames; description = ambience.Convert(c); - documentation = c.Documentation; - GetPriority(c.DotNetName); + InitializePriority(c.DotNetName); } - public CodeCompletionData(IMethod method) + public CodeCompletionData(IMember member) { - member = method; - imageIndex = ClassBrowserIconService.GetIcon(method); - ambience = AmbienceService.GetCurrentAmbience(); + this.entity = member; + imageIndex = ClassBrowserIconService.GetIcon(member); + IAmbience ambience = AmbienceService.GetCurrentAmbience(); ambience.ConversionFlags = ConversionFlags.None; - text = ambience.Convert(method); + text = ambience.Convert(member); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; - description = ambience.Convert(method); - documentation = method.Documentation; - GetPriority(method.DotNetName); + description = ambience.Convert(member); + InitializePriority(member.DotNetName); } - public CodeCompletionData(IField field) + public CodeCompletionData(IMethod method) : this((IMember)method) { - member = field; - ambience = AmbienceService.GetCurrentAmbience(); - imageIndex = ClassBrowserIconService.GetIcon(field); - ambience.ConversionFlags = ConversionFlags.None; - text = ambience.Convert(field); - ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; - description = ambience.Convert(field); - documentation = field.Documentation; - GetPriority(field.DotNetName); } - public CodeCompletionData(IProperty property) + public CodeCompletionData(IField field) : this((IMember)field) { - member = property; - ambience = AmbienceService.GetCurrentAmbience(); - imageIndex = ClassBrowserIconService.GetIcon(property); - ambience.ConversionFlags = ConversionFlags.None; - text = ambience.Convert(property); - ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; - description = ambience.Convert(property); - documentation = property.Documentation; - GetPriority(property.DotNetName); } - public CodeCompletionData(IEvent e) + public CodeCompletionData(IProperty property) : this((IMember)property) + { + } + + public CodeCompletionData(IEvent e) : this((IMember)e) { - member = e; - ambience = AmbienceService.GetCurrentAmbience(); - imageIndex = ClassBrowserIconService.GetIcon(e); - ambience.ConversionFlags = ConversionFlags.None; - text = ambience.Convert(e); - ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; - description = ambience.Convert(e); - documentation = e.Documentation; - GetPriority(e.DotNetName); } public bool InsertAction(TextArea textArea, char ch) @@ -193,6 +175,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor if (dotnetName != null) { CodeCompletionDataUsageCache.IncrementUsage(dotnetName); } + IClass c = this.Class; if (c != null && text.Length > c.Name.Length) { textArea.InsertString(text.Substring(0, c.Name.Length + 1)); TextLocation start = textArea.Caret.Position; @@ -218,13 +201,22 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor return false; } - internal static Regex whitespace = new Regex(@"\s+"); + [Obsolete("Use 'ConvertDocumentation' instead.")] + public static string GetDocumentation(string doc) + { + return ConvertDocumentation(doc); + } + + static readonly Regex whitespace = new Regex(@"\s+"); /// /// Converts the xml documentation string into a plain text string. /// - public static string GetDocumentation(string doc) + public static string ConvertDocumentation(string doc) { + if (string.IsNullOrEmpty(doc)) + return string.Empty; + System.IO.StringReader reader = new System.IO.StringReader("" + doc + ""); XmlTextReader xml = new XmlTextReader(reader); StringBuilder ret = new StringBuilder(); diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/OverrideCompletionDataProvider.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/OverrideCompletionDataProvider.cs index b38bec335f..d1d9f25b80 100644 --- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/OverrideCompletionDataProvider.cs +++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/OverrideCompletionDataProvider.cs @@ -75,31 +75,36 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor { IMember member; - static string GetName(IMethod method, ConversionFlags flags) + static string GetName(IMember member, ConversionFlags flags) { IAmbience ambience = AmbienceService.GetCurrentAmbience(); - ambience.ConversionFlags = flags | ConversionFlags.ShowParameterNames; - return ambience.Convert(method); + ambience.ConversionFlags = flags | ConversionFlags.ShowParameterNames | ConversionFlags.ShowTypeParameterList; + return ambience.Convert(member); } public OverrideCompletionData(IMethod method) : base(GetName(method, ConversionFlags.ShowParameterList), - "override " + GetName(method, ConversionFlags.ShowReturnType - | ConversionFlags.ShowParameterList - | ConversionFlags.ShowAccessibility) - + "\n\n" + CodeCompletionData.GetDocumentation(method.Documentation), ClassBrowserIconService.GetIcon(method)) { this.member = method; } public OverrideCompletionData(IProperty property) - : base(property.Name, "override " + property.Name + "\n\n" + CodeCompletionData.GetDocumentation(property.Documentation), + : base(property.Name, "override " + property.Name + "\n\n" + CodeCompletionData.ConvertDocumentation(property.Documentation), ClassBrowserIconService.GetIcon(property)) { this.member = property; } + public override string Description { + get { + return "override " + GetName(member, ConversionFlags.ShowReturnType + | ConversionFlags.ShowParameterList + | ConversionFlags.ShowAccessibility) + + "\n\n" + CodeCompletionData.ConvertDocumentation(member.Documentation); + } + } + public override bool InsertAction(TextArea textArea, char ch) { ClassFinder context = new ClassFinder(ParserService.GetParseInformation(textArea.MotherTextEditorControl.FileName), diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs index 08c629978b..45798339a5 100644 --- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs +++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs @@ -55,7 +55,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor conv.ConversionFlags = ConversionFlags.StandardConversionFlags| ConversionFlags.UseFullyQualifiedMemberNames; string documentation = method.Documentation; string text = conv.Convert(method); - return text + "\n" + CodeCompletionData.GetDocumentation(documentation); + return text + "\n" + CodeCompletionData.ConvertDocumentation(documentation); } int lookupOffset; diff --git a/src/Main/ICSharpCode.Core.WinForms/MessageService/CustomDialog.cs b/src/Main/ICSharpCode.Core.WinForms/MessageService/CustomDialog.cs index 3ea2b2100e..ea215df7b2 100644 --- a/src/Main/ICSharpCode.Core.WinForms/MessageService/CustomDialog.cs +++ b/src/Main/ICSharpCode.Core.WinForms/MessageService/CustomDialog.cs @@ -137,6 +137,7 @@ namespace ICSharpCode.Core.WinForms this.DockPadding.Right = 4; this.DockPadding.Top = 4; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.ShowInTaskbar = false; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "CustomDialog"; diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs index a75d7ef70a..8215adb923 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs @@ -473,6 +473,9 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp if (returnType == null) { return String.Empty; } + + returnType = returnType.GetDirectReturnType(); + StringBuilder builder = new StringBuilder(); string fullName = returnType.FullyQualifiedName; diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs index d6a4e98192..20705e0f70 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs @@ -18,7 +18,7 @@ namespace ICSharpCode.SharpDevelop.Dom /// A case-sensitive dummy language that returns false for all Supports.. properties, /// uses a dummy code generator and refactoring provider and returns null for CodeDomProvider. /// - public readonly static LanguageProperties None = new LanguageProperties(StringComparer.InvariantCulture); + public readonly static LanguageProperties None = new LanguageProperties(StringComparer.Ordinal); /// /// C# 3.0 language properties. @@ -248,7 +248,7 @@ namespace ICSharpCode.SharpDevelop.Dom #region CSharpProperties internal sealed class CSharpProperties : LanguageProperties { - public CSharpProperties() : base(StringComparer.InvariantCulture) {} + public CSharpProperties() : base(StringComparer.Ordinal) {} public override RefactoringProvider RefactoringProvider { get { @@ -315,7 +315,7 @@ namespace ICSharpCode.SharpDevelop.Dom #region VBNetProperties internal sealed class VBNetProperties : LanguageProperties { - public VBNetProperties() : base(StringComparer.InvariantCultureIgnoreCase) {} + public VBNetProperties() : base(StringComparer.OrdinalIgnoreCase) {} public override bool ShowMember(IMember member, bool showStatic) { diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs index ffa6375df2..581af40452 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs @@ -484,6 +484,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet if (returnType == null) { return String.Empty; } + + returnType = returnType.GetDirectReturnType(); + StringBuilder builder = new StringBuilder(); string fullName = returnType.FullyQualifiedName; diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/XmlDoc.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/XmlDoc.cs index bfe61f1381..81909554b8 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/XmlDoc.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/XmlDoc.cs @@ -202,9 +202,11 @@ namespace ICSharpCode.SharpDevelop.Dom fs.Position = index[m].FileLocation; string keyInFile = loader.ReadString(); if (keyInFile == key) { + //LoggingService.Debug("Got XML documentation for " + key); resultDocu = loader.ReadString(); break; } else { + // this is a harmless hash collision, just continue reading LoggingService.Warn("Found " + keyInFile + " instead of " + key); } }