Dwarf Fortress RAW language server

Discord

Clients/Extensions:
VSCode extension (Windows and Linux supported)

Language server (shared between clients):
pipeline status coverage report

Dwarf Fortress RAW language server is an application that allows Dwarf Fortress RAW files to be checked for correctness. This allows modders of the game (Dwarf Fortress) to detect problems in there mod files.

This repo is work in progress and might not work in some cases.

Supported DF Versions

This version of DF Language Server is compatible with DF Version: 0.47.05 (2021/01/28)
We also support the previous 2 versions of DF*: (Going forward)

*: Previous versions are supported as closely as possible, in case of big breaking changes we might break partial or full support of previous versions if not feasible.

We are currently in the following pre release stage: Release Candidate.
Latest version: 0.3.0-rc.1 (2022-11-12)

As soon as the Steam and Itch.io versions are out we will start working on supporting those versions. Check our Discord for the current state. All help is welcome!

What can it do?

Syntax Highlighting and Error reporting:
general

View more Features and Screenshots

  1. It reads a DF Raw file and add Syntax Highlighting:
    syntax_highlighting

  2. And works correctly with your theme:
    syntax<em>highlighting syntax</em>highlighting

  3. It checks if all the tokens are correct and have the correct arguments:
    wrong<em>arg</em>type

    wrong<em>enum</em>value

    wrong<em>arg</em>number<em>to</em>many

  4. It warns you of about best practices:
    warnings

And much more to come!

Future plans

We have many things we still want to add. If you want to see what we have planned check out our Roadmap. But adding these features might take some time. So all help is welcome!

Supported Editors and IDEs

We are currently only supporting VS Code. But the language server is able to work on other Editors and IDEs.

| IDE | Status & Download | | -------------------------------------------------------- | ----------------- | | VS Code | ✅ Download| | Visual Studio | ❌ | | Atom | 🛠 | | Sublime Text | ❌ | | Eclipse | ❌ | | Vim/NeoVim | ❌ | | Emacs | 🛠 | | Notepad++ | ⛔ | | ... others ... | ❌ |

If you have questions or suggestions about supported IDEs, contact us though Discord.

Contribute

If you want to contribute, join our Discord. We are always looking for more people to help us develop, test, research, ... You don't need to be a programmer or know about modding in DF to help us out.

There are a few good places to start: - Look at the open beginner issues or research needed issues - Check the #syntax-room[1-2] channel for any questions that we might have in there. - Ask in #development channel what we need help with, we would love to see you join! - Just test the application and report bugs, through Discord or GitLab.

Development

You can find a full development guide on this page: Developement.md

License

The code in this project is licensed under the MIT or Apache 2.0 license.

All documentation[^1] is licensed under GNU FDL, MIT license and/or Creative Commons Attribution-ShareAlike 3.0 Unported license

This makes the documentation both compatible with the Dwarf Fortress Wiki and Wikipedia.

All contributions, code and documentation, to this project will be similarly licensed.