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-server
Install all dependencies for every package:
npm install
Compile all TypeScript packages:
npm run build
To 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.md
for 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 lint
andnpm test
to ensure code quality. - Submit a pull request with a clear description.
- We use ESLint for code quality and style.
- Run
npm run lint
before committing. - Follow the Style Guide for consistency.
- Each package contains its own tests (see
/test
folders). - 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 😄