- Category
- Developer Tools
- Rank
- No. 1710Tools index
Previous survey · No. 1717 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- badlogic
- GitHub
- 31 stars
- Date
About
Extract symbol information from codebases using the Language Server Protocol, from any language.
What it does
It launches the appropriate language server, scans a configured project, and writes a searchable JSON inventory of symbols. Records can include source ranges, declaration previews, documentation, nested members, generic parameters, supertypes, and some C or C++ definition links.
Why it's ranked here
The broad language set, structured output, automatic server setup, and programmatic exports make it useful for code indexing and navigation scripts. Confidence drops because the documented output contract disagrees with the implementation, and installation depends on substantial external toolchains.
What's good
The output preserves hierarchy instead of flattening every method and field. Source ranges and previews support direct navigation, while optional documentation and inheritance data add context. Fixture tests exercise several languages, server installation, symbol shapes, and practical JSON queries.
Tradeoffs
Each language needs its own compiler or SDK, and accurate results depend on proper project configuration. Initial use may download archives, install packages, or build a server from source. The documented language field differs from the field actually written, while tests expect the documented form.
How to use it well
Use it when an engineer, script, or LLM workflow needs a reusable codebase map for navigation, API inspection, or JSON queries. Run it against well-configured projects with the required toolchain already installed. It does not replace compilation, editing, refactoring, or general static analysis.
Technical notes+
package.json defines a Node package with both CLI and library surfaces, builds TypeScript with tsc, and bundles the command with esbuild for Node 18. src/lib.ts exports LanguageClient, Logger, ServerManager, shared types, and utilities. src/index.ts validates arguments, checks toolchains and project files, ensures a server, analyzes the directory, and writes an LspCliResult using the key lang. README.md documents language instead, while test/utils.ts models language and test/fixtures.test.ts asserts it, exposing a contract mismatch. src/language-client.ts spawns servers over stdio JSON-RPC, requests hierarchical document symbols per file, and applies a ten-second request timeout. src/server-manager.ts installs servers under the user home directory. vitest.config.ts serializes tests to avoid server conflicts.
Observed
- Primary language
- TypeScript
- Packaging
- npm package with TypeScript declarations and a prepublish build
- Interfaces
- Command-line executable and programmatic library exports
- Supported languages
- Java, C++, C, C#, Haxe, TypeScript, and Dart
- Runtime target
- Node.js 18 build target
- Testing
- Vitest suites cover fixtures, server installation, and JSON query workflows
- Platform handling
- Server setup contains branches for macOS, Linux, and Windows
Read from README.md, package.json, src/lib.ts, src/index.ts, src/types.ts, src/utils.ts, src/logger.ts, src/server-manager.ts, src/language-client.ts, vitest.config.ts, test/setup.ts, test/utils.ts, test/lsp-cli.test.ts, test/fixtures.test.ts, test/jq-examples.test.ts.
What it can do
Extract function definitions from source code
Source code files in any programming language → Function symbol information with locations and signatures
Extract class definitions from source code
Source code files in any programming language → Class symbol information with locations and members
Extract variable declarations from source code
Source code files in any programming language → Variable symbol information with types and locations
Find symbol references across codebase
Source code files and target symbol name → List of locations where symbol is referenced
Extract interface definitions from source code
Source code files in any programming language → Interface symbol information with method signatures
Generate symbol hierarchy for codebase
Source code files in any programming language → Structured symbol tree with nested relationships
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
