Skip to main content

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:

  1. VS Code Extension (/bbj-vscode/) - TypeScript-based extension with Langium language server
  2. Java Interop Service (/java-interop/) - Java service for classpath introspection
  3. Documentation (/documentation/) - This Docusaurus site

Architecture

TopicDescription
OverviewHigh-level architecture and component interaction
Language ServerLangium-based language server details
Java IntegrationJava interop service and communication protocol

Development

TopicDescription
BuildingBuild instructions and development setup
TestingTest framework and writing tests
ContributingContribution guidelines

Technology Stack

TypeScript/Node.js

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

  1. Clone the repository
  2. Follow the Building Guide to set up your environment
  3. Read the Architecture Overview to understand the codebase
  4. Check out Contributing for guidelines
  5. Review the Roadmap to see planned work and contribution opportunities