Correct odin doc comment printing

This commit is contained in:
gingerBill
2022-01-17 14:43:42 +00:00
parent cd6898439e
commit 686dbb4421
2 changed files with 25 additions and 8 deletions
+22 -6
View File
@@ -67,6 +67,14 @@ GB_COMPARE_PROC(cmp_ast_package_by_name) {
#include "docs_format.cpp" #include "docs_format.cpp"
#include "docs_writer.cpp" #include "docs_writer.cpp"
void print_doc_line(i32 indent, String const &data) {
while (indent --> 0) {
gb_printf("\t");
}
gb_file_write(gb_file_get_standard(gbFileStandard_Output), data.text, data.len);
gb_printf("\n");
}
void print_doc_line(i32 indent, char const *fmt, ...) { void print_doc_line(i32 indent, char const *fmt, ...) {
while (indent --> 0) { while (indent --> 0) {
gb_printf("\t"); gb_printf("\t");
@@ -86,6 +94,13 @@ void print_doc_line_no_newline(i32 indent, char const *fmt, ...) {
gb_printf_va(fmt, va); gb_printf_va(fmt, va);
va_end(va); va_end(va);
} }
void print_doc_line_no_newline(i32 indent, String const &data) {
while (indent --> 0) {
gb_printf("\t");
}
gb_file_write(gb_file_get_standard(gbFileStandard_Output), data.text, data.len);
}
bool print_doc_comment_group_string(i32 indent, CommentGroup *g) { bool print_doc_comment_group_string(i32 indent, CommentGroup *g) {
if (g == nullptr) { if (g == nullptr) {
@@ -106,8 +121,9 @@ bool print_doc_comment_group_string(i32 indent, CommentGroup *g) {
String comment = g->list[i].string; String comment = g->list[i].string;
String original_comment = comment; String original_comment = comment;
bool slash_slash = comment[1] == '/'; bool slash_slash = false;
if (comment[1] == '/') { if (comment[1] == '/') {
slash_slash = true;
comment.text += 2; comment.text += 2;
comment.len -= 2; comment.len -= 2;
} else if (comment[1] == '*') { } else if (comment[1] == '*') {
@@ -131,7 +147,7 @@ bool print_doc_comment_group_string(i32 indent, CommentGroup *g) {
} }
if (slash_slash) { if (slash_slash) {
print_doc_line(indent, "%.*s", LIT(comment)); print_doc_line(indent, comment);
count += 1; count += 1;
} else { } else {
isize pos = 0; isize pos = 0;
@@ -143,7 +159,7 @@ bool print_doc_comment_group_string(i32 indent, CommentGroup *g) {
} }
} }
String line = substring(comment, pos, end); String line = substring(comment, pos, end);
pos = end+1; pos = end;
String trimmed_line = string_trim_whitespace(line); String trimmed_line = string_trim_whitespace(line);
if (trimmed_line.len == 0) { if (trimmed_line.len == 0) {
if (count == 0) { if (count == 0) {
@@ -159,7 +175,7 @@ bool print_doc_comment_group_string(i32 indent, CommentGroup *g) {
line = substring(line, 2, line.len); line = substring(line, 2, line.len);
} }
print_doc_line(indent, "%.*s", LIT(line)); print_doc_line(indent, line);
count += 1; count += 1;
} }
} }
@@ -263,7 +279,7 @@ void print_doc_package(CheckerInfo *info, AstPackage *pkg) {
} }
GB_ASSERT(type_expr != nullptr || init_expr != nullptr); GB_ASSERT(type_expr != nullptr || init_expr != nullptr);
print_doc_line_no_newline(2, "%.*s", LIT(e->token.string)); print_doc_line_no_newline(2, e->token.string);
if (type_expr != nullptr) { if (type_expr != nullptr) {
gbString t = expr_to_string(type_expr); gbString t = expr_to_string(type_expr);
gb_printf(": %s ", t); gb_printf(": %s ", t);
@@ -298,7 +314,7 @@ void print_doc_package(CheckerInfo *info, AstPackage *pkg) {
for_array(i, pkg->files) { for_array(i, pkg->files) {
AstFile *f = pkg->files[i]; AstFile *f = pkg->files[i];
String filename = remove_directory_from_path(f->fullpath); String filename = remove_directory_from_path(f->fullpath);
print_doc_line(2, "%.*s", LIT(filename)); print_doc_line(2, filename);
} }
} }
+3 -2
View File
@@ -292,8 +292,9 @@ bool odin_doc_append_comment_group_string(Array<u8> *buf, CommentGroup *g) {
String comment = g->list[i].string; String comment = g->list[i].string;
String original_comment = comment; String original_comment = comment;
bool slash_slash = comment[1] == '/'; bool slash_slash = false;
if (comment[1] == '/') { if (comment[1] == '/') {
slash_slash = true;
comment.text += 2; comment.text += 2;
comment.len -= 2; comment.len -= 2;
} else if (comment[1] == '*') { } else if (comment[1] == '*') {
@@ -330,7 +331,7 @@ bool odin_doc_append_comment_group_string(Array<u8> *buf, CommentGroup *g) {
} }
} }
String line = substring(comment, pos, end); String line = substring(comment, pos, end);
pos = end+1; pos = end;
String trimmed_line = string_trim_whitespace(line); String trimmed_line = string_trim_whitespace(line);
if (trimmed_line.len == 0) { if (trimmed_line.len == 0) {
if (count == 0) { if (count == 0) {