Пример #1
0
 public IParameterDataProvider CreateDelegateDataProvider(ICSharpCode.NRefactory.TypeSystem.IType type)
 {
     return(new Provider()
     {
         Data = new [] { type.GetDelegateInvokeMethod() }
     });
 }
Пример #2
0
 public IParameterDataProvider CreateConstructorProvider(ICSharpCode.NRefactory.TypeSystem.IType type)
 {
     return(new Provider()
     {
         Data = type.GetConstructors(m => m.Accessibility == Accessibility.Public)
     });
 }
Пример #3
0
 public ICompletionData CreateEventCreationCompletionData(string varName, ICSharpCode.NRefactory.TypeSystem.IType delegateType, ICSharpCode.NRefactory.TypeSystem.IEvent evt, string parameterDefinition, ICSharpCode.NRefactory.TypeSystem.IUnresolvedMember currentMember, ICSharpCode.NRefactory.TypeSystem.IUnresolvedTypeDefinition currentType)
 {
     return(new CompletionData(varName)
     {
         DeclarationType = DeclarationType.Event
     });
 }
Пример #4
0
 public IParameterDataProvider CreateConstructorProvider(int startOffset, ICSharpCode.NRefactory.TypeSystem.IType type, AstNode skipNode)
 {
     Assert.IsTrue(type.Kind != TypeKind.Unknown);
     return(new Provider()
     {
         Data = type.GetConstructors(m => m.Accessibility == Accessibility.Public)
     });
 }
        public ICompletionData CreateTypeCompletionData(ICSharpCode.NRefactory.TypeSystem.IType type, bool fullName, bool isInAttributeContext)
        {
            string name = fullName ? builder.ConvertType(type).GetText() : type.Name;

            if (isInAttributeContext && name.EndsWith("Attribute") && name.Length > "Attribute".Length)
            {
                name = name.Substring(0, name.Length - "Attribute".Length);
            }
            return(new CompletionData(name));
        }
Пример #6
0
        public virtual string GetCustomTypeName(ICSharpCode.NRefactory.TypeSystem.IType type)
        {
            var attrs = type.GetDefinition().Attributes;

            string name     = null;
            var    nameAttr = this.GetAttribute(attrs, Translator.Bridge_ASSEMBLY + ".NameAttribute");

            if (nameAttr != null)
            {
                name = (string)nameAttr.PositionalArguments[0].ConstantValue;
            }

            if (!string.IsNullOrEmpty(name))
            {
                return(name);
            }

            var nsAtrr = this.GetAttribute(attrs, Translator.Bridge_ASSEMBLY + ".NamespaceAttribute");

            if (nsAtrr != null && nsAtrr.PositionalArguments.Count > 0)
            {
                var arg = nsAtrr.PositionalArguments[0];
                name = Helpers.ReplaceSpecialChars(type.Name);

                if (arg.ConstantValue is bool && !((bool)arg.ConstantValue))
                {
                    return(name);
                }

                if (arg.ConstantValue is string)
                {
                    string ns = arg.ConstantValue.ToString();

                    return((!string.IsNullOrWhiteSpace(ns) ? (ns + ".") : "") + name);
                }
            }

            if (this.HasAttribute(attrs, Translator.Bridge_ASSEMBLY + ".ObjectLiteralAttribute"))
            {
                return("Object");
            }

            return(null);
        }
        public static string ToTooltip(this ICSharpCode.NRefactory.TypeSystem.IType entity, bool full, bool isInstantiation = false)
        {
            try
            {
                var builder = new StringBuilder();
                if (isInstantiation)
                    builder.Append("Constructor");
                else
                    builder.Append("Type");
                builder.Append(": ");
                builder.Append(entity.FullName);

                return builder.ToString();
            }
            catch
            {
                return null;
            }
        }
Пример #8
0
 public override AstType CreateShortType(ICSharpCode.NRefactory.TypeSystem.IType fullType)
 {
     throw new NotImplementedException();
 }
Пример #9
0
        static void AddImplementation(RefactoringContext context, TypeDeclaration result, ICSharpCode.NRefactory.TypeSystem.IType guessedType)
        {
            foreach (var property in guessedType.GetProperties())
            {
                if (!property.IsAbstract)
                {
                    continue;
                }
                if (property.IsIndexer)
                {
                    var indexerDecl = new IndexerDeclaration()
                    {
                        ReturnType = context.CreateShortType(property.ReturnType),
                        Modifiers  = GetModifiers(property),
                        Name       = property.Name
                    };
                    indexerDecl.Parameters.AddRange(ConvertParameters(context, property.Parameters));
                    if (property.CanGet)
                    {
                        indexerDecl.Getter = new Accessor();
                    }
                    if (property.CanSet)
                    {
                        indexerDecl.Setter = new Accessor();
                    }
                    result.AddChild(indexerDecl, Roles.TypeMemberRole);
                    continue;
                }
                var propDecl = new PropertyDeclaration()
                {
                    ReturnType = context.CreateShortType(property.ReturnType),
                    Modifiers  = GetModifiers(property),
                    Name       = property.Name
                };
                if (property.CanGet)
                {
                    propDecl.Getter = new Accessor();
                }
                if (property.CanSet)
                {
                    propDecl.Setter = new Accessor();
                }
                result.AddChild(propDecl, Roles.TypeMemberRole);
            }

            foreach (var method in guessedType.GetMethods())
            {
                if (!method.IsAbstract)
                {
                    continue;
                }
                var decl = new MethodDeclaration()
                {
                    ReturnType = context.CreateShortType(method.ReturnType),
                    Modifiers  = GetModifiers(method),
                    Name       = method.Name,
                    Body       = new BlockStatement()
                    {
                        new ThrowStatement(new ObjectCreateExpression(context.CreateShortType("System", "NotImplementedException")))
                    }
                };
                decl.Parameters.AddRange(ConvertParameters(context, method.Parameters));
                result.AddChild(decl, Roles.TypeMemberRole);
            }

            foreach (var evt in guessedType.GetEvents())
            {
                if (!evt.IsAbstract)
                {
                    continue;
                }
                var decl = new EventDeclaration()
                {
                    ReturnType = context.CreateShortType(evt.ReturnType),
                    Modifiers  = GetModifiers(evt),
                    Name       = evt.Name
                };
                result.AddChild(decl, Roles.TypeMemberRole);
            }
        }
Пример #10
0
 public IParameterDataProvider CreateDelegateDataProvider(int startOffset, ICSharpCode.NRefactory.TypeSystem.IType type)
 {
     Assert.IsTrue(type.Kind != TypeKind.Unknown);
     return(new Provider()
     {
         Data = new [] { type.GetDelegateInvokeMethod() }
     });
 }