package odin_format import "core:odin/printer" import "core:odin/parser" import "core:odin/ast" default_style := printer.default_style simplify :: proc(file: ^ast.File) { } format :: proc(filepath: string, source: string, config: printer.Config, parser_flags := parser.Flags{}, allocator := context.allocator) -> (string, bool) { config := config pkg := ast.Package { kind = .Normal, } file := ast.File { pkg = &pkg, src = source, fullpath = filepath, } config.newline_limit = clamp(config.newline_limit, 0, 16) config.spaces = clamp(config.spaces, 1, 16) config.align_length_break = clamp(config.align_length_break, 0, 64) p := parser.default_parser(parser_flags) ok := parser.parse_file(&p, &file) if !ok || file.syntax_error_count > 0 { return {}, false } prnt := printer.make_printer(config, allocator) return printer.print(&prnt, &file), true }