diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj index b5561ac7a4..1e06136346 100644 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj @@ -197,7 +197,7 @@ Form - UserControl + Form Form @@ -265,7 +265,7 @@ Form - UserControl + Component @@ -685,7 +685,6 @@ {35cef10f-2d4c-45f2-9dd1-161e0fec583c} ICSharpCode.Core - \ No newline at end of file diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs index 9d9d651fff..6b8c2ac36e 100644 --- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs +++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs @@ -131,7 +131,20 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor return 0; } + string cachedString; + public override string ToString() + { + // ambience lookups can be expensive when the return type is + // resolved on the fly. + // Therefore, we need to cache the generated string because it is used + // very often for the sorting. + if (cachedString == null) + cachedString = ToStringInternal(); + return cachedString; + } + + string ToStringInternal() { IAmbience ambience = AmbienceService.CurrentAmbience; ambience.ConversionFlags = ConversionFlags.ShowParameterNames;