Developer Guide
This guide is for developers who want to contribute to the BBj Language Server project or understand its internal architecture.
Project Overview
The BBj Language Server consists of three main components:
- VS Code Extension (
/bbj-vscode/) - TypeScript-based extension with Langium language server - Java Interop Service (
/java-interop/) - Java service for classpath introspection - Documentation (
/documentation/) - This Docusaurus site
Quick Links
Architecture
| Topic | Description |
|---|---|
| Overview | High-level architecture and component interaction |
| Language Server | Langium-based language server details |
| Java Integration | Java interop service and communication protocol |
Development
| Topic | Description |
|---|---|
| Building | Build instructions and development setup |
| Testing | Test framework and writing tests |
| Contributing | Contribution guidelines |
Technology Stack
TypeScript/Node.js
- Langium - Grammar-based language server framework
- Chevrotain - Parser building toolkit
- vscode-languageserver - LSP implementation
Java
- LSP4J - JSON-RPC communication
- Java Reflection - Runtime class introspection
- Gradle - Build automation
Repository Structure
bbj-language-server/
├── bbj-vscode/ # VS Code extension & language server
│ ├── src/language/ # Core language server
│ ├── src/Commands/ # VS Code commands
│ └── test/ # Test suite
├── java-interop/ # Java classpath service
│ └── src/main/java/ # Service implementation
├── documentation/ # This documentation
└── .github/workflows/ # CI/CD pipelines
Getting Started with Development
- Clone the repository
- Follow the Building Guide to set up your environment
- Read the Architecture Overview to understand the codebase
- Check out Contributing for guidelines
- Review the Roadmap to see planned work and contribution opportunities