Files
codebase-memory-mcp/internal/cbm/lsp_all.c
Martin Vogel dcdf7a489a perf(extract): read each file's syntax through an index and share its parse within a worker
ts_node_parent and ts_node_child(n, i) walk from the root or the first child, so any pass over a flat file was quadratic in its top-level items: child steps grew 3.99x when flat.py doubled, 3.98x for flat.ts, 3.94x for flat.php. Passes now read a per-tree index built on first use, which answers exactly what tree-sitter answers, and every step count above grows 2.00x. The index is scoped over the whole of extraction. A worker keeps its parse of a file for the other passes over that file, so a file is no longer parsed once per pass. C#'s file-scoped namespace is looked for once per file instead of once per class, and the doc memo keeps a wide root cached.

No graph content changes.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-11-02 22:04:44 +01:00

33 lines
1.1 KiB
C

// lsp_all.c — Compilation unit for all LSP type resolver source files.
// CGo only compiles .c files in the package directory, not subdirectories.
// This file includes all LSP sources so they compile as part of the cbm package.
#include "resolve/syntax_index.h"
#include "lsp/type_rep.c"
#include "lsp/scope.c"
#include "lsp/type_registry.c"
#include "lsp/go_lsp.c"
#include "lsp/generated/go_stdlib_data.c"
#include "lsp/c_lsp.c"
#include "lsp/generated/c_stdlib_data.c"
#include "lsp/generated/cpp_stdlib_data.c"
#include "lsp/php_lsp.c"
#include "lsp/generated/php_stdlib_data.c"
#include "lsp/perl_lsp.c"
#include "lsp/generated/perl_stdlib_data.c"
#include "lsp/generated/python_stdlib_data.c"
#include "lsp/py_lsp.c"
#include "lsp/ts_lsp.c"
#include "lsp/cs_lsp.c"
#include "lsp/generated/cs_stdlib_data.c"
#include "lsp/java_lsp.c"
#include "lsp/generated/java_stdlib_data.c"
#include "lsp/generated/kotlin_stdlib_data.c"
#include "lsp/kotlin_lsp.c"
#include "lsp/generated/rust_stdlib_data.c"
#include "lsp/generated/rust_crates_seed.c"
#include "lsp/rust_cargo.c"
#include "lsp/rust_proc_macros.c"
#include "lsp/rust_rustdoc.c"
#include "lsp/rust_lsp.c"