Skip to content

Releases: SpaceManiac/SpacemanDMM

SpacemanDMM suite v1.2

14 Jan 03:09
suite-1.2
Compare
Choose a tag to compare

Highlights of this release are BYOND 513 builtins, a debugger, a faster map rendering backend, and many dreamchecker additions by spookydonut.

DM Language

DM language updates apply to all components.

  • Fix #include resolution priority when there are multiple candidates (#111).
  • Fix duplicate proc entries for New, Del, and Topic on some types.
  • Add BYOND 513 builtins (by spookydonut, #116).
    • Add /sound/var/len (by yoyobatty, #140).
  • Add constant evaluation for trig functions (#134).
  • Add extra help for indentation-related got '{' errors (#117).

Language Server v1.2.0

  • Add helper routines for "build & run" in the Visual Studio Code extension.
  • Add debug adapter support for codebases configured with extools, in collaboration with Asd.
  • Add document color support, showing previews and pickers for DM color codes.
  • Include parameter default values in "find all references" (by Antur, #137).
  • Decreased startup time by loading the object tree panel asynchronously.
  • Add configuration option to run dreamchecker automatically.

dmdoc v1.1.1

  • No specific changes.

DreamChecker v1.2.0

  • Add proc setting to warn if it is overridden by subtypes (by spookydonut, #114).
  • Add "final" vars, which warn if they are overridden (by spookydonut, #115).
  • Warn on ++ or -- on variables with a declared type (by spookydonut, #119).
  • Warn on !a in b, a && b in c, etc. (by spookydonut, #121).
  • Add ability to configure or disable some diagnostics (by spookydonut, #120).

DMM-Tools v1.1.0

  • Rewrite most of the internals of the map renderer, improving performance and flexibility.
  • Add render passes for fancy layers and icon smoothing, allowing them to be disabled.
  • Add fancy rendering for smart cables (#107).

SpacemanDMM suite v1.1

09 Nov 04:53
suite-1.1
Compare
Choose a tag to compare

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.

SpacemanDMM suite v1.0

03 Jul 21:01
suite-1.0
Compare
Choose a tag to compare

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.

dmm-tools v0.1.1

27 May 02:13
cli-v0.1.1
Compare
Choose a tag to compare

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.

dmm-tools v0.1.0

16 Apr 04:55
cli-v0.1.0
Compare
Choose a tag to compare

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.