private static ILookupItem CreateMethodItem(CSharpCodeCompletionContext context, UnityMessage message, IClassLikeDeclaration declaration) { if (CSharpLanguage.Instance == null) { return(null); } var method = message.CreateDeclaration(CSharpElementFactory.GetInstance(declaration), declaration); if (method.DeclaredElement == null) { return(null); } var instance = new DeclaredElementInstance(method.DeclaredElement); var declaredElementInfo = new DeclaredElementInfo(method.DeclaredName, instance, CSharpLanguage.Instance, context.BasicContext.LookupItemsOwner, context, context.BasicContext); return(LookupItemFactory.CreateLookupItem(declaredElementInfo). WithPresentation( _ => new GenerateMemberPresentation(declaredElementInfo, PresenterStyles.DefaultPresenterStyle)). WithBehavior(_ => { var behavior = new UnityMessageBehavior(declaredElementInfo, message); behavior.InitializeRanges(context.CompletionRanges, context.BasicContext); return behavior; }). WithMatcher(_ => new DeclaredElementMatcher(declaredElementInfo, context.BasicContext.IdentifierMatchingStyle))); }