SpacemanDMM Versions Save

A BYOND language smartness provider, map renderer, and more.

suite-1.1

4 years ago

Bugfix and maintenance release.

DM Language

DM language updates apply to all components.

  • Add known values to built-in /atom variables (by SpaiR, #89).
  • Properly handle #includeing a secondary .dme file.
  • Attempt to parse strings as UTF-8 before falling back to Latin-1 (preparation for BYOND 513).
  • Entirely skip constant evaluation on a fatal parser error, to make fatal parser errors easier to spot (#110).
  • Fix ## token-pasting operator not handling integer right-hand arguments (#109).
  • Fix /list, /savefile, /client, and /world inheriting from /datum (#98).

Language Server v1.1.0

  • Include var and proc documentation in completion results.
  • Remove some unnecessary debug logging.
  • Fix a crash when adding /* comments in the global scope (#105).
  • Fix proc header hover information repeating the proc name twice.
  • Mark language server diagnostics as originating from "dm-langserver", to differentiate them from DM errors.

dmdoc v1.1.0

  • Add a basic dark theme (by PJB, #102).
  • Add command-line options:
    • -e <filename> to specify environment to parse.
    • --output <dirname> to specify output directory (default is dmdoc).
    • --modules <dirname> to specify directory to scan for Markdown files (default is code).
  • Fix /*! comments including the ! in the output (#90).

DreamChecker v1.1.0

  • Add -e <filename> command-line option to specify environment to parse.
  • Handle set SpacemanDMM_should_call_parent = TRUE and FALSE properly, rather than 1 and 0 only (#106).

DMM-Tools v1.0.1

  • No specific changes.

suite-1.0

4 years ago

This is the 1.0 release of the SpacemanDMM tooling suite for DreamMaker codebases, consisting of:

  • dreamchecker 1.0.0, a static analysis tool suitable for CI use.
  • dmdoc 1.0.0, an HTML documentation generator.
  • dmm-tools 1.0.0, a map renderer.
  • dm-langserver 1.0.0, a language smartness provider.

See the README for more information.

Attached binaries are for x86-64 Windows (.exe) and x86-64 Linux (no extension). Linux binaries are statically-linked using musl.

cli-v0.1.1

6 years ago

Additions

  • When a .dme file is not specified, an attempt is made to autodetect one.
  • The __FILE__ and __LINE__ macros are now expanded.
  • #if and #elif directives are now actually evaluated.
  • The defined() form is now recognized in preprocessor conditionals.
  • The parent_type var is now handled properly.
  • The ^ and ** operators are now evaluated in constants.
  • Built-in vars for /image are now recognized.
  • Buggy uses of macros in embedded expressions are now linted against.

Tweaks

  • The lodepng library is now used to read .dmi files in one pass, improving speed.
  • Map read errors now include semi-accurate line numbers rather than no line numbers.
  • If parsing aborts, only the first "undefined var" error is shown.

Fixes

  • Atoms which have been pixel-shifted entirely offscreen no longer crash.
  • Numbers of the from 2e6-1 are no longer misinterpreted.
  • The default values of layer for each atom type are now recognized.
  • Invalid values for layer no longer crash.
  • Indented #include directives no longer indent the first line of the file they include.
  • Chaining multiple #else or #elif in a row no longer activates more than one.

cli-v0.1.0

6 years ago

First binary release of the dmm-tools CLI, providing BYOND map rendering and analysis tools powered by SpacemanDMM.

Subcommands:

  • diff-maps <left> <right>: List the differing coordinates between two maps.
  • lint-maps [-n] [--reformat] <maps...>: Lint and automatically fix the specified maps.
  • list-passes [-j]: Show information about the render-pass list.
  • map-info [-j] <files...>: Show metadata information about the map.
  • minimap: Build minimaps of the specified maps.
    • [--disable pass-1,pass-2,...] [--enable pass-1,pass-2,...]: Disable or enable render-passes.
    • [--max x,y[,z]] [--min x,y[,z]]: Set the bounding cuboid to act upon.
    • [--optipng] [--pngcrush]: Run output through a PNG optimizer automatically.
    • [-o output]: Set the output directory.
    • <files...>

Default render passes:

  • hide-space: Do not render space tiles, instead leaving transparency.
  • hide-areas: Do not render area icons.
  • hide-invisible: Do not render invisible or ephemeral objects such as mapping helpers.
  • random: Replace random spawners with one of their possibilities.
  • pretty: Add the minor cosmetic overlays for various objects.
  • spawners: Replace object spawners with their spawned objects.
  • fake-glass: Add underlays to fake glass turfs.
  • transit-tube: Add overlays to connect transit tubes together.
  • gravity-gen: Expand the gravity generator to the full structure.

Additional render passes:

  • only-powernet: Render only power cables.
  • only-pipenet: Render only atmospherics pipes.