diff --git a/README.md b/README.md index 07748861..623bbe7e 100644 --- a/README.md +++ b/README.md @@ -11,25 +11,54 @@ are highly likely to work on downstreams or closely related codebases. ## Installation -1. Clone the repository to your machine. -1. [Install Rust] or update your existing installation. -1. In your `SpacemanDMM` directory, run `cargo build -p cli`. - * `-p cli` is used to build only the command-line tools and not the editor, - which requires Qt. - * Add `--release` for a release build, with slightly more optimization flags - set. +Binary releases for Linux and Windows are available on the [releases] page, but +may not always be up to date. -[Install Rust]: https://www.rust-lang.org/en-US/install.html +To build locally, begin by [installing Rust][rust] or updating your existing +installation. SpacemanDMM is tested against stable Rust. + +For one-time installation, run `cargo install --git https://github.com/SpaceManiac/SpacemanDMM cli` +to install the `dmm-tools` binary to `~/.cargo/bin`. + +For development or easy installation of updates, clone this repository and run +`cargo build -p cli --release` to create `target/release/dmm-tools`. See the +[source readme] for a list of the available packages, or omit `--release` for a +debug build. + +[releases]: https://github.com/SpaceManiac/SpacemanDMM/releases +[rust]: https://www.rust-lang.org/en-US/install.html +[source readme]: ./src/README.md ## Usage -Executables are placed in `target/debug` or `target/release` depending on build +Executables are placed in `target/release` or `target/debug` depending on build type. The CLI binary is known as `dmm-tools`. For best results, run from the directory containing `tgstation.dme`. -Basic usage: `dmm-tools minimap -o dir/to/save/minimap path/to/map.dmm`. +Basic usage: `dmm-tools minimap _maps/map_files/BoxStation/BoxStation.dmm`. -More detailed usage instructions are available in the `--help` output. +By default, output is saved to `data/minimaps`, which can be changed with the +`-o` flag. The `-e` flag, specified before the subcommand, can be used to load +a different `.dme` file. More detailed usage information is available in the +`--help` output. + +Support is currently provided in /tg/station13's coderbus (ping `SpaceManiac`) +and on GitHub's issue tracker. Pull requests are welcome. + +## Language Server + +SpacemanDMM also provides a [language server] providing intelligence for the +DreamMaker language. A [Visual Studio Code plugin][vsc] is available, and will +install released language server binaries automatically. Details on available +features are listed in the language server's [package readme][ls-readme]. + +Use `cargo build -p dm-langserver` to build a local copy of the language server +for debugging or development purposes. The plugin can be configured to run a +locally built language server rather than the binary releases. + +[language server]: https://langserver.org/ +[vsc]: https://marketplace.visualstudio.com/items?itemName=platymuus.dm-langclient +[ls-readme]: ./src/langserver/README.md ## Recommendations diff --git a/src/langserver/README.md b/src/langserver/README.md index 79760d1d..abbb9733 100644 --- a/src/langserver/README.md +++ b/src/langserver/README.md @@ -8,6 +8,20 @@ scripting language of the [BYOND] game engine. [language server]: https://langserver.org/ [BYOND]: https://secure.byond.com/ +## Diagnostics + +* Preprocessor: + * Redefining a macro which is already defined. + * Undefining a macro which is not defined. + * Unterminated conditional blocks (`#if`/`#ifdef`). + * Using a define in a [buggy context][2072419]. +* Language: + * Incorrect or correct-but-strange syntax. + * Non-constant initial values for object variables. + * Integer constants which are outside of range. + +[2072419]: https://secure.byond.com/forum/?post=2072419 + ## Workspace symbol search * Searches macros, types, procs, and vars.