public EnvDTE.CodeFunction AddFunction(string name, EnvDTE.vsCMFunction kind, object type, object position, EnvDTE.vsCMAccess access, object location) { return(FileCodeModel.EnsureEditor(() => { return FileCodeModel.AddFunction(LookupNode(), name, kind, type, position, access); })); }
public EnvDTE.CodeFunction AddFunction( string name, EnvDTE.vsCMFunction kind, object type, object position, EnvDTE.vsCMAccess access ) => throw Exceptions.ThrowEFail();
public EnvDTE.CodeFunction AddFunction( string name, object location, EnvDTE.vsCMFunction kind, object type, object position, EnvDTE.vsCMAccess access ) => GetFileCodeModel(location).Object.AddFunction(name, kind, type, position, access);
internal EnvDTE.CodeFunction AddFunction(SyntaxNode containerNode, string name, EnvDTE.vsCMFunction kind, object type, object position, EnvDTE.vsCMAccess access) { kind = CodeModelService.ValidateFunctionKind(containerNode, kind, name); SyntaxNode newMember; if (kind == EnvDTE.vsCMFunction.vsCMFunctionSub || kind == EnvDTE.vsCMFunction.vsCMFunctionFunction) { var containerNodePosition = containerNode.SpanStart; var semanticModel = GetSemanticModel(); var returnType = kind == EnvDTE.vsCMFunction.vsCMFunctionFunction ? CodeModelService.GetTypeSymbol(type, semanticModel, containerNodePosition) : semanticModel.Compilation.GetSpecialType(SpecialType.System_Void); newMember = CreateMethodDeclaration(containerNode, CodeModelService.GetUnescapedName(name), access, returnType); } else if (kind == EnvDTE.vsCMFunction.vsCMFunctionConstructor) { newMember = CreateConstructorDeclaration(containerNode, CodeModelService.GetUnescapedName(name), access); } else { newMember = CreateDestructorDeclaration(containerNode, CodeModelService.GetUnescapedName(name)); } var insertionIndex = CodeModelService.PositionVariantToMemberInsertionIndex(position, containerNode, fileCodeModel: this); newMember = InsertMember(containerNode, newMember, insertionIndex); return((EnvDTE.CodeFunction)CreateInternalCodeMember(this.State, fileCodeModel: this, node: newMember)); }
internal EnvDTE.CodeFunction AddFunction(SyntaxNode containerNode, string name, EnvDTE.vsCMFunction kind, object type, object position, EnvDTE.vsCMAccess access) { kind = CodeModelService.ValidateFunctionKind(containerNode, kind, name); SyntaxNode newMember; if (kind is EnvDTE.vsCMFunction.vsCMFunctionSub or EnvDTE.vsCMFunction.vsCMFunctionFunction) { var containerNodePosition = containerNode.SpanStart; var semanticModel = GetSemanticModel(); var returnType = kind == EnvDTE.vsCMFunction.vsCMFunctionFunction ? CodeModelService.GetTypeSymbol(type, semanticModel, containerNodePosition) : semanticModel.Compilation.GetSpecialType(SpecialType.System_Void); newMember = CreateMethodDeclaration(containerNode, CodeModelService.GetUnescapedName(name), access, returnType); }