Releases: SpaceManiac/SpacemanDMM
SpacemanDMM suite v1.9
A maintenance update with fixes to dmdoc, more BYOND 515 support, and improvements under the hood.
Core
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 toanimate()
(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)
Language Server
Debugger
- Update auxtools debug server from v2.2.4 to v2.3.3
- Allow setting environment variables on DS/DD launch
dmdoc
- Speed up rendering massively
- Fix Markdown headings rendering as
<hh2>
instead of<h2>
DMM-Tools
- Fix the /tg/station gravity generator render pass (by mc-oofert, #393)
SpacemanDMM suite v1.8
SpacemanDMM now supports most BYOND 515 features, with many thanks to LemonInTheDark and others.
Core
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/
andoperator/=
- Add
%%
,%%=
, andoperator""
(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()
Language Server
- Handle
::
,__TYPE__
,__PROC__
, and__IMPLIED_TYPE__
in "Find All References"
Debugger
- Update auxtools debug server from v2.2.3 to v2.2.4, adding support for BYOND 515.1606
DreamChecker
- Handle
type::somevarname
so uses do not give type errors
SpacemanDMM suite v1.7.3
Another maintenance release with minor additions and fixes.
Component version numbers have been synchronized at v1.7.3 instead of being versioned separately.
Core
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:
Language Server
- Add documentation on hover for macros
- Fix a possible crash if the environment loaded fast enough to cause rounding errors
Debugger
- Update auxtools debug server from v2.2.2 to v2.2.3, adding support for BYOND 514.1584
DreamChecker
- Add lints for the
switch(rand(L, H))
pattern (by pali, #302) - Fix some proc overrides suppressing sleep/purity checks (by fira, #311)
DMM-Tools
- Improve error locations in DMM parser
SpacemanDMM suite v1.7.2
A small maintenance release, with performance and correctness improvements.
DM Language
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
Language Server v1.5.1
- Fix
new variable.field()
syntax not being included in Find All References forvariable
orfield
- Run DreamChecker and Find All References in the background in order to become responsive to queries sooner
SpacemanDMM suite v1.7.1
This is a minor release primarily to resolve the dmdoc panic bug that exists in suite-1.7.
DM Language
DM language updates apply to all components.
- Increased claimed BYOND version to 513.1556, by Watermelon914 (#273)
dmdoc v1.4.1
- Fix crash if a type proc and global proc with the same name were both documented (#268)
- Set sans-serif fonts in dmdoc stylesheet, by LetterN (#278)
DreamChecker v1.7.1
- Fix particles not actually being assumed to be particles by TiviPlus (#275)
SpacemanDMM suite v1.7
This release's headline is BYOND 514 support, thanks largely to ZeWaka 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).
- Show stdout/stderr of the launched process in the debug console.
dmdoc v1.4.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
- Fix "should not sleep" to catch
world.Export
andworld.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
- Speed up map rendering by approximately 9% (by PJB, #242).
SpacemanDMM suite v1.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 justcode
- 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
andset 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
SpacemanDMM suite v1.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 ofdreamchecker --parse-only
.
SpacemanDMM suite v1.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
foranimate()
(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 nooverlays_file
var.
SpacemanDMM suite v1.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.