Browse Source

Added F1 help to text editor and forms designer.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@359 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
63bb9fe821
  1. 2
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 19
      data/templates/file/SharpDevelop/AddInOptions.xft
  3. 2
      data/templates/file/VBNet/VBNet.Module.xft
  4. 2
      data/templates/file/VBNet/VBNet.MyExtensionClass.xft
  5. 13
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/FormDesignerViewContent.cs
  6. 18
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/Services/HelpService.cs
  7. 7
      src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin
  8. 1
      src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj
  9. 30
      src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs
  10. 4
      src/AddIns/Misc/MbUnitPad/Project/MbUnitPad.addin
  11. 3
      src/AddIns/Misc/MbUnitPad/Project/MbUnitPad.csproj
  12. 2
      src/AddIns/Misc/MbUnitPad/Project/Src/MbUnitPad.cs
  13. 2
      src/AddIns/Misc/MbUnitPad/Project/Src/TestTreeView.cs
  14. 3
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  15. 23
      src/Main/Base/Project/Src/Commands/HelpCommands.cs
  16. 77
      src/Main/Base/Project/Src/Dom/HelpProvider.cs
  17. 2
      src/Main/Base/Project/Src/Gui/ContentInterfaces/IContextHelpProvider.cs
  18. 17
      src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs
  19. 6
      src/Main/Base/Project/Src/Services/File/FileService.cs
  20. 27
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs

2
AddIns/ICSharpCode.SharpDevelop.addin

@ -1370,7 +1370,7 @@
<MenuItem id = "Help" <MenuItem id = "Help"
label = "${res:XML.MainMenu.HelpMenu.Topics}" label = "${res:XML.MainMenu.HelpMenu.Topics}"
shortcut = "Alt|F1" shortcut = "Alt|F1"
link = "browser://ms-help://corsavy/"/> link = "http://wiki.sharpdevelop.net/"/>
<MenuItem id = "TipOfTheDay" <MenuItem id = "TipOfTheDay"
label = "${res:XML.MainMenu.HelpMenu.Tips}" label = "${res:XML.MainMenu.HelpMenu.Tips}"
icon = "Icons.16x16.TipOfTheDay" icon = "Icons.16x16.TipOfTheDay"

19
data/templates/file/SharpDevelop/AddInOptions.xft

@ -32,31 +32,26 @@ namespace ${StandardNamespace}
{ {
public static readonly string OptionsProperty = "${StandardNamespace}.Options"; public static readonly string OptionsProperty = "${StandardNamespace}.Options";
static IProperties properties; static Properties properties;
static AddInOptions() static AddInOptions()
{ {
PropertyService propertyService = (PropertyService)ServiceManager.Services.GetService(typeof(PropertyService)); properties = PropertyService.GetProperty(OptionsProperty, new Properties());
properties = (IProperties)propertyService.GetProperty(OptionsProperty, new DefaultProperties());
} }
static IProperties Properties { public static event PropertyChangedEventHandler PropertyChanged {
get { add { Properties.PropertyChanged += value; }
Debug.Assert(properties != null); remove { Properties.PropertyChanged -= value; }
return properties;
}
} }
#region Properties
// public static string MyStringProperty { // public static string MyStringProperty {
// get { // get {
// return Properties.GetProperty("MyStringProperty", "DefaultValue"); // return properties.GetProperty("MyStringProperty", "DefaultValue");
// } // }
// set { // set {
// Properties.SetProperty("MyStringProperty", value); // properties.SetProperty("MyStringProperty", value);
// } // }
// } // }
#endregion
} }
} }
]]> ]]>

2
data/templates/file/VBNet/VBNet.Module.xft

@ -8,7 +8,7 @@
defaultname = "Module${Number}.vb" defaultname = "Module${Number}.vb"
language = "VBNET"/> language = "VBNET"/>
<Description>${res:Templates.File.SingletonClass.Description}</Description> <Description>${res:Templates.File.Module.Description}</Description>
<!-- <!--
Special new file templates: Special new file templates:

2
data/templates/file/VBNet/VBNet.MyExtensionClass.xft

@ -9,7 +9,7 @@
language = "VBNET" language = "VBNET"
/> />
<Description>${res:Templates.File.EmptyClass.Description}</Description> <Description>${res:Templates.File.MyExtensionClass.Description}</Description>
<!-- <!--
Special new file templates: Special new file templates:

13
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/FormDesignerViewContent.cs

@ -45,7 +45,7 @@ using Microsoft.VisualBasic;
namespace ICSharpCode.FormDesigner namespace ICSharpCode.FormDesigner
{ {
public class FormDesignerViewContent : AbstractSecondaryViewContent, IClipboardHandler, IUndoHandler, IHasPropertyContainer public class FormDesignerViewContent : AbstractSecondaryViewContent, IClipboardHandler, IUndoHandler, IHasPropertyContainer, IContextHelpProvider
{ {
protected bool failedDesignerInitialize; protected bool failedDesignerInitialize;
@ -162,6 +162,17 @@ namespace ICSharpCode.FormDesigner
} }
} }
public void ShowHelp()
{
ISelectionService selectionService = (ISelectionService)Host.GetService(typeof(ISelectionService));
if (selectionService != null) {
Control ctl = selectionService.PrimarySelection as Control;
if (ctl != null) {
ICSharpCode.SharpDevelop.Dom.HelpProvider.ShowHelp(ctl.GetType().FullName);
}
}
}
public void Reload() public void Reload()
{ {
Initialize(); Initialize();

18
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/Services/HelpService.cs

@ -72,21 +72,7 @@ namespace ICSharpCode.FormDesigner.Services
public void ShowHelpFromKeyword(string helpKeyword) public void ShowHelpFromKeyword(string helpKeyword)
{ {
if (helpKeyword == null) { ICSharpCode.SharpDevelop.Dom.HelpProvider.ShowHelpByKeyword(helpKeyword);
helpKeyword = f1Keyword;
}
string classStr = helpKeyword;
string memberStr = String.Empty;
// show member help
if (helpKeyword == f1Keyword) {
int idx = helpKeyword.LastIndexOf('.');
classStr = helpKeyword.Substring(0, idx);
memberStr = helpKeyword.Substring(idx + 1);
}
throw new NotImplementedException();
//HelpBrowser helpBrowser = (HelpBrowser)WorkbenchSingleton.Workbench.GetPad(typeof(HelpBrowser)).PadContent;
//helpBrowser.ShowHelpFromType(classStr, memberStr);
} }
public void ShowGeneralHelp() public void ShowGeneralHelp()
{ {
@ -94,7 +80,7 @@ namespace ICSharpCode.FormDesigner.Services
} }
public void ShowHelp() public void ShowHelp()
{ {
ShowHelpFromKeyword(f1Keyword); ICSharpCode.SharpDevelop.Dom.HelpProvider.ShowHelp(f1Keyword);
} }
public void ShowHelpFromUrl(string helpURL) public void ShowHelpFromUrl(string helpURL)

7
src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin

@ -10,8 +10,11 @@
</Runtime> </Runtime>
<Path name = "/SharpDevelop/Views/Browser/SchemeExtensions"> <Path name = "/SharpDevelop/Views/Browser/SchemeExtensions">
<BrowserSchemeExtension id = "ms-help" <BrowserSchemeExtension id = "ms-help" class = "HtmlHelp2.BrowserScheme"/>
class = "HtmlHelp2.BrowserScheme"/> </Path>
<Path name = "/SharpDevelop/Services/HelpProvider">
<Class id = "HtmlHelp2" class = "HtmlHelp2.MsHelpProvider"/>
</Path> </Path>
<Path name = "/SharpDevelop/Workbench/Pads"> <Path name = "/SharpDevelop/Workbench/Pads">

1
src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj

@ -78,6 +78,7 @@
<Compile Include="src\BrowserControl\HelpBrowserCommands.cs" /> <Compile Include="src\BrowserControl\HelpBrowserCommands.cs" />
<Compile Include="src\BrowserScheme.cs" /> <Compile Include="src\BrowserScheme.cs" />
<EmbeddedResource Include="Resources\HtmlHelp2.16x16.Print.bmp" /> <EmbeddedResource Include="Resources\HtmlHelp2.16x16.Print.bmp" />
<Compile Include="src\MsHelpProvider.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">

30
src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs

@ -0,0 +1,30 @@
/*
* Created by SharpDevelop.
* User: Daniel Grunwald
* Date: 13.08.2005
* Time: 15:36
*/
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
namespace HtmlHelp2
{
public class MsHelpProvider : HelpProvider
{
// TODO: Implement MsHelpProvider
public override bool TryShowHelp(string fullTypeName)
{
LoggingService.Info("MsHelpProvider.TryShowHelp");
return false;
}
public override bool TryShowHelpByKeyword(string keyword)
{
LoggingService.Info("MsHelpProvider.TryShowHelpByKeyword");
return false;
}
}
}

4
src/AddIns/Misc/MbUnitPad/Project/MbUnitPad.addin

@ -20,7 +20,7 @@
class = "ICSharpCode.MbUnitPad.MbUnitPadContent"/> class = "ICSharpCode.MbUnitPad.MbUnitPadContent"/>
</Path> </Path>
<Path name = "/MbUnitPad/Toolbar"> <Path name = "/SharpDevelop/Pads/MbUnitPad/Toolbar">
<Condition name = "CombineOpen" iscombineopen="True" action="Disable"> <Condition name = "CombineOpen" iscombineopen="True" action="Disable">
<ToolbarItem id = "Reload" <ToolbarItem id = "Reload"
icon = "Icons.16x16.BrowserRefresh" icon = "Icons.16x16.BrowserRefresh"
@ -47,6 +47,6 @@
</Condition> </Condition>
</Path> </Path>
<Path name = "/MbUnitPad/ContextMenu"> <Path name = "/SharpDevelop/Pads/MbUnitPad/ContextMenu">
</Path> </Path>
</AddIn> </AddIn>

3
src/AddIns/Misc/MbUnitPad/Project/MbUnitPad.csproj

@ -8,9 +8,6 @@
<ProjectGuid>{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}</ProjectGuid> <ProjectGuid>{B1CE28A0-04E8-490D-8256-E0C4D52C93C8}</ProjectGuid>
<ProductVersion>8.0.50215</ProductVersion> <ProductVersion>8.0.50215</ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<StartupObject />
<ApplicationIcon />
<Win32Resource />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>..\..\..\..\..\AddIns\AddIns\Misc\MbUnitPad\</OutputPath> <OutputPath>..\..\..\..\..\AddIns\AddIns\Misc\MbUnitPad\</OutputPath>

2
src/AddIns/Misc/MbUnitPad/Project/Src/MbUnitPad.cs

@ -49,7 +49,7 @@ namespace ICSharpCode.MbUnitPad
treeView.Dock = DockStyle.Fill; treeView.Dock = DockStyle.Fill;
ctl.Controls.Add(treeView); ctl.Controls.Add(treeView);
ToolStrip toolStrip = ToolbarService.CreateToolStrip(this, "/MbUnitPad/Toolbar"); ToolStrip toolStrip = ToolbarService.CreateToolStrip(this, "/SharpDevelop/Pads/MbUnitPad/Toolbar");
toolStrip.GripStyle = ToolStripGripStyle.Hidden; toolStrip.GripStyle = ToolStripGripStyle.Hidden;
ctl.Controls.Add(toolStrip); ctl.Controls.Add(toolStrip);

2
src/AddIns/Misc/MbUnitPad/Project/Src/TestTreeView.cs

@ -26,7 +26,7 @@ namespace ICSharpCode.MbUnitPad
public TestTreeView() public TestTreeView()
{ {
TypeTree.ContextMenu = null; TypeTree.ContextMenu = null;
TypeTree.ContextMenuStrip = MenuService.CreateContextMenu(this, "/MbUnitPad/ContextMenu"); TypeTree.ContextMenuStrip = MenuService.CreateContextMenu(this, "/SharpDevelop/Pads/MbUnitPad/ContextMenu");
this.StartTests += OnTestsStarted; this.StartTests += OnTestsStarted;
this.FinishTests += delegate { BeginInvoke(new MethodInvoker(ExpandAllFailures)); }; this.FinishTests += delegate { BeginInvoke(new MethodInvoker(ExpandAllFailures)); };
this.Facade.Updated += OnFacadeUpdated; this.Facade.Updated += OnFacadeUpdated;

3
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -316,7 +316,7 @@
<Compile Include="Src\Internal\ConditionEvaluators\ActiveViewContentUntitledEvaluator.cs" /> <Compile Include="Src\Internal\ConditionEvaluators\ActiveViewContentUntitledEvaluator.cs" />
<Compile Include="Src\Services\Debugger\DebuggerService.cs" /> <Compile Include="Src\Services\Debugger\DebuggerService.cs" />
<Compile Include="Src\Gui\Pads\CompilerMessageView\CompilerMessageView.cs" /> <Compile Include="Src\Gui\Pads\CompilerMessageView\CompilerMessageView.cs" />
<Compile Include="Src\Gui\ContentInterfaces\IHelpProvider.cs" /> <Compile Include="Src\Gui\ContentInterfaces\IContextHelpProvider.cs" />
<Compile Include="Src\Gui\Components\LocalizedPropertyGrid\LocalizedTypeDescriptor.cs" /> <Compile Include="Src\Gui\Components\LocalizedPropertyGrid\LocalizedTypeDescriptor.cs" />
<Compile Include="Src\Internal\Templates\File\ScriptRunner.cs" /> <Compile Include="Src\Internal\Templates\File\ScriptRunner.cs" />
<Compile Include="Src\Gui\Components\LocalizedPropertyGrid\CustomTypeConverter\BooleanTypeConverter.cs" /> <Compile Include="Src\Gui\Components\LocalizedPropertyGrid\CustomTypeConverter\BooleanTypeConverter.cs" />
@ -690,6 +690,7 @@
<Compile Include="Src\Gui\BrowserDisplayBinding\BrowserCommands.cs" /> <Compile Include="Src\Gui\BrowserDisplayBinding\BrowserCommands.cs" />
<Compile Include="Src\Gui\BrowserDisplayBinding\BrowserLocationConditionEvaluator.cs" /> <Compile Include="Src\Gui\BrowserDisplayBinding\BrowserLocationConditionEvaluator.cs" />
<Compile Include="Src\Services\Debugger\DebuggerDoozer.cs" /> <Compile Include="Src\Services\Debugger\DebuggerDoozer.cs" />
<Compile Include="Src\Dom\HelpProvider.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj"> <ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">

23
src/Main/Base/Project/Src/Commands/HelpCommands.cs

@ -21,10 +21,10 @@ namespace ICSharpCode.SharpDevelop.Commands
public override void Run() public override void Run()
{ {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
IHelpProvider helpProvider = window != null ? window.ActiveViewContent as IHelpProvider : null; IContextHelpProvider helpProvider = window != null ? window.ActiveViewContent as IContextHelpProvider : null;
foreach (PadDescriptor descriptor in WorkbenchSingleton.Workbench.PadContentCollection) { foreach (PadDescriptor descriptor in WorkbenchSingleton.Workbench.PadContentCollection) {
if (descriptor.HasFocus && descriptor.PadContent is IHelpProvider) { if (descriptor.HasFocus && descriptor.PadContent is IContextHelpProvider) {
((IHelpProvider)descriptor.PadContent).ShowHelp(); ((IContextHelpProvider)descriptor.PadContent).ShowHelp();
return; return;
} }
} }
@ -35,22 +35,6 @@ namespace ICSharpCode.SharpDevelop.Commands
} }
} }
public class ShowHelp : AbstractMenuCommand
{
public override void Run()
{
string fileName = FileUtility.SharpDevelopRootPath +
Path.DirectorySeparatorChar + "doc" +
Path.DirectorySeparatorChar + "help" +
Path.DirectorySeparatorChar + "sharpdevelop.chm";
if (FileUtility.TestFileExists(fileName)) {
Help.ShowHelp((Form)WorkbenchSingleton.Workbench, fileName);
((Form)WorkbenchSingleton.Workbench).Select();
}
}
}
public class ViewGPL : AbstractMenuCommand public class ViewGPL : AbstractMenuCommand
{ {
public override void Run() public override void Run()
@ -78,7 +62,6 @@ namespace ICSharpCode.SharpDevelop.Commands
try { try {
Process.Start(file); Process.Start(file);
} catch (Exception) { } catch (Exception) {
MessageService.ShowError("Can't execute/view " + file + "\n Please check that the file exists and that you can open this file."); MessageService.ShowError("Can't execute/view " + file + "\n Please check that the file exists and that you can open this file.");
} }
} else { } else {

77
src/Main/Base/Project/Src/Dom/HelpProvider.cs

@ -0,0 +1,77 @@
/*
* Created by SharpDevelop.
* User: Daniel Grunwald
* Date: 13.08.2005
* Time: 15:14
*/
using System;
using System.Collections;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Dom
{
public class HelpProvider
{
public static ArrayList GetProviders()
{
return AddInTree.BuildItems("/SharpDevelop/Services/HelpProvider", null, false);
}
public static void ShowHelp(IClass c)
{
foreach (HelpProvider p in GetProviders()) {
if (p.TryShowHelp(c))
return;
}
new HelpProvider().TryShowHelp(c);
}
public virtual bool TryShowHelp(IClass c)
{
return TryShowHelp(c.FullyQualifiedName);
}
public static void ShowHelp(IMember m)
{
foreach (HelpProvider p in GetProviders()) {
if (p.TryShowHelp(m))
return;
}
new HelpProvider().TryShowHelp(m);
}
public virtual bool TryShowHelp(IMember m)
{
return TryShowHelp(m.FullyQualifiedName);
}
public static void ShowHelp(string fullTypeName)
{
foreach (HelpProvider p in GetProviders()) {
if (p.TryShowHelp(fullTypeName))
return;
}
new HelpProvider().TryShowHelp(fullTypeName);
}
public virtual bool TryShowHelp(string fullTypeName)
{
FileService.OpenFile("http://msdn2.microsoft.com/library/" + Uri.EscapeDataString(fullTypeName));
return true;
}
public static void ShowHelpByKeyword(string keyword)
{
foreach (HelpProvider p in GetProviders()) {
if (p.TryShowHelpByKeyword(keyword))
return;
}
}
public virtual bool TryShowHelpByKeyword(string keyword)
{
return false;
}
}
}

2
src/Main/Base/Project/Src/Gui/ContentInterfaces/IHelpProvider.cs → src/Main/Base/Project/Src/Gui/ContentInterfaces/IContextHelpProvider.cs

@ -7,7 +7,7 @@
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui
{ {
public interface IHelpProvider public interface IContextHelpProvider
{ {
void ShowHelp(); void ShowHelp();
} }

17
src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs

@ -21,7 +21,7 @@ using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Gui namespace ICSharpCode.SharpDevelop.Gui
{ {
public class PropertyPad : AbstractPadContent, IHelpProvider public class PropertyPad : AbstractPadContent, IContextHelpProvider
{ {
static PropertyPad instance; static PropertyPad instance;
@ -330,9 +330,18 @@ namespace ICSharpCode.SharpDevelop.Gui
#region ICSharpCode.SharpDevelop.Gui.IHelpProvider interface implementation #region ICSharpCode.SharpDevelop.Gui.IHelpProvider interface implementation
public void ShowHelp() public void ShowHelp()
{ {
if (host != null) { LoggingService.Info("Show help on property pad");
IHelpService helpService = (IHelpService)host.GetService(typeof(IHelpService)); GridItem gridItem = grid.SelectedGridItem;
helpService.ShowHelpFromKeyword(null); if (gridItem != null) {
Type component = gridItem.PropertyDescriptor.ComponentType;
if (component != null) {
ICSharpCode.SharpDevelop.Dom.IClass c = ProjectContentRegistry.WinForms.GetClass(component.FullName);
if (c != null) {
foreach (ICSharpCode.SharpDevelop.Dom.IProperty p in c.DefaultReturnType.GetProperties()) {
ICSharpCode.SharpDevelop.Dom.HelpProvider.ShowHelp(p);
}
}
}
} }
} }
#endregion #endregion

6
src/Main/Base/Project/Src/Services/File/FileService.cs

@ -103,14 +103,10 @@ namespace ICSharpCode.Core
foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
if (content.FileName != null) { if (content.FileName != null) {
try {
if (isURL ? content.FileName == fileName : FileUtility.IsEqualFileName(content.FileName, fileName)) { if (isURL ? content.FileName == fileName : FileUtility.IsEqualFileName(content.FileName, fileName)) {
content.WorkbenchWindow.SelectWindow(); content.WorkbenchWindow.SelectWindow();
return content.WorkbenchWindow; return content.WorkbenchWindow;
} }
} catch (Exception) {
// TODO: what kind of exception is ignored here?
}
} }
} }
@ -151,10 +147,12 @@ namespace ICSharpCode.Core
if (fileName != null && fileName.Length > 0) { if (fileName != null && fileName.Length > 0) {
foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
string contentName = content.IsUntitled ? content.UntitledName : content.FileName; string contentName = content.IsUntitled ? content.UntitledName : content.FileName;
if (contentName != null) {
if (FileUtility.IsEqualFileName(fileName, contentName)) if (FileUtility.IsEqualFileName(fileName, contentName))
return content.WorkbenchWindow; return content.WorkbenchWindow;
} }
} }
}
return null; return null;
} }

27
src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
} }
} }
public class TextEditorDisplayBindingWrapper : AbstractViewContent, IMementoCapable, IPrintable, IEditable, IUndoHandler, IPositionable, ITextEditorControlProvider, IParseInformationListener, IClipboardHandler, IHelpProvider public class TextEditorDisplayBindingWrapper : AbstractViewContent, IMementoCapable, IPrintable, IEditable, IUndoHandler, IPositionable, ITextEditorControlProvider, IParseInformationListener, IClipboardHandler, IContextHelpProvider
{ {
public SharpDevelopTextAreaControl textAreaControl = null; public SharpDevelopTextAreaControl textAreaControl = null;
@ -198,13 +198,30 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
} }
// KSL Start, new event handlers // KSL Start, new event handlers
#region ICSharpCode.SharpDevelop.Gui.IHelpProvider interface implementation
public void ShowHelp() public void ShowHelp()
{ {
throw new NotImplementedException(); // Resolve expression at cursor and show help
TextArea textArea = textAreaControl.ActiveTextAreaControl.TextArea;
IDocument doc = textArea.Document;
IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(textArea.MotherTextEditorControl.FileName);
if (expressionFinder == null)
return;
LineSegment seg = doc.GetLineSegment(textArea.Caret.Line);
string textContent = doc.TextContent;
ExpressionResult expressionResult = expressionFinder.FindFullExpression(textContent, seg.Offset + textArea.Caret.Column);
string expression = expressionResult.Expression;
if (expression != null && expression.Length > 0) {
ResolveResult result = ParserService.Resolve(expressionResult, textArea.Caret.Line + 1, textArea.Caret.Column + 1, textAreaControl.FileName, textContent);
TypeResolveResult trr = result as TypeResolveResult;
if (trr != null) {
ICSharpCode.SharpDevelop.Dom.HelpProvider.ShowHelp(trr.ResolvedClass);
}
MemberResolveResult mrr = result as MemberResolveResult;
if (mrr != null) {
ICSharpCode.SharpDevelop.Dom.HelpProvider.ShowHelp(mrr.ResolvedMember);
}
}
} }
#endregion
void SetWatcher() void SetWatcher()
{ {

Loading…
Cancel
Save