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 } }