Tags: SpaceManiac/SpacemanDMM
Tags
A maintenance update with fixes to dmdoc, more BYOND 515 support, and… … improvements under the hood. Core updates apply to all components. * Implement `/proc/operator:=` * Accept input types on bare variables like `var/foo as text|null` * Support preprocessor `fexists()` (by ZeWaka, #388) * Add `delay` argument to `animate()` (by Waterpig, #387) * Overhaul doc comment parsing to fix some cases where comments would be dropped (#332) * Fix Unicode being mangled in doc comments * Fix parsing of union proc return types like `as num|text` (#385) * Update auxtools debug server from v2.2.4 to v2.3.3 * Allow setting environment variables on DS/DD launch * Speed up rendering massively * Fix Markdown headings rendering as `<hh2>` instead of `<h2>` * Fix the /tg/station gravity generator render pass (by mc-oofert, #393)
SpacemanDMM now supports most BYOND 515 features, with many thanks to… … LemonInTheDark and others. Core updates apply to all components. * Bump declared BYOND version to 515.1619 * Add `call_ext` (by willox, #353) * Add v515 proc and constant builtins (by Spookerton, #354) * Fix `operator/` and `operator/=` * Add `%%`, `%%=`, and `operator""` (by LemonInTheDark, #371) * Add `__TYPE__` and `__PROC__` (by LemonInTheDark, #366) * Add `__IMPLIED_TYPE__` (by LemonInTheDark, #368) * Add `#pragma multiple` (by LemonInTheDark, #372) * Add `proc/final`, connected to existing "should not override" lint (by LemonInTheDark, #369) * Add `::` scope operator (by LemonInTheDark, #367) * Add constant-evaluation for `nameof()` * Handle `::`, `__TYPE__`, `__PROC__`, and `__IMPLIED_TYPE__` in "Find All References" * Update auxtools debug server from v2.2.3 to v2.2.4, adding support for BYOND 515.1606 * Handle `type::somevarname` so uses do not give type errors
Another maintenance release with minor additions and fixes. Component version numbers have been synchronized at v1.7.3 instead of being versioned separately. Core updates apply to all components. * Fail gracefully instead of crashing when encountering bad .dmi files (by moxian, #319) * Fix parsing heredocs with multiple quotes in a row * Add some undocumented builtins for completeness: * `/dm_filter` type (by Spookerton, #312) * `/database/var/_binobj` and `/database/query/var/database` vars (by Cyberboss, #326) * `/generator/var/_binobj` var (by TiviPlus, #342) * Add documentation on hover for macros * Fix a possible crash if the environment loaded fast enough to cause rounding errors * Update auxtools debug server from v2.2.2 to v2.2.3, adding support for BYOND 514.1584 * Add lints for the `switch(rand(L, H))` pattern (by pali, #302) * Fix some proc overrides suppressing sleep/purity checks (by fira, #311) * Improve error locations in DMM parser
A small maintenance release, with performance and correctness improve… …ments. DM language updates apply to all components. * Properly handle files with UTF-8 byte order mark (by PJB, #285) * Add /particle/var/fadein builtin (by Azrun, #290) * Fix `var_in_proc_parameter` diagnostic configuration not being properly applied (by igorsaux, #292) * Use IndexMap and AHash to improve speed (by LatteKat, #293) * Reorganize AST structures to reduce memory usage of the parser * Fix `new variable.field()` syntax not being included in Find All References for `variable` or `field` * Run DreamChecker and Find All References in the background in order to become responsive to queries sooner
This release's headline is BYOND 514 support, thanks largely to ZeWak… …a and spookydonut. Additionally, new configuration options have been added to dmdoc and new lints have been added to dreamchecker. Willox's work on the [auxtools] debug server has made debugging smoother and more interactive and will allow us to eventually deprecate extools. ## DM Language DM language updates apply to all components. - Improve memory usage of parser significantly, about 45% for /tg/station13 (#113). - Add BYOND 514 entries to the builtins table (by ZeWaka, #240). - Add constant-evaluation support for 514's expanded `rgb()` function (by ZeWaka, #254). - Fix `new x[y]` being parsed incorrectly (by Willox, #257). - Add support for infinite `for()` loops (by Willox, #259). - Add support for `L?[x]` list access syntax (by Willox, #262). - Fix `in` and ternary precedence (by Willox, #260). - Support `CRASH()` with no arguments (#245). ## Language Server v1.5.0 - Track disk I/O separately from parsing in the load time report. ### Debugger - Add [auxtools] debugging support (by Willox, #230). - Meant to eventually replace extools, which is no longer maintained. - Debug console allows evaluating expressions (by Willox, #263). - `#dis` and `#dis /type/proc/name` can be used to read disassembly (by Willox, #233). - Show stdout/stderr of the launched process in the debug console. [auxtools]: https://github.com/willox/auxtools ## dmdoc v1.4.0 <!-- was 1.3.0 --> - Types, global procs, and global vars are now always included in the module tree as well. - The module tree will start with the first level (usually "code") expanded. - The `dmdoc.index_file` configuration option can be used to specify a file to be used as the documentation's index page. - The `dmdoc.module_directories` option can be used to override the default module directory detection. - Attempting to link to some builtins will now properly link to the DM reference (#215). ## DreamChecker v1.7.0 <!-- was 1.6.0 --> - Fix "should not sleep" to catch `world.Export` and `world.Import` (by spookydonut, #216). - Add warning for `return x` in spawn context (by pali6, #228). - Fix flag values for filters (by ZeWaka, #243). - Add detection of sleeping client procs (by spookydonut, #252). - Fix missing detection of world `Import()`/`Export()` calls (by spookydonut, #252). - Lint for ambiguous use of `!` on the left-hand side of a bitwise operation (by ZeWaka, #265). ## DMM-Tools v1.3.1 <!-- was 1.3.0 --> - Speed up map rendering by approximately 9% (by PJB, #242).
suite-1.6 This release stars many dmdoc improvements, especially around crosslinking. Updates to the /tg/ fancy map rendering, more robust debugger output, and DreamChecker bug fixes are also included. ## DM Language DM language updates apply to all components. - Add missing filter flags for the outline filter (by Neerti, #206) ## Language Server v1.4.0 - Add documentation to hovers, add hovers for var uses and proc calls (by Bobbahbrown, #210) - Make type definitions count as an implementation rather than a reference - Exclude `..()` parent calls from the references list - Add document links for `#include` lines - Add document links for `'resource'` expressions ### Debugger - Rearrange variables pane so "Locals" is at the top - Work around some variables being hidden if the same name is re-used within a proc - Pull variable names from BYOND rather than using SpacemanDMM's parser - Implement the "step out" feature - Show the sleeping proc queue as threads in VSC ## dmdoc v1.3.0 - Search for module documentation in any `#include`d directory rather than just `code` - Add `--index <filename.md>` flag to display a file on the docs index page - Include `.txt` files as module documentation - Strip `\proper` and `\improper` prefixes from names - Promote `README` files to represent their parent directory - Add detailed crosslink error information - Allow crosslinking to modules by their source file name - Add `--dry-run` flag to skip HTML output and exit with the number of crosslink errors ## DreamChecker v1.6.0 - Add lint for attempting to iterate over known non-list types - Add lint for line comments ending in backslashes - Remove error if a proc has both `should_not_sleep` and `set waitfor = 0` (by MrStonedOne, #211) - Fix "relatively pathed type" warnings, which were broken by a previous update - Populate errortype on more errors, to allow disabling them (by Leshana, #201) - Fix sleep and purity lints not counting proc overrides (by spookydonut, #214) ## DMM-Tools v1.3.0 - Update renderer for /tg/ icon smooth refactor (twice) - Update unary atmos icons for existence of layer 4 - Add relics to random render pass and fix kirbyplants
suite-1.5 This release mainly improves performance, fixes bugs, and adds missing builtins. ## DM Language DM language updates apply to all components. - Improve I/O speed by buffering entire files during parsing. - Speed up object tree traversal during parsing. - Fix `;` in proc parameters causing parse failure (by Cyberboss, #176). - Fix interpolated strings always being assumed to be truthy (#180). - Fix precedence for bitwise operations (by mloc, #197). - Improve builtins around `bounds` vars, `/image` vars (#184, #186). - Add missing `opacity` var to `/mutable_appearance` (by spookydonut). - Add the `PASS_MOUSE` builtin (by ZeWaka, #195). ## Language Server v1.3.0 - Add `environment` config option to choose which `.dme` file to load if several are present. - Add expression and statement keywords to autocomplete list (#76). - Fix "go to definition" not working for relative-pathed proc argument types (#190). - Show full `#define` body in completion details. - Format procpath variables in debugger. - Add "Globals" alongside "Arguments" and "Locals" in debugger. - Supply `stddef.dm` source when stepped into. ## dmdoc v1.2.2 - No specific changes. ## DreamChecker v1.5.0 - Emit error when proc is defined multiple times (by willox, #181). - Add `--parse-only` flag which skips most lints. - Fix sleep/purity checks failing to cross `parent_type` boundaries in some situations. - Fix sleeping code under `spawn()` triggering "should not sleep" lints (by Cyberboss, #177). - Fix false positive diagnostic on `PureProc().Foo()` calls (#188). ## DMM-Tools v1.2.0 - Remove `check` subcommand in favor of `dreamchecker --parse-only`.
suite-1.4 This release stars more DreamChecker additions by spookydonut, with minor bugfixes elsewhere. ## DM Language DM language updates apply to all components. - Update language support to 513.1514 (by spookydonut). - Fix location of `do while` condition (by spookydonut). - Fix locations for if else arm and switch if arms (by spookydonut, #173). - Add missing documented and undocumented `/icon` vars (by spookydonut). - Fix case on `/client/proc/MeasureText()` arguments (by spookydonut). - Add undocumented parameter `radius` for `animate()` (by spookydonut). - Fix bad `WAVE_BOUNDED` check on ripple and wave filters (by Valtos, #171). ## Language Server v1.2.2 - Add "Find Implementations" for procs and vars and remove its results from "Find References". ## dmdoc v1.2.1 - No specific changes. ## DreamChecker v1.4.0 - Warn on weird values given to built-in set directives (by spookydonut, #168). - Add lints for private/protected vars and procs (by spookydonut, #124). - Add should-be-pure & should-not-sleep lints (by spookydonut, #132). - Make local vars locally scoped (by spookydonut, #130). - Add `filter()` flag checking (by spookydonut, #165). - Add basic unreachable code detection (by spookydonut, #123). - Add config options for constant eval condition errors (by spookydonut). ## DMM-Tools v1.1.2 - Fix `overlays` render pass causing "error loading icon" warnings if airlocks have no `overlays_file` var.
suite-1.3 This release features parsing improvements and DreamChecker additions brought to you by spookydonut, as well as some improvements to dmdoc. ## DM Language DM language updates apply to all components. - Add various BYOND 513 beta builtin declarations. - Fix incorrect locations of warnings in "else if" conditions (by spookydonut, #144). - Readd override-precedes-definition handling (by spookydonut, #147). - Fix regression on `defined()` preprocessing (by spookydonut, #152). - Fix `new .()` not parsing correctly (by spookydonut, #153). - Fix constant evaluation of expressions like `10 ** -1` (by spookydonut, #164). ## Language Server v1.2.1 - No specific changes. ## dmdoc v1.2.0 - Add option to disable using the `name` var in the type tree (by spookydonut, #149). - Add links to parent vars and procs when documented (#93). - Add automatic cross-link syntax (#92). - Add deep-linking attributes to Markdown headings (#91). ## DreamChecker v1.3.0 - Add configuration option for `final_var` warnings (by spookydonut, #157). - Warn about invalid `filter()` keyword arguments (by spookydonut, #154). - Add off-by-default lint to forbid relative pathing (by spookydonut, #150). - Add static return types for built-in global procs (by spookydonut, #128). ## DMM-Tools v1.1.1 - No specific changes.
PreviousNext