void ShowDocs(string text, Node matched_node, string url) { foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { if (content.ContentName == GettextCatalog.GetString ("Documentation")) { ((HelpViewer)content).Render (text, matched_node, url); content.WorkbenchWindow.SelectWindow (); return; } } HelpViewer new_content = new HelpViewer (); new_content.Render (text, matched_node, url); WorkbenchSingleton.Workbench.ShowView (new_content, true); }
bool MonodocResolver() { TextIter insertIter = buf.GetIterAtMark (buf.InsertMark); TextIter triggerIter = TextIter.Zero; try { do { switch (insertIter.Char[0]) { case ' ': case '\t': case '\r': case '\n': case '.': case '(': case '[': triggerIter = insertIter; break; } if (!triggerIter.Equals (TextIter.Zero)) break; insertIter.ForwardChar (); } while (insertIter.LineOffset != 0); triggerIter.ForwardChar (); } catch { return false; } insertIter = triggerIter; string fileName = ParentEditor.DisplayBinding.ContentName; IExpressionFinder expressionFinder = GetParserContext ().GetExpressionFinder(fileName); string expression = expressionFinder == null ? TextUtilities.GetExpressionBeforeOffset(this, insertIter.Offset) : expressionFinder.FindExpression(buf.GetText(buf.StartIter, insertIter, true), insertIter.Offset - 2); if (expression == null) return false; Console.WriteLine ("Expression: {" + expression + "}"); string type = GetParserContext ().MonodocResolver (expression, insertIter.Line + 1, insertIter.LineOffset + 1, fileName, buf.Text); if (type == null || type.Length == 0) return false; foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { if (content.ContentName == GettextCatalog.GetString ("Documentation")) { ((HelpViewer)content).LoadUrl (type); content.WorkbenchWindow.SelectWindow (); return true; } } HelpViewer new_content = new HelpViewer (); new_content.LoadUrl (type); WorkbenchSingleton.Workbench.ShowView (new_content, true); return true; }