public SuggestItem( string text, Func <string> htmlDescriptionProvider, SuggestItemType type, Func <string> autoCompletePreText = null, Func <string> autoCompletePostText = null, Func <string> autoCompleteDescriptionText = null, string[] autoCompleteAccessModifiers = null, string[] autoCompleteFieldModifiers = null, MethodArgument[] arguments = null, Action <IAutoCompleteCodeEditor> commitAction = null, SuggestItemPriority priority = SuggestItemPriority.Normal) { this.Text = text; this.HtmlDescriptionProvider = htmlDescriptionProvider; this.Type = type; this.AutoCompletePreText = autoCompletePreText; this.AutoCompletePostText = autoCompletePostText; this.AutoCompleteDescriptionText = autoCompleteDescriptionText; this.AutoCompleteAccessModifiers = autoCompleteAccessModifiers; this.AutoCompleteFieldModifiers = autoCompleteFieldModifiers; this.AutoCompleteMethodArguments = arguments; this.CommitAction = commitAction; this.Priority = priority; }
public static SuggestItem Suggest(SuggestItemType type, object docObject, string name, Func <string> pretext = null, Func <string> posttext = null, Action <IAutoCompleteCodeEditor> commitAction = null, SuggestItemPriority priority = SuggestItemPriority.Normal) { return(new SuggestItem( name, () => (DocumentationHinter.CreateHtmlHint(docObject, null, new List <string>()) ?? ""), type, pretext, posttext, null, null, null, null, commitAction, priority)); }
void Suggest( SuggestItemType type, object docObject, string suggestionText, Func <string> pretext = null, Func <string> posttext = null, Func <string> desctext = null, string[] accessModifiers = null, string[] fieldModifiers = null, MethodArgument[] arguments = null, Action <IAutoCompleteCodeEditor> commitAction = null, SuggestItemPriority priority = SuggestItemPriority.Normal, bool omitDuplicates = true) { if (omitDuplicates && _suggestionNames.Contains(suggestionText)) { return; } if (suggestionText.StartsWith(".")) { return; } if (type == SuggestItemType.Class && _context.expectsConstructor) { type = SuggestItemType.Constructor; var dt = (DataType)docObject; foreach (var ctor in dt.Constructors) { desctext = () => ""; var args = new List <MethodArgument>(); for (var i = 0; i < ctor.Parameters.Length; i++) { var arg = ctor.Parameters[i]; args.Add(new MethodArgument(arg.Name, arg.Type.Name, arg.Modifier == ParameterModifier.Out)); } arguments = args.ToArray(); //This repetition is pretty ugly.. Oh well var item = new SuggestItem( suggestionText, () => (DocumentationHinter.CreateHtmlHint(docObject, _context.Compiler, _context.Usings) ?? ""), type, pretext, posttext, desctext, accessModifiers, fieldModifiers, arguments, commitAction, priority); _suggestions.Add(item); } } else { if (desctext == null) { desctext = () => "" + type; } _suggestions.Add( new SuggestItem( suggestionText, () => (DocumentationHinter.CreateHtmlHint(docObject, _context.Compiler, _context.Usings) ?? ""), type, pretext, posttext, desctext, accessModifiers, fieldModifiers, arguments, commitAction, priority) ); } if (omitDuplicates) { _suggestionNames.Add(suggestionText); } }