Welcome to the Blockception Minecraft Bedrock Language Server monorepo! This repository contains all core packages, tools, and extensions for Minecraft Bedrock Edition development, including the language server, diagnostics, project helpers, and more.
- About
- Monorepo Structure
- Getting Started
- Development Workflow
- Contributing
- Code Style & Linting
- Testing
- Documentation
- FAQ
- License
This monorepo is the home for all Blockception Minecraft Bedrock development tools, including:
- Language Server: Provides rich language features for Bedrock scripting and project files.
- Diagnostics: Advanced error checking and validation for Bedrock projects.
- Project Utilities: Helpers for managing, building, and validating Bedrock projects.
- VSCode Extensions: Editor integration for a seamless development experience.
Our goal is to provide a unified, modern, and extensible toolkit for Minecraft Bedrock creators.
The repository is organized as a monorepo, containing multiple packages and tools:
/
βββ packages/ # Core packages (commands, diagnoser, types, etc.)
βββ ide/ # Editor integrations (VSCode, shared, base)
βββ documentation/ # Guides, API docs, and tutorials
βββ resources/ # Assets and shared resources
βββ coverage/ # Test coverage reports
βββ ... # Root configs, scripts, and meta files
Each package or tool is self-contained with its own package.json, source code, and tests.
- Node.js (v18+ recommended)
- npm (v8+)
- Git
git clone https://github.com/Blockception/minecraft-bedrock-language-server.git
cd minecraft-bedrock-language-serverInstall all dependencies for every package:
npm installCompile all TypeScript packages:
npm run buildTo verify everything is working:
npm test- All packages are managed together. Use root-level npm scripts to build, lint, and test all packages.
- Individual packages can be developed and tested in isolation (see their respective
README.mdfor details). - VSCode extension: Develop and debug from
ide/vscode.
npm run buildβ Build all packagesnpm run lintβ Lint all codenpm testβ Run all testsnpm run cleanβ Clean build artifacts
We welcome contributions! Please read our CONTRIBUTING.md and CODE_OF_CONDUCT.md before submitting issues or pull requests.
- Fork the repo and create your branch from
main. - Make your changes, following the code style and commit guidelines.
- Add or update tests as needed.
- Run
npm run lintandnpm testto ensure code quality. - Submit a pull request with a clear description.
- We use ESLint for code quality and style.
- Run
npm run lintbefore committing. - Follow the Style Guide for consistency.
- Each package contains its own tests (see
/testfolders). - Run all tests with
npm test. - Coverage reports are generated in
/coverage.
- See the documentation/ folder for guides, API docs, and tutorials.
- Key docs:
Q: Can I use a single package outside the monorepo?
A: Yes! Each package is published independently and can be used standalone.
Q: How do I add a new package?
A: Create a new folder in packages/, add a package.json, and follow the structure of existing packages.
Q: Who maintains this project?
A: Blockception and the open-source community. See CONTRIBUTING.md for details.
This project is licensed under the BSD 3-Clause License.
For any questions, suggestions, or support, please open an issue or join our community discussions!
Special thanks to these awesome people for helping out these projects π
Made with contrib.rocks.