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

Function find_extends_qn

internal/cbm/lsp/php_lsp.c:2430–2452  ·  view source on GitHub ↗

Find first base class (extends X) in a class_declaration, resolved. */

Source from the content-addressed store, hash-verified

2428
2429/* Find first base class (extends X) in a class_declaration, resolved. */
2430static const char *find_extends_qn(PHPLSPContext *ctx, TSNode class_node) {
2431 uint32_t nc = ts_node_child_count(class_node);
2432 for (uint32_t i = 0; i < nc; i++) {
2433 TSNode c = ts_node_child(class_node, i);
2434 if (ts_node_is_null(c) || !ts_node_is_named(c))
2435 continue;
2436 if (strcmp(ts_node_type(c), "base_clause") != 0)
2437 continue;
2438 uint32_t bnc = ts_node_child_count(c);
2439 for (uint32_t j = 0; j < bnc; j++) {
2440 TSNode bc = ts_node_child(c, j);
2441 if (ts_node_is_null(bc) || !ts_node_is_named(bc))
2442 continue;
2443 const char *bk = ts_node_type(bc);
2444 if (strcmp(bk, "name") == 0 || strcmp(bk, "qualified_name") == 0) {
2445 char *t = php_node_text(ctx, bc);
2446 if (t)
2447 return php_resolve_class_name(ctx, t);
2448 }
2449 }
2450 }
2451 return NULL;
2452}
2453
2454static void process_class_decl(PHPLSPContext *ctx, TSNode node) {
2455 TSNode name_node = ts_node_child_by_field_name(node, "name", 4);

Callers 1

process_class_declFunction · 0.85

Calls 2

php_node_textFunction · 0.85
php_resolve_class_nameFunction · 0.85

Tested by

no test coverage detected