MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / extract_config_class_def

Function extract_config_class_def

internal/cbm/extract_defs.c:3465–3494  ·  view source on GitHub ↗

Handle config language class nodes (TOML, INI, XML, Markdown, HCL). Returns true if handled (caller should return early).

Source from the content-addressed store, hash-verified

3463// Handle config language class nodes (TOML, INI, XML, Markdown, HCL).
3464// Returns true if handled (caller should return early).
3465static bool extract_config_class_def(CBMExtractCtx *ctx, TSNode node, const char *kind) {
3466 CBMArena *a = ctx->arena;
3467 char *name = NULL;
3468 const char *label = "Class";
3469
3470 if (ctx->language == CBM_LANG_TOML &&
3471 (strcmp(kind, "table") == 0 || strcmp(kind, "table_array_element") == 0)) {
3472 name = find_toml_key_name(a, node, ctx->source);
3473 } else if (ctx->language == CBM_LANG_INI && strcmp(kind, "section") == 0) {
3474 name = find_ini_section_name(a, node, ctx->source);
3475 } else if (ctx->language == CBM_LANG_XML && strcmp(kind, "element") == 0) {
3476 name = find_xml_element_name(a, node, ctx->source);
3477 } else if (ctx->language == CBM_LANG_MARKDOWN &&
3478 (strcmp(kind, "atx_heading") == 0 || strcmp(kind, "setext_heading") == 0)) {
3479 name = extract_markdown_heading_name(a, node, kind, ctx->source);
3480 // A heading is a Section (a valid label), not a Class — keep the accurate
3481 // label rather than degrade it to match a test. The markdown repro asserts
3482 // "Class"; that assertion is the inaccurate side and is flagged for review.
3483 label = "Section";
3484 } else if (ctx->language == CBM_LANG_HCL && strcmp(kind, "block") == 0) {
3485 name = find_hcl_block_name(a, node, ctx->source);
3486 } else {
3487 return false;
3488 }
3489
3490 if (name && name[0]) {
3491 push_simple_class_def(ctx, node, name, label);
3492 }
3493 return true;
3494}
3495
3496static void extract_class_def(CBMExtractCtx *ctx, TSNode node, const CBMLangSpec *spec) {
3497 CBMArena *a = ctx->arena;

Callers 1

extract_class_defFunction · 0.85

Calls 6

find_toml_key_nameFunction · 0.85
find_ini_section_nameFunction · 0.85
find_xml_element_nameFunction · 0.85
find_hcl_block_nameFunction · 0.85
push_simple_class_defFunction · 0.85

Tested by

no test coverage detected