Releases: SpaceManiac/SpacemanDMM
SpacemanDMM suite v1.11
This maintenance update improves SpacemanDMM's support for BYOND 516, thanks to ShiftyRail, Zonespace, and other contributors.
Core
Core updates apply to all components.
- Add support for
call_ext(LoadedFunc)syntax (by Lucy, #433). - Add support for
for (var/k, v in X) syntax(by ShiftyRail, #431). - Add missing
/pixloc/var/xandy(by ZeWaka, #441). - Remove warning for using a macro too close to undefining it, as it is now irrelevant (#423).
- Add a field list to the unnamed type used by
/callee/var/proc, so its vars can be checked.
Language Server
- Add
callerandcalleevars to the completions list.
dreamchecker
- Lint for
set SpacemanDMM_statements that have no effect (by Drathek, #435). - Fix
/alists not being considered iterable (by Zonespace, #442). - Fix
filter()not acceptingname()as a keyword argument (by Zonespace, #436).
dmm-tools
- Simplify some internals and improve sprite clipping performance.
SpacemanDMM suite v1.10
SpacemanDMM now supports most BYOND 516 features, with many thanks to harry and LemonInTheDark.
Core
Core updates apply to all components.
- Add definitions for new types, vars, and procs for BYOND 516 (by harry, #420).
- Add
<=>operator (by harry, #425). - Add support for
as movable,as atom, andas list(#399). - Allow
operatorin type names again (#374). - Add
pixel_wandpixel_ztoimage()(by Waterpig, #424). - Improve speed by changing the hasher used for HashMaps and HashSets (by ZeWaka, #414).
- Fix relative paths in preprocessor
fexists()(by ZeWaka, #401).
Language Server
- Fix document outline being inaccurate in some cases (#394).
- Fix a crash in the document outline (#395).
Debugger
- Fix debugger not working if the configured DLL path override was set to the empty string (by Lucy, #428).
- Update auxtools debug server from v2.3.3 to v2.3.5.
dreamchecker
- Handle
asreturn types same asset SpacemanDMM_return_typetypes (#406). - Fix configuration errors being silently ignored.
dmdoc
- Add proc parameter
astypes, returnastypes, andset SpacemanDMM_return_typetypes to proc documentation. - Add var
astypes to var documentation. - Fix configuration errors being silently ignored.
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
delayargument 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::somevarnameso 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_parameterdiagnostic 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 forvariableorfield - 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
inand 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_fileconfiguration option can be used to specify a file to be used as the documentation's index page. - The
dmdoc.module_directoriesoption 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.Exportandworld.Import(by spookydonut, #216). - Add warning for
return xin 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
#includelines - 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
#included directory rather than justcode - Add
--index <filename.md>flag to display a file on the docs index page - Include
.txtfiles as module documentation - Strip
\properand\improperprefixes from names - Promote
READMEfiles to represent their parent directory - Add detailed crosslink error information
- Allow crosslinking to modules by their source file name
- Add
--dry-runflag 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_sleepandset 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
boundsvars,/imagevars (#184, #186). - Add missing
opacityvar to/mutable_appearance(by spookydonut). - Add the
PASS_MOUSEbuiltin (by ZeWaka, #195).
Language Server v1.3.0
- Add
environmentconfig option to choose which.dmefile 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
#definebody in completion details. - Format procpath variables in debugger.
- Add "Globals" alongside "Arguments" and "Locals" in debugger.
- Supply
stddef.dmsource 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-onlyflag which skips most lints. - Fix sleep/purity checks failing to cross
parent_typeboundaries 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
checksubcommand in favor ofdreamchecker --parse-only.