AL Call Hierarchy
MaintainedA Rust-based LSP server providing sub-millisecond call hierarchy queries for AL (Business Central) projects, powered by tree-sitter
A call hierarchy server for AL built in Rust on top of tree-sitter. Pre-computes a full call graph at startup using parallel indexing across all CPU cores: under 500ms for 100 files, under 2 seconds for 1000 files. Queries (prepareCallHierarchy, incomingCalls, outgoingCalls) return in under a millisecond. File change updates take under 50ms.
Resolves local procedures, qualified calls (Object.Method), partial record methods, event subscriber bindings, and external dependencies from .app packages by reading SymbolReference.json inside the NAVX header + ZIP archive format.
Includes Code Lens with reference counts above procedure definitions and diagnostics for unused procedures. Runs as an LSP server (stdio) or as a CLI tool for batch analysis. Used as the call hierarchy backend for the AL Language Server for Claude Code.