From 7f3795a231f96690a7668a61ce71420025306970 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 18 Jan 2023 16:17:02 +0000 Subject: Improve `odin doc` string printing (Fixes #2246) --- src/docs.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'src/docs.cpp') diff --git a/src/docs.cpp b/src/docs.cpp index 54bb0c7a2..f00d4e15a 100644 --- a/src/docs.cpp +++ b/src/docs.cpp @@ -49,10 +49,9 @@ gb_internal GB_COMPARE_PROC(cmp_entities_for_printing) { int ox = print_entity_kind_ordering[x->kind]; int oy = print_entity_kind_ordering[y->kind]; res = ox - oy; - if (res != 0) { - return res; + if (res == 0) { + res = string_compare(x->token.string, y->token.string); } - res = string_compare(x->token.string, y->token.string); return res; } @@ -230,23 +229,20 @@ gb_internal void print_doc_package(CheckerInfo *info, AstPackage *pkg) { // Fine break; } - array_add(&entities, e); - } - gb_sort_array(entities.data, entities.count, cmp_entities_for_printing); - - bool show_docs = (build_context.cmd_doc_flags & CmdDocFlag_Short) == 0; - - EntityKind curr_entity_kind = Entity_Invalid; - for_array(i, entities) { - Entity *e = entities[i]; if (e->pkg != pkg) { continue; } if (!is_entity_exported(e)) { continue; } + array_add(&entities, e); + } + gb_sort_array(entities.data, entities.count, cmp_entities_for_printing); + bool show_docs = (build_context.cmd_doc_flags & CmdDocFlag_Short) == 0; + EntityKind curr_entity_kind = Entity_Invalid; + for (Entity *e : entities) { if (curr_entity_kind != e->kind) { if (curr_entity_kind != Entity_Invalid) { print_doc_line(0, ""); @@ -287,7 +283,7 @@ gb_internal void print_doc_package(CheckerInfo *info, AstPackage *pkg) { print_doc_expr(init_expr); } - gb_printf(";\n"); + gb_printf("\n"); if (show_docs) { print_doc_comment_group_string(3, docs); -- cgit v1.2.3