private bool AreTypesEquivalent(Type unmatchedType, TypeReference actiproType) { IDomType domType = actiproType.Resolve(this.codeProject.ProjectResolver); if (!unmatchedType.IsGenericType) { return(actiproType.GenericTypeArguments.Count == 0 && domType != null && unmatchedType.FullName == domType.FullName); } string b = TypeNameFormatter.FormatGenericTypeName(unmatchedType, true); if (!string.Equals(domType != null ? domType.FullName.Substring(0, domType.FullName.IndexOf('`')) : (string)null, b, StringComparison.Ordinal)) { return(false); } List <TypeReference> list1 = Enumerable.ToList <TypeReference>(Enumerable.OfType <TypeReference>((IEnumerable)actiproType.GenericTypeArguments)); List <Type> list2 = new List <Type>((IEnumerable <Type>)unmatchedType.GetGenericArguments()); if (list1.Count != list2.Count) { return(false); } for (int index = 0; index < list2.Count; ++index) { if (!this.AreTypesEquivalent(list2[index], list1[index])) { return(false); } } return(true); }
public InsertEventHandlerEventArgs(Type returnType, string methodName, IEnumerable <IParameterDeclaration> parameters, string eventHandlerDeclaration, IDomType domType) { this.ReturnType = returnType; this.MethodName = methodName; this.Parameters = parameters; this.EventHandlerDeclaration = eventHandlerDeclaration; this.DomType = domType; }
public bool AddMethod(Type returnType, string methodName, IEnumerable <IParameterDeclaration> parameters) { CodeView codeView = this.projectItem.OpenView(true) as CodeView; if (codeView != null) { IDomType domType = this.InitializeDomType(); if (domType != null && codeView.CreateMethod(domType, returnType, methodName, parameters)) { return(true); } } return(false); }
private IDomType InitializeDomType() { this.projectItem.OpenDocument(false); CSharpExtendedSyntaxLanguage.ForceSynchronousReparse(((CodeDocument)this.projectItem.Document).Document); MSBuildBasedProject buildBasedProject = this.projectItem.Project as MSBuildBasedProject; string str = (string)null; if (buildBasedProject != null && buildBasedProject.HasProperty("RootNamespace")) { str = buildBasedProject.GetEvaluatedPropertyValue("RootNamespace"); } IDomType type = this.codeProject.ProjectResolver.SourceProjectContent.GetType((IDomType[])null, this.typeName, DomBindingFlags.AllAccessTypes); if (type == null && !string.IsNullOrEmpty(str) && this.typeName.StartsWith(str + ".", StringComparison.Ordinal)) { type = this.codeProject.ProjectResolver.SourceProjectContent.GetType((IDomType[])null, this.typeName.Substring(str.Length + 1), DomBindingFlags.AllAccessTypes); } return(type); }
internal bool CreateMethod(IDomType domType, Type returnType, string methodName, IEnumerable <IParameterDeclaration> parameters, CodeDocument.CaretPositionChanger UpdateCaretPosition) { int num = -1; string str1 = string.Empty; string str2 = string.Empty; string indent = string.Empty; foreach (IDomMember domMember in domType.GetMembers()) { IAstNode astNode1 = domMember as IAstNode; if (domMember.Name == methodName) { MethodDeclaration method = domMember as MethodDeclaration; if (method != null) { List <IParameterDeclaration> list = new List <IParameterDeclaration>(parameters); if (list.Count == method.Parameters.Count) { foreach (IAstNode astNode2 in (IEnumerable)method.Parameters) { ActiproSoftware.SyntaxEditor.Addons.DotNet.Ast.ParameterDeclaration parameter = astNode2 as ActiproSoftware.SyntaxEditor.Addons.DotNet.Ast.ParameterDeclaration; if (parameter != null) { for (int index = 0; index < list.Count; ++index) { if (this.AreParameterSignaturesEquivalent(parameter, list[index])) { list.RemoveAt(index); break; } } } } if (list.Count == 0 && (method.ReturnType != null ? this.AreTypesEquivalent(returnType, method.ReturnType) : returnType.FullName.Equals("System.Void", StringComparison.OrdinalIgnoreCase))) { int offset = astNode1 != null?this.FindMethodBodyIndex(method) : -1; return(UpdateCaretPosition(offset)); } } } } if (astNode1 != null && this.IsAstNodeValid(astNode1) && astNode1.EndOffset > num) { num = astNode1.EndOffset; indent = this.GetLeadingWhitespaceForLine(astNode1.StartOffset); str1 = "\r\n\r\n"; } } if (num == -1) { foreach (IDomType domType1 in (IEnumerable)this.codeProject.ProjectResolver.SourceProjectContent.GetTypesForSourceKey(this.filename, false)) { if (string.Equals(domType1.FullName, domType.FullName, StringComparison.Ordinal)) { domType = domType1; break; } } IAstNode astNode = domType as IAstNode; if (astNode != null && this.IsAstNodeValid(astNode)) { num = Math.Max(0, astNode.EndOffset - this.codeDocumentType.ClassEndToken.Length); string whitespaceForLine = this.GetLeadingWhitespaceForLine(num); str2 = "\r\n" + whitespaceForLine; indent = whitespaceForLine + "\t"; str1 = "\r\n"; } } if (num == -1) { return(false); } int bodyInsertionOffset; string text = str1 + this.codeDocumentType.CreateMethod(indent, returnType, methodName, parameters, out bodyInsertionOffset) + str2; this.document.InsertText(DocumentModificationType.AutoFormat, num, text); return(UpdateCaretPosition(num + bodyInsertionOffset)); }
public bool CreateMethod(IDomType domType, Type returnType, string methodName, IEnumerable <IParameterDeclaration> parameters) { return(this.codeDocument.CreateMethod(domType, returnType, methodName, parameters, new CodeDocument.CaretPositionChanger(this.ChangeCaretPosition))); }
/// <summary> /// Provides the core functionality to show an IntelliPrompt member list based on the current context in a <see cref="SyntaxEditor"/>. /// </summary> /// <param name="language">The <see cref="DotNetLanguage"/> to use for quick info formatting.</param> /// <param name="syntaxEditor">The <see cref="SyntaxEditor"/> that will display the IntelliPrompt member list.</param> /// <param name="completeWord">Whether to complete the word.</param> /// <returns> /// <c>true</c> if an auto-complete occurred or if a IntelliPrompt member list is displayed; otherwise, <c>false</c>. /// </returns> internal bool ShowIntelliPromptMemberList(DotNetLanguage language, SyntaxEditor syntaxEditor, SyntaxEditor toEditor, bool completeWord, string parameterName) { // Try and ensure the compilation unit is up-to-date SemanticParserService.WaitForParse(SemanticParserServiceRequest.GetParseHashKey(syntaxEditor.Document, syntaxEditor.Document)); // Get the context //DotNetContext context = this.GetContext(syntaxEditor, syntaxEditor.Caret.Offset, true, false); DotNetContext context = this.GetContext(syntaxEditor, syntaxEditor.Document.GetText(LineTerminator.Newline).Length - 1, true, false); // Initialize the member list IntelliPromptMemberList memberList = toEditor.IntelliPrompt.MemberList;// syntaxEditor.IntelliPrompt.MemberList; memberList.ResetAllowedCharacters(); memberList.Clear(); memberList.ImageList = SyntaxEditor.ReflectionImageList; memberList.Context = context; // GFH if (completeWord && context.InitializationTextRange.StartOffset >= 0) { string partialWord = syntaxEditor.Document.GetText(LineTerminator.Newline).Substring(context.InitializationTextRange.StartOffset, context.InitializationTextRange.Length); if (parameterName.StartsWith(partialWord)) { memberList.Add(new IntelliPromptMemberListItem(parameterName, (int)ActiproSoftware.Products.SyntaxEditor.IconResource.PrivateProperty)); } } // Get the member list items Hashtable memberListItemHashtable = new Hashtable(); switch (context.Type) { case DotNetContextType.AnyCode: // Fill with everything if (context.ProjectResolver != null) { // Fill with child namespace names in the global and imported namespaces //context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, null); //foreach (string namespaceName in context.ImportedNamespaces) // context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, namespaceName); //// Fill with the types in the global and imported namespaces //context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, null, DomBindingFlags.Default, true); //foreach (string namespaceName in context.ImportedNamespaces) // context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, namespaceName, DomBindingFlags.Default, true); // Fill with static members of parent types if ((context.TypeDeclarationNode != null) && (context.TypeDeclarationNode.DeclaringType is IDomType)) { context.ProjectResolver.AddMemberListItemsForDeclaringTypeMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TypeDeclarationNode.DeclaringType, DomBindingFlags.Static | DomBindingFlags.AllAccessTypes); } // Fill with nested types if (context.TypeDeclarationNode != null) { context.ProjectResolver.AddMemberListItemsForNestedTypes(memberListItemHashtable, context.TypeDeclarationNode, context.TypeDeclarationNode, DomBindingFlags.Default, true); } // Fill with members if in a member (pay attention to if member is instance or static) if (context.TypeDeclarationNode != null) { if (context.MemberDeclarationNode != null) { if (!((IDomMember)context.MemberDeclarationNode).IsStatic) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, context.TypeDeclarationNode, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } // Fill with members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, context.TypeDeclarationNode, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Static | (((IDomMember)context.MemberDeclarationNode).IsStatic ? DomBindingFlags.None : DomBindingFlags.Instance) | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } else { // Not within a member so fill with static members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, context.TypeDeclarationNode, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Static | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } } // Fill with variables defined in the scope context.ProjectResolver.AddMemberListItemsForVariables(memberListItemHashtable, context); // Fill with language keywords //this.AddKeywordMemberListItems(memberListItemHashtable); // Fill with code snippets if (this.CodeSnippetsEnabled) { context.ProjectResolver.AddMemberListItemsForCodeSnippets(memberListItemHashtable); } } break; case DotNetContextType.BaseAccess: // If the context is in an instance member declaration... if ((context.ProjectResolver != null) && (context.MemberDeclarationNode != null) && (!((IDomMember)context.MemberDeclarationNode).IsStatic)) { if (context.TargetItem.Type == DotNetContextItemType.Base) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.Public | DomBindingFlags.Family | DomBindingFlags.Assembly); // Fill with instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.Public | DomBindingFlags.Family | DomBindingFlags.Assembly); } } break; case DotNetContextType.DocumentationCommentTag: // Add tags if (context.ProjectResolver != null) { context.ProjectResolver.AddMemberListItemsForDocumentationComments(memberListItemHashtable, context, (syntaxEditor.Caret.Offset > 0) && (syntaxEditor.Document[syntaxEditor.Caret.Offset - 1] != '<')); } break; case DotNetContextType.AsType: case DotNetContextType.IsTypeOfType: case DotNetContextType.TryCastType: case DotNetContextType.TypeOfType: if (context.ProjectResolver != null) { if (context.TargetItem != null) { switch (context.TargetItem.Type) { case DotNetContextItemType.Namespace: case DotNetContextItemType.NamespaceAlias: // Fill with child namespaces and types context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, context.TargetItem.ResolvedInfo.ToString()); context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, context.TargetItem.ResolvedInfo.ToString(), DomBindingFlags.Default, false); break; case DotNetContextItemType.Type: // Fill with nested types context.ProjectResolver.AddMemberListItemsForNestedTypes(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Default, false); break; } } else { // VB requires New added for As specifications if ((context.Type == DotNetContextType.AsType) && (language == DotNetLanguage.VB)) { memberListItemHashtable["New"] = new IntelliPromptMemberListItem("New", (int)ActiproSoftware.Products.SyntaxEditor.IconResource.Keyword); } // Fill with native types context.ProjectResolver.AddMemberListItemsForNativeTypes(language, memberListItemHashtable, context); // Fill with child namespace names in the global and imported namespaces context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, null); foreach (string namespaceName in context.ImportedNamespaces) { context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, namespaceName); } // Fill with the types in the imported namespaces context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, null, DomBindingFlags.Default, false); foreach (string namespaceName in context.ImportedNamespaces) { context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, namespaceName, DomBindingFlags.Default, false); } // Fill with nested types if (context.TypeDeclarationNode != null) { context.ProjectResolver.AddMemberListItemsForNestedTypes(memberListItemHashtable, context.TypeDeclarationNode, context.TypeDeclarationNode, DomBindingFlags.Default, true); } } } break; case DotNetContextType.NamespaceTypeOrMember: if (context.ProjectResolver != null) { switch (context.TargetItem.Type) { case DotNetContextItemType.Namespace: case DotNetContextItemType.NamespaceAlias: // Fill with child namespaces and types context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, context.TargetItem.ResolvedInfo.ToString()); context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, context.TargetItem.ResolvedInfo.ToString(), DomBindingFlags.Default, false); break; case DotNetContextItemType.Constant: case DotNetContextItemType.Type: // Add nested types if (context.TargetItem.ResolvedInfo is IDomType) { // Fill with nested types context.ProjectResolver.AddMemberListItemsForNestedTypes(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Default, false); } // If the context is in a type declaration... if (context.TypeDeclarationNode != null) { // Fill with static type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Static | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } break; case DotNetContextItemType.Member: // If the context is in a type declaration... if (context.TypeDeclarationNode != null) { // Fill with instance type members of member return type IDomType type = context.ProjectResolver.ConstructAndResolveContextItemMemberReturnType(context, context.Items.Length - 1); if (type != null) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, type, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); // Fill with instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, type, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } } break; case DotNetContextItemType.ArrayItem: case DotNetContextItemType.Parameter: case DotNetContextItemType.Variable: // If the context is in a member declaration... if (context.MemberDeclarationNode != null) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); // Fill with instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } break; } } break; case DotNetContextType.NativeType: // If the context is in a member declaration... if ((context.ProjectResolver != null) && (context.TypeDeclarationNode != null)) { if (context.TargetItem.Type == DotNetContextItemType.Type) { // Fill with static type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Static | context.AdditionalBindingFlags | DomBindingFlags.Public); } } break; case DotNetContextType.NewObjectDeclaration: if ((context.ProjectResolver != null) && (context.TypeDeclarationNode != null)) { if (context.TargetItem == null) { // Fill with child namespace names in the global and imported namespaces context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, null); foreach (string namespaceName in context.ImportedNamespaces) { context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, namespaceName); } // Fill with the creatable types in the global and imported namespaces context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, null, DomBindingFlags.Default | DomBindingFlags.HasConstructor, false); foreach (string namespaceName in context.ImportedNamespaces) { context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, namespaceName, DomBindingFlags.Default | DomBindingFlags.HasConstructor, false); } // Fill with the creatable nested types context.ProjectResolver.AddMemberListItemsForNestedTypes(memberListItemHashtable, context.TypeDeclarationNode, context.TypeDeclarationNode, DomBindingFlags.Default | DomBindingFlags.HasConstructor, true); } else { switch (context.TargetItem.Type) { case DotNetContextItemType.Namespace: case DotNetContextItemType.NamespaceAlias: // Fill with child namespaces and creatable types context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, context.TargetItem.ResolvedInfo.ToString()); context.ProjectResolver.AddMemberListItemsForTypes(memberListItemHashtable, context.TypeDeclarationNode, context.TargetItem.ResolvedInfo.ToString(), DomBindingFlags.Default | DomBindingFlags.HasConstructor, false); break; case DotNetContextItemType.Type: // Fill with the creatable nested types context.ProjectResolver.AddMemberListItemsForNestedTypes(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Default | DomBindingFlags.HasConstructor, false); // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); // Fill with instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); break; } } } break; case DotNetContextType.ThisAccess: // If the context is in an instance member declaration... if ((context.ProjectResolver != null) && (context.MemberDeclarationNode != null) && (!((IDomMember)context.MemberDeclarationNode).IsStatic)) { if (context.TargetItem.Type == DotNetContextItemType.This) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); // Fill with instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } } break; case DotNetContextType.BaseMemberAccess: case DotNetContextType.ThisMemberAccess: // If the context is in an instance member declaration... if ((context.ProjectResolver != null) && (context.MemberDeclarationNode != null) && (!((IDomMember)context.MemberDeclarationNode).IsStatic)) { // Fill with instance type members of member return type IDomType type = null; if (context.TargetItem.ResolvedInfo is IDomType) { type = (IDomType)context.TargetItem.ResolvedInfo; } else { type = context.ProjectResolver.ConstructAndResolveContextItemMemberReturnType(context, context.Items.Length - 1); } if (type != null) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, type, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); // Fill with instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, type, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.AllAccessTypes); } } break; case DotNetContextType.StringLiteral: // If the context is in a member declaration... if (context.ProjectResolver != null) { if (context.TargetItem.Type == DotNetContextItemType.StringLiteral) { // Fill with extension methods context.ProjectResolver.AddMemberListItemsForExtensionMethods(memberListItemHashtable, context, (IDomType)context.TargetItem.ResolvedInfo, DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.Public); // Fill with string instance type members context.ProjectResolver.AddMemberListItemsForMembers(memberListItemHashtable, context.TypeDeclarationNode, (IDomType)context.TargetItem.ResolvedInfo, (this.LanguageType == DotNetLanguage.CSharp ? DomBindingFlags.ExcludeIndexers : DomBindingFlags.None) | DomBindingFlags.Instance | context.AdditionalBindingFlags | DomBindingFlags.Public); } } break; case DotNetContextType.UsingDeclaration: // Fill with namespaces if (context.ProjectResolver != null) { context.ProjectResolver.AddMemberListItemsForChildNamespaces(memberListItemHashtable, (context.TargetItem != null ? context.TargetItem.ResolvedInfo.ToString() : String.Empty)); } break; } // Pre-filter the member list this.OnSyntaxEditorIntelliPromptMemberListPreFilter(syntaxEditor, new IntelliPromptMemberListPreFilterEventArgs(syntaxEditor, context, memberListItemHashtable)); // Add items if (memberListItemHashtable.Count > 0) { IntelliPromptMemberListItem[] items = new IntelliPromptMemberListItem[memberListItemHashtable.Count]; memberListItemHashtable.Values.CopyTo(items, 0); memberList.AddRange(items); } // Show the list if (memberList.Count > 0) { if (context.InitializationTextRange.IsDeleted) { memberList.Show(); } else if (completeWord) { memberList.CompleteWord(toEditor.Caret.Offset - context.InitializationTextRange.Length, context.InitializationTextRange.Length); //memberList.CompleteWord(context.InitializationTextRange.StartOffset, context.InitializationTextRange.Length); } else { memberList.Show(toEditor.Caret.Offset, context.InitializationTextRange.Length); //memberList.Show(context.InitializationTextRange.StartOffset, context.InitializationTextRange.Length); } return(true); } else if (memberList.Visible) { memberList.Abort(); } return(false); }