diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
index 3ba8928b1c..a935ffe58b 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
@@ -26,6 +26,7 @@ namespace HtmlHelp2
using ICSharpCode.TextEditor;
using HtmlHelp2.Environment;
using HtmlHelp2.ResourcesHelperClass;
+ using HtmlHelp2.SharpDevLanguageClass;
using MSHelpServices;
@@ -49,18 +50,12 @@ namespace HtmlHelp2
private StringCollection dynamicHelpTerms = new StringCollection();
private string debugPreElement = String.Empty;
private bool enableDebugInfo = true;
- private Dictionarylanguages = new Dictionary();
public override Control Control
{
get { return dynamicHelpBrowser; }
}
-// public override void Dispose()
-// {
-// dynamicHelpBrowser.Dispose();
-// }
-
public override void RedrawContent()
{
dynamicHelpBrowser.RedrawContent();
@@ -73,47 +68,38 @@ namespace HtmlHelp2
PropertyPad.SelectedObjectChanged += new EventHandler(this.FormsDesignerSelectedObjectChanged);
PropertyPad.SelectedGridItemChanged += new SelectedGridItemChangedEventHandler(this.FormsDesignerSelectedGridItemChanged);
ProjectService.SolutionClosed += new EventHandler(this.SolutionClosed);
-
- // I needed to patch SharpDevelop's current project language because
- // the .NET Framework SDK documents use other names
- languages.Add("C#", "CSharp");
- languages.Add("VBNet", "VB");
}
#region WebBrowser Scripting
- private void BuildDynamicHelpList(string expectedLanguage)
+ private void BuildDynamicHelpList()
{
if(this.dynamicHelpTerms.Count == 0) return;
this.RemoveAllChildren();
- this.debugPreElement = String.Empty;
+ this.debugPreElement = String.Empty;
+ bool helpResults = false;
- bool helpResults = false;
- string tempLanguage = String.Empty;
- if(!languages.ContainsKey(expectedLanguage) ||
- !languages.TryGetValue(expectedLanguage, out tempLanguage))
+ Cursor.Current = Cursors.WaitCursor;
+ foreach(string currentHelpTerm in this.dynamicHelpTerms)
{
- tempLanguage = expectedLanguage;
+ helpResults = (this.CallDynamicHelp(currentHelpTerm, false) || helpResults);
}
- Cursor.Current = Cursors.WaitCursor;
- foreach(string currentHelpTerm in dynamicHelpTerms)
+ if(!helpResults)
{
- if(!currentHelpTerm.StartsWith("!"))
+ foreach(string currentHelpTerm in this.dynamicHelpTerms)
{
- helpResults = (helpResults || this.CallDynamicHelp(currentHelpTerm, tempLanguage, false));
+ this.CallDynamicHelp(currentHelpTerm, true);
}
}
-
- // TODO: implement keyword search, if "helpResults" is FALSE
-
dynamicHelpBrowser.BuildDefaultHelpEntries();
- Cursor.Current = Cursors.Default;
+ Cursor.Current = Cursors.Default;
- this.debugPreElement += String.Format("
Current project language: {0}", tempLanguage);
+ this.debugPreElement += String.Format("
Current project language: {0}",
+ SharpDevLanguage.GetPatchedLanguage());
if(this.enableDebugInfo) dynamicHelpBrowser.CreateDebugPre(this.debugPreElement);
}
- private bool CallDynamicHelp(string searchTerm, string expectedLanguage, bool keywordSearch)
+ private bool CallDynamicHelp(string searchTerm, bool keywordSearch)
{
if(!HtmlHelp2Environment.IsReady || HtmlHelp2Environment.DynamicHelpIsBusy) return false;
bool result = false;
@@ -136,7 +122,7 @@ namespace HtmlHelp2
List newTopics = this.SortTopics(topics);
foreach(IHxTopic topic in newTopics)
{
- if(expectedLanguage == String.Empty || topic.HasAttribute("DevLang", expectedLanguage))
+ if(SharpDevLanguage.CheckTopicLanguage(topic))
{
this.BuildNewChild(topic.Location,
topic.get_Title(HxTopicGetTitleType.HxTopicGetTOCTitle,
@@ -194,9 +180,7 @@ namespace HtmlHelp2
this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName);
}
- WorkbenchSingleton.SafeThreadAsyncCall(this,
- "BuildDynamicHelpList",
- ProjectService.CurrentProject.Language);
+ WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList");
}
private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e)
@@ -236,22 +220,24 @@ namespace HtmlHelp2
private void CallDynamicHelpForFormsDesigner(object selectedObject, GridItem selectedItem)
{
- if(selectedObject == null) return;
- this.dynamicHelpTerms.Clear();
-
- Type myObject = selectedObject.GetType();
- if(selectedItem != null)
+ try
{
- foreach(Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label))
+ if(selectedObject == null) return;
+ this.dynamicHelpTerms.Clear();
+
+ Type myObject = selectedObject.GetType();
+ if(selectedItem != null)
{
- this.AddToStringCollection(String.Format("{0}.{1}", type.FullName, selectedItem.Label));
+ foreach(Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label))
+ {
+ this.AddToStringCollection(String.Format("{0}.{1}", type.FullName, selectedItem.Label));
+ }
}
- }
- this.AddToStringCollection(myObject.FullName);
+ this.AddToStringCollection(myObject.FullName);
- WorkbenchSingleton.SafeThreadAsyncCall(this,
- "BuildDynamicHelpList",
- ProjectService.CurrentProject.Language);
+ WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList");
+ }
+ catch {}
}
#endregion
@@ -635,7 +621,7 @@ namespace HtmlHelp2
string sectionName = sectionNode.Attributes.GetNamedItem("name").InnerText;
string url = urlNode.InnerText;
string id = urlNode.Attributes.GetNamedItem("name").InnerText;
- this.BuildNewChild(sectionName, id, url);
+ this.BuildNewChild(StringParser.Parse(sectionName), id, url);
}
}
}
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
index 2939b50939..71770a4821 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
@@ -13,6 +13,7 @@ namespace HtmlHelp2
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
+ using ICSharpCode.SharpDevelop.Project;
using HtmlHelp2.Environment;
using HtmlHelp2.HelperDialog;
using MSHelpServices;
@@ -268,7 +269,7 @@ namespace HtmlHelp2
matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord);
else
matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags);
-
+
Cursor.Current = Cursors.Default;
searchDialog.Dispose();
@@ -285,26 +286,10 @@ namespace HtmlHelp2
lvi.Tag = topic;
lvi.SubItems.Add(topic.Location);
lvi.SubItems.Add(topic.Rank.ToString());
+
searchResults.SearchResultsListView.Items.Add(lvi);
}
-// for(int i = 1; i <= matchingTopics.Count; i++)
-// {
-// IHxTopic topic = matchingTopics.ItemAt(i);
-//
-// if(topic != null)
-// {
-// ListViewItem lvi = new ListViewItem();
-// lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
-// HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
-// lvi.SubItems.Add(topic.Location);
-// lvi.SubItems.Add(topic.Rank.ToString());
-// lvi.Tag = topic;
-//
-// searchResults.SearchResultsListView.Items.Add(lvi);
-// }
-// }
-
reuseMatches.Enabled = true;
}
finally
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/Service/SharpDevLanguageClass.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/Service/SharpDevLanguageClass.cs
new file mode 100644
index 0000000000..de92f95d71
--- /dev/null
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/Service/SharpDevLanguageClass.cs
@@ -0,0 +1,71 @@
+/* ***********************************************************
+ *
+ * Help 2.0 Environment for SharpDevelop
+ * ProjectLanguage Class
+ * Copyright (c) 2005, Mathias Simmack. All rights reserved.
+ *
+ * ********************************************************* */
+namespace HtmlHelp2.SharpDevLanguageClass
+{
+ using System;
+ using System.Collections.Generic;
+ using ICSharpCode.SharpDevelop.Project;
+ using MSHelpServices;
+
+ public sealed class SharpDevLanguage
+ {
+ private static Dictionarylanguages = new Dictionary();
+
+ static SharpDevLanguage()
+ {
+ languages.Add("C#", "CSharp");
+ languages.Add("VBNet", "VB");
+ }
+
+ SharpDevLanguage()
+ {
+ }
+
+ public static bool CheckTopicLanguage(IHxTopic topic)
+ {
+ return CheckTopicLanguage(topic, ProjectService.CurrentProject.Language);
+ }
+
+ public static bool CheckTopicLanguage(IHxTopic topic, string expectedLanguage)
+ {
+ if(expectedLanguage == String.Empty) { return true; }
+ if(topic == null) { return false; }
+
+ string tempLanguage = String.Empty;
+ if(!languages.ContainsKey(expectedLanguage) ||
+ !languages.TryGetValue(expectedLanguage, out tempLanguage))
+ {
+ tempLanguage = expectedLanguage;
+ }
+
+ return (tempLanguage == String.Empty || topic.HasAttribute("DevLang", tempLanguage));
+ }
+
+ public static string GetPatchedLanguage()
+ {
+ return GetPatchedLanguage(ProjectService.CurrentProject.Language);
+ }
+
+ public static string GetPatchedLanguage(string expectedLanguage)
+ {
+ string tempLanguage = expectedLanguage;
+
+ if(tempLanguage != String.Empty)
+ {
+ if(!languages.ContainsKey(expectedLanguage) ||
+ !languages.TryGetValue(expectedLanguage, out tempLanguage))
+ {
+ tempLanguage = expectedLanguage;
+ }
+ }
+
+ return tempLanguage;
+ }
+ }
+}
+