diff --git a/data/resources/StringResources.de.resx b/data/resources/StringResources.de.resx
index 3b08607fda..7b472272c9 100644
--- a/data/resources/StringResources.de.resx
+++ b/data/resources/StringResources.de.resx
@@ -3314,6 +3314,9 @@ Bitte einen anderen Dateinamen wählen.
Spalte
+
+ Inhalt
+
Anzeige-Optionen
diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx
index 27036ea06a..75e6f08341 100644
--- a/data/resources/StringResources.resx
+++ b/data/resources/StringResources.resx
@@ -2039,6 +2039,15 @@ Do you want to add the new file to the project ${CurrentProjectName}?
Save
Save *inputbox* items
+
+ Links in tooltips should go to
+
+
+ Definition in code
+
+
+ Documentation (if available)
+
Pre-select recently used members
diff --git a/src/Main/Base/Project/Editor/DocumentationUIBuilder.cs b/src/Main/Base/Project/Editor/DocumentationUIBuilder.cs
index 5a9106632e..4abb77342a 100644
--- a/src/Main/Base/Project/Editor/DocumentationUIBuilder.cs
+++ b/src/Main/Base/Project/Editor/DocumentationUIBuilder.cs
@@ -371,8 +371,12 @@ namespace ICSharpCode.SharpDevelop.Editor
var model = referencedEntity.GetModel();
return delegate(object sender, RoutedEventArgs e) {
IEntity resolvedEntity = model != null ? model.Resolve() : null;
- if (resolvedEntity != null)
- SharpDevelop.NavigationService.NavigateTo(resolvedEntity);
+ if (resolvedEntity != null) {
+ bool shouldDisplayHelp = CodeCompletionOptions.TooltipLinkTarget == TooltipLinkTarget.Documentation
+ && resolvedEntity.ParentAssembly.IsPartOfDotnetFramework();
+ if (!shouldDisplayHelp || !HelpProvider.ShowHelp(resolvedEntity))
+ NavigationService.NavigateTo(resolvedEntity);
+ }
e.Handled = true;
};
}
diff --git a/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml b/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml
index 7c2ecb72dd..d450b86852 100644
--- a/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml
+++ b/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml
@@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui"
+ xmlns:sd="clr-namespace:ICSharpCode.SharpDevelop"
xmlns:widgets="clr-namespace:ICSharpCode.SharpDevelop.Widgets;assembly=ICSharpCode.SharpDevelop.Widgets">
@@ -26,7 +27,7 @@
Header="{core:Localize Dialog.Options.IDEOptions.CodeCompletion.DetailSettings}"
IsEnabled="{Binding EnableCodeCompletion}">
-
+
@@ -38,6 +39,7 @@
+
@@ -97,6 +99,11 @@
IsEnabled="{Binding UseInsight}">
+
+
+
+
diff --git a/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml.cs b/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml.cs
index 30cc3e6109..906da07b7d 100644
--- a/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml.cs
+++ b/src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml.cs
@@ -32,7 +32,6 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
{
InitializeComponent();
this.DataContext = this;
- WrapText = StringParser.Parse("${res:Dialog.Options.IDEOptions.CodeCompletion.LanguageDependend}");
}
#region overrides
@@ -68,8 +67,6 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
#endregion
- public string WrapText {get; private set;}
-
#region Properties
private bool enableCodeCompletion;
@@ -119,7 +116,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
void Button_Click(object sender, RoutedEventArgs e)
{
- ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionDataUsageCache.ResetCache();
+ CodeCompletionDataUsageCache.ResetCache();
}
}
}
diff --git a/src/Main/Base/Project/Src/Services/HelpProvider.cs b/src/Main/Base/Project/Src/Services/HelpProvider.cs
index 0cfe0cb517..38b3a1c592 100644
--- a/src/Main/Base/Project/Src/Services/HelpProvider.cs
+++ b/src/Main/Base/Project/Src/Services/HelpProvider.cs
@@ -30,15 +30,15 @@ namespace ICSharpCode.SharpDevelop
return AddInTree.BuildItems("/SharpDevelop/Services/HelpProvider", null, false);
}
- public static void ShowHelp(IEntity c)
+ public static bool ShowHelp(IEntity c)
{
if (c == null)
throw new ArgumentNullException("c");
foreach (HelpProvider p in GetProviders()) {
if (p.TryShowHelp(c))
- return;
+ return true;
}
- new HelpProvider().TryShowHelp(c);
+ return new HelpProvider().TryShowHelp(c);
}
public virtual bool TryShowHelp(IEntity c)
diff --git a/src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs b/src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs
index c3b77fe4fa..b82f1bb429 100644
--- a/src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs
+++ b/src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using System.ComponentModel;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop
@@ -81,5 +82,17 @@ namespace ICSharpCode.SharpDevelop
get { return properties.Get("InsightRefreshOnComma", true); }
set { properties.Set("InsightRefreshOnComma", value); }
}
+
+ public static TooltipLinkTarget TooltipLinkTarget {
+ get { return properties.Get("TooltipLinkTarget", TooltipLinkTarget.Documentation); }
+ set { properties.Set("TooltipLinkTarget", value); }
+ }
+ }
+
+ public enum TooltipLinkTarget {
+ [Description("${res:Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTargetDocumentation}")]
+ Documentation,
+ [Description("${res:Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTargetDefinition}")]
+ Definition
}
}