collect and show docs of defineables

This commit is contained in:
Laytan Laats
2024-06-07 14:48:11 +02:00
parent fa08690686
commit 315695b4f8
3 changed files with 45 additions and 32 deletions
+7 -1
View File
@@ -1759,6 +1759,7 @@ gb_internal bool check_builtin_procedure_directive(CheckerContext *c, Operand *o
// If the arg is a selector expression we don't add it, `-define` only allows identifiers.
if (arg->kind == Ast_Ident) {
Defineable defineable = {};
defineable.docs = nullptr;
defineable.name = arg->Ident.token.string;
defineable.default_value = exact_value_bool(false);
defineable.pos = arg->Ident.token.pos;
@@ -1769,7 +1770,7 @@ gb_internal bool check_builtin_procedure_directive(CheckerContext *c, Operand *o
} else if (name == "config") {
if (ce->args.count != 2) {
error(call, "'#config' expects 2 argument, got %td", ce->args.count);
error(call, "'#config' expects 2 arguments, got %td", ce->args.count);
return false;
}
Ast *arg = unparen_expr(ce->args[0]);
@@ -1806,10 +1807,15 @@ gb_internal bool check_builtin_procedure_directive(CheckerContext *c, Operand *o
}
Defineable defineable = {};
defineable.docs = nullptr;
defineable.name = name;
defineable.default_value = def.value;
defineable.pos = arg->Ident.token.pos;
if (c->decl) {
defineable.docs = c->decl->docs;
}
MUTEX_GUARD(&c->info->defineables_mutex);
array_add(&c->info->defineables, defineable);