46ac1ee031
Cuando una funcion del registry parte su .cpp en varios TUs por testabilidad o separacion ImGui-vs-puro, cada TU adicional se registra como entrada propia con su .md en lugar de extender file_path para listar varios archivos. Aplicado a: - graph_labels_select_cpp_viz: helpers puros (compute_degrees + labels_select). - graph_viewport_selection_cpp_viz: clear/add/toggle/is_selected puros. - graph_types_cpp_viz: TU de update_bounds + find_node_by_user_data. graph_labels y graph_viewport actualizados para declarar las nuevas entradas en uses_functions. Razon detallada en docs/adr/0003 + regla actualizada en .claude/rules/uses_functions.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 KiB
uses_functions
Cuando un .cpp llama a otra funcion del registry, el .md del CONSUMIDOR
debe anadir la dependencia a uses_functions. El indexer NO lo deduce
automaticamente para C++ (parser no trivial).
Como auditar (funciones huerfanas): sqlite3 registry.db "SELECT id FROM functions WHERE lang='cpp' AND uses_functions='[]';"
Como auditar (drift entre CMakeLists.txt y app.md):
- Cruzar los
${CMAKE_SOURCE_DIR}/functions/<dom>/<name>.cpplistados en elCMakeLists.txtcon eluses_functionsdelapp.md. Cada.cpplinkado debe aparecer como<name>_cpp_<dom>en el.md. Excepciones: ver mas abajo.
Convencion:
- Framework code (
cpp/framework/app_base.cpp) — no esta indexado. - Funciones bundled en
fn_framework— son funciones del registry cuyo.cppse compila dentro del static libfn_framework(lista encpp/CMakeLists.txt, targetadd_library(fn_framework STATIC ...)):tokens,icon_font,app_settings,app_about,fps_overlay,panel_menu,app_menubar,layouts_menu,logger,log_window,gl_loader,layout_storage,selectable_text. Las apps las usan transitivamente (incluyencore/logger.h, llamanfn_log::log_info), pero NO listan estos.cppen suCMakeLists.txt(multiple-definition) ni los declaran enuses_functionsdelapp.md. Excepcion: si una app toca una API que no este en fn_framework (raro), declara la dep. - TU adicional de un parent function (ej.
graph_labels_select.cppque va congraph_labels.cpp) — desde 2026-05-04 se registra como entrada propia con su.md(ver ADR 0003). El parent declara la nueva entrada en suuses_functions. Las apps que enlazan ambos.cpplistan ambas IDs enuses_functionsdelapp.md. - Apps (
apps/,cpp/apps/,projects/*/apps/) son leaves del grafo: declaranuses_functionsenapp.mdpero ninguna funcion del registry las cita. - DEMO_ONLY en
primitives_galleryse etiquetanotes: scaffolding/demo.