Browse Source

fix #318: XmlDoc: Links should open MSDN documentation or go to definition

pull/343/merge
Siegfried Pammer 12 years ago
parent
commit
23133267d3
  1. 3
      data/resources/StringResources.de.resx
  2. 9
      data/resources/StringResources.resx
  3. 8
      src/Main/Base/Project/Editor/DocumentationUIBuilder.cs
  4. 9
      src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml
  5. 5
      src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml.cs
  6. 6
      src/Main/Base/Project/Src/Services/HelpProvider.cs
  7. 13
      src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs

3
data/resources/StringResources.de.resx

@ -3314,6 +3314,9 @@ Bitte einen anderen Dateinamen wählen.</value> @@ -3314,6 +3314,9 @@ Bitte einen anderen Dateinamen wählen.</value>
<data name="ICSharpCode.CodeCoverage.Column" xml:space="preserve">
<value>Spalte</value>
</data>
<data name="ICSharpCode.CodeCoverage.Content" xml:space="preserve">
<value>Inhalt</value>
</data>
<data name="ICSharpCode.CodeCoverage.DisplayOptions" xml:space="preserve">
<value>Anzeige-Optionen</value>
</data>

9
data/resources/StringResources.resx

@ -2039,6 +2039,15 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value> @@ -2039,6 +2039,15 @@ Do you want to add the new file to the project ${CurrentProjectName}?</value>
<value>Save</value>
<comment>Save *inputbox* items</comment>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTarget" xml:space="preserve">
<value>Links in tooltips should go to</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTargetDefinition" xml:space="preserve">
<value>Definition in code</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTargetDocumentation" xml:space="preserve">
<value>Documentation (if available)</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.UseDataUsageCache" xml:space="preserve">
<value>Pre-select recently used members</value>
</data>

8
src/Main/Base/Project/Editor/DocumentationUIBuilder.cs

@ -371,8 +371,12 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -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;
};
}

9
src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml

@ -3,6 +3,7 @@ @@ -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">
<Grid>
<Grid.RowDefinitions>
@ -38,6 +39,7 @@ @@ -38,6 +39,7 @@
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<CheckBox Content="{core:Localize Dialog.Options.IDEOptions.CodeCompletion.UseDataUsageCache}"
@ -75,7 +77,7 @@ @@ -75,7 +77,7 @@
</CheckBox>
<TextBlock Grid.Row="4" Margin="0,3,0,13"
Text="{Binding WrapText}"
Text="{core:Localize Dialog.Options.IDEOptions.CodeCompletion.LanguageDependend}"
TextWrapping="Wrap">
</TextBlock>
@ -97,6 +99,11 @@ @@ -97,6 +99,11 @@
IsEnabled="{Binding UseInsight}">
</CheckBox>
<StackPanel Grid.Row="9" Orientation="Horizontal" Margin="0,10">
<TextBlock Text="{core:Localize Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTarget}" Margin="0,2,2,0" />
<ComboBox sd:EnumBinding.EnumType="{x:Type sd:TooltipLinkTarget}"
SelectedValue="{core:OptionBinding sd:CodeCompletionOptions.TooltipLinkTarget}" />
</StackPanel>
</Grid>
</GroupBox>
</Grid>

5
src/Main/Base/Project/Src/Editor/CodeCompletion/CodeCompletionPanelXaml.xaml.cs

@ -32,7 +32,6 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -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 @@ -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 @@ -119,7 +116,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
void Button_Click(object sender, RoutedEventArgs e)
{
ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionDataUsageCache.ResetCache();
CodeCompletionDataUsageCache.ResetCache();
}
}
}

6
src/Main/Base/Project/Src/Services/HelpProvider.cs

@ -30,15 +30,15 @@ namespace ICSharpCode.SharpDevelop @@ -30,15 +30,15 @@ namespace ICSharpCode.SharpDevelop
return AddInTree.BuildItems<HelpProvider>("/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)

13
src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs

@ -17,6 +17,7 @@ @@ -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 @@ -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
}
}

Loading…
Cancel
Save