A language server for Minecraft: Java Edition datapacks
npm install @spgoding/datapack-language-server






Data-pack Language Server can provide many heavy language features for documents in your datapack, including advancements, dimensions, dimension types, functions, loot tables, predicates, recipes, all kinds of tags, and all kinds of worldgen files.
- Installation
- For Use
- Sublime Text 3
- Visual Studio Code
- For Developers
- Contributors
- Contributors for 3.1.0
- Contributors for older versions
- Contributing
1. Install Node.js if you haven't.
2. Execute npm i -g @spgoding/datapack-language-server in your command line to install the language server.
3. Install Package Control if you haven't.
4. Install Arcensoth's language-mcfunction package by following the instructions if you haven't.
5. Install LSP package.
6. Open the Command Palette and select Preferences: LSP Settings.
7. Configure LSP to add the Data-pack Language Server. Here's one example:
``json`
{
"clients": {
"datapack-language-server": {
"command": [
"datapack-language-server",
"--stdio"
],
"enabled": true,
"languages": [
{
"languageId": "mcfunction",
"scopes": [
"source.mcfunction"
],
"syntaxes": [
"Packages/language-mcfunction/mcfunction.tmLanguage"
]
},
{
"languageId": "json",
"scopes": [
"source.json"
],
"syntaxes": [
"Packages/JavaScript/JSON.sublime-syntax"
]
}
]
}
},
"only_show_lsp_completions": true
}LSP: Enable Language Server Globally
8. Open the Command Palette, select , and choose datapack-language-server.
9. Enjoy. Do note that you need to execute the command in step 2 manually if you want to update the language server.
- TODO (for SPGoding): make a fine-tuned Sublime package, so that the language server can be updated automatically and the user doesn't need to set all these crazy stuff.
We have a ready-for-use VS Code extension: 
See our wiki for more information.
Also please note that _only_ the DatapackLanguageService class and its methods are considered as public API. _All_ othernodes` directory, are not part
exported classes/functions/variables, including but not limited to _everything_ under the
of the public API and are subject to change breakingly in even patch/minor versions. _Do not_ make your systems depend on
them.
This project follows the all-contributors specification. Contributions of any kind are welcome!
If you'd like to contribute, check CONTRIBUTING.md for more information.