-
Notifications
You must be signed in to change notification settings - Fork 3k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: colbymchenry/codegraph
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Could not load branches
Nothing to show
Loading
...
head repository: malou996/codegraph
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Could not load branches
Nothing to show
Loading
- 7 commits
- 15 files changed
- 1 contributor
Commits on Jun 12, 2026
-
feat: add Erlang language support (
.erl,.hrl)Wire the WhatsApp tree-sitter-erlang grammar into the extraction pipeline with a custom visitNode extractor that handles Erlang's fun_decl/function_clause AST structure. Extracts modules, functions, records, type/opaque declarations, macros, imports/includes, exports, and call edges. Benchmarked on poolboy, cowboy, and EMQX — codegraph reduces file reads to zero across all three.
leihua committedJun 12, 2026 -
feat(erlang): resolve remote calls across module boundaries
Erlang remote calls like `gen_server:call(...)` now emit qualified `module:function` references that resolve to functions in the target module file. On cowboy, this creates 793 cross-file call edges where previously all calls were file-local. - extractCall: detect `call` nodes inside `remote` parents and emit `module:function` as the callee name - import-resolver: add resolveErlangRemoteCall() that matches the module prefix to the target .erl file stem - test: verify gen_server:start_link, gen_server:call, my_db:lookup are extracted as qualified references
leihua committedJun 12, 2026 -
feat(erlang): resolve -behaviour() declarations as implements edges
Erlang -behaviour(gen_server). now creates module→behaviour implements edges instead of import nodes. For in-project behaviours, the edge resolves to the actual module; for OTP stdlib behaviours, the reference stays unresolved rather than mis-connecting to a same-named field. On cowboy, this produces 27 correct implements edges (e.g. cowboy_router → cowboy_middleware). A callback synthesizer bridges behaviour function dispatch for in-project behaviours. - erlang.ts: behaviour_attribute emits implements unresolved reference - import-resolver: resolveErlangBehaviourImplements matches module nodes - index.ts: skip name-matcher for Erlang implements (wrong edge > missing) - callback-synthesizer: erlangBehaviourEdges bridges dispatch + adds erlang to IFACE_OVERRIDE_LANGS
leihua committedJun 12, 2026 -
feat(erlang): index OTP .app.src application metadata
Parse .app.src / .app files as Erlang, extracting the application name as a module node and the applications list as import nodes for inter-app dependency tracking.
leihua committedJun 12, 2026 -
feat(erlang): resolve .hrl include imports to header files
Connect -include/-include_lib directives to their target .hrl files via file→file imports edges. Resolves same-directory includes first, then falls back to project-wide search.
leihua committedJun 12, 2026
Commits on Jun 13, 2026
-
fix(erlang): handle module:function syntax in callers/callees/impact ...
...queries The pre-filter, symbol lookup, and CLI commands all handled '.', '::', and '/' separators but missed Erlang's single-colon 'module:function' syntax. This caused 'mdb:dirty_insert' references to be dropped before the Erlang remote call resolver could match them, and made callers/ callees/impact return empty results when queried with the qualified name.
leihua committedJun 13, 2026 -
Merge remote-tracking branch 'upstream/main'
leihua committedJun 13, 2026
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...main