public IParameterDataProvider CreateDelegateDataProvider(ICSharpCode.NRefactory.TypeSystem.IType type) { return(new Provider() { Data = new [] { type.GetDelegateInvokeMethod() } }); }
public IParameterDataProvider CreateConstructorProvider(ICSharpCode.NRefactory.TypeSystem.IType type) { return(new Provider() { Data = type.GetConstructors(m => m.Accessibility == Accessibility.Public) }); }
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 }); }
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)); }
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; } }
public override AstType CreateShortType(ICSharpCode.NRefactory.TypeSystem.IType fullType) { throw new NotImplementedException(); }
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); } }
public IParameterDataProvider CreateDelegateDataProvider(int startOffset, ICSharpCode.NRefactory.TypeSystem.IType type) { Assert.IsTrue(type.Kind != TypeKind.Unknown); return(new Provider() { Data = new [] { type.GetDelegateInvokeMethod() } }); }