Add more information to the README

This commit is contained in:
Tad Hardesty 2018-04-18 22:33:46 -07:00
parent 604975aa42
commit 52790ebbb9
2 changed files with 54 additions and 11 deletions

View file

@ -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

View file

@ -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.