private static void EditorBrowsableStateNever(SourceWriter source, int indentation) { source .Indent(indentation) .WriteLine("<System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)> _"); }
private static void EditorBrowsableStateNever(SourceWriter source, int indentation) { source .Indent(indentation) .WriteLine("[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]"); }
/// <summary> /// Generates the specified options. /// </summary> /// <param name="configOptions">The options.</param> /// <param name="types">The types.</param> public virtual void Generate(ConfigOptions configOptions, IEnumerable<Type> types) { Options = configOptions; _filename = (ProjectName + ".h").ToLower(); _defineFilename = _filename.Replace('.', '_').ToUpper(); using (_writer = new SourceWriter(Path.Combine(Path.GetFullPath(Options.CppOutputDir), _filename))) { IEnumerable<Type> functionTypes = types.Where(t => t.HasAttribute<CppFunctionAttribute>()); IEnumerable<Type> wrapperTypes = types.Where(t => t.HasAttribute<CppClassAttribute>(true)); IEnumerable<Type> enumerations = types.Where(t => t.IsEnum); IEnumerable<Type> valueObjects = types.Where(t => t.HasAttribute<CppValueObjectAttribute>() && t.IsValueType && !t.IsEnum); IEnumerable<Type> functionProviders = types.Where( t => t.HasAttribute<CppTypeAttribute>() && !t.HasAttribute<CppClassAttribute>(true) && t.IsInterface); IEnumerable<Type> converters = types.Where(t => t.HasAttribute<HandleConverterAttribute>()); WriteHeader(); _writer.WriteLine("extern \"C\""); _writer.WriteLine("{"); _writer.Indent(); WriteEnumerations(enumerations); WritePrototypes(valueObjects); //WriteWrapperDescriptorPrototypes(wrapperTypes); WriteFunctionHandlers(functionTypes); WriteTypeDefinitions(valueObjects); //WriteWrapperDescriptorDefinitions(wrapperTypes); _writer.WriteLine(); WriteFunctionProviders(functionProviders); WriteWrappersMethods(wrapperTypes.OrderBy(x => x.Name)); _writer.Deindent(); _writer.WriteLine("}"); _writer.WriteLine(); WriteInlineConvertersAndConverters(converters.Union(wrapperTypes).Distinct(), wrapperTypes); WriteFooter(); _writer.Close(); } }