Skip to content

v8.1.0

Compare
Choose a tag to compare
@jmoenig jmoenig released this 01 Feb 17:48
· 1516 commits to master since this release
  • New Features:
    • lists as dictionaries: alphanumeric indices for lists, access fields (JSON) and columns (CSV) by name
    • include custom block data dependencies in libraries, eliminates the need for initialization routines creating and populating variables required by custom block definitions
    • visually highlight variable scope when mouse-hovering over a variable declaration in visible stepping mode
    • visually highlight the variable declaration of variable accessor blocks when mouse-hovering over them in visible stepping mode
    • visually highlight senders / receivers when mouse-hovering over messaging blocks in visible stepping mode
    • show intermediate results when debugging a script, i.e. when clicking on a script in visible stepping mode. Thanks, Vic!
    • new "When (sprite) is edited" event hat block, supports light user interaction logging
    • new PIPE primitive in the control category
    • "touching" predicate now also accepts a 2-item list representing x/y-coordinates to check for collision with an arbitrary point
    • hyper-rays: support lists of relative angles in the left "ray length TO sprite" input slot for instant fields of vision
    • added "delete" option to context menu of global and sprite-local variable declarations in the blocks palette
    • added "translations" selector to metaprogramming blocks
    • new "disable dragging data" preference setting for (kids') MicroWorld creators
    • pixels library: Added command blocks to rename and export costumes
    • new "ide_blocks" extension primitive
    • new extension primitives: "txt_to_utf8(txt)" and "txt_from_utf8(utf8List)", thanks, John!
    • new extension primitive "txt_transform(name, txt)" for encoding, decoding, escaping, unescaping and hashing text
    • new extension primitive "cst_export(cst, name)" for exporting/downloading a costume
    • new extension primitive: "syn_scripts([xml])" for getting & setting (and deleting!) the scripts of a sprite
    • codification: calling "code of" on a sprite returns a text version of its scripting area (concatenated codified scripts delimited by empty lines)
    • extensions can auto-load and auto-exec allowed or allow-listed external JS scripts that modify the IDE, e.g. to add buttons by storing the external url in global (optionally hidden) variables whose name starts with "module"
    • extensions can add custom buttons to the palette, thanks, Bernat!
    • added retina support for inlined morphic worlds, enabling high-res embedding of Snap! components into other websites
    • added configuration options for embedding Snap! into other websites
    • new API methods for synchronizing scripts across sprites and Snap! instances
    • new API methods for signalling scripts through highlighting blocks that correspond to marked portions of mapped text code
  • Notable Changes:
    • enabled same-named global and sprite-local variables
    • no more error messages when the number of actual arguments doesn't match the number of implicit parameters
    • removed empty parens from extension prims "ide_all_blocks", "ide_language" and "ide_translations"
    • hyperized bitwise operators, and gave them more mnemonic block names, thanks, Bernat and Brian!
    • optional inputs "broadcast" and "switch to scene" blocks don't auto-fill when called with an input list
    • made formal parameters available in variable-menu dropdowns of all blocks inside of block editors
    • hyperized "code of" reporter (codification primitive)
    • round watcher readouts to 6 decimal digits (like Scratch), instead of 9
    • updated "for each" help screen, thanks, Brian!
    • TuneScope extension update, thanks, Harsh, Jo and Glen!
    • SciSnap2 extension update, thanks, Eckart!
    • MQTT library update, thanks, Simon!
    • removed PIPE from all libraries (b/c it is now a built-in primitive in the control blocks palette)
    • updated "Codification" example project
    • hide "stage selected - no motion primitives" text when hiding the category names in single palette mode
    • order "my scripts" list by their top-down position in the scripting area (not by the time of their placement)
    • don't show "result pic" option in block context menu with "click-to-run" disabled
    • enable JavaScript extensions when running Snap! locally without a webserver (location.protocoll "file:")
    • enable "JavaScript function" primitive to be hidden / shown independently from enabling JavaScript extensions
    • shrunk some new built-in costumes, to make them load faster
  • Notable Fixes:
    • fixed refactoring (renaming) variables (I hope, haha!)
    • fixed retaining transience when renaming a global or sprite-local variable
    • fixed displaying message senders
    • improved text wrapping - wrap words that are too wide for a line by letters
    • improved touch-hold gesture on mobile Android devices, thanks, @ego-lay-atman-bay!
    • don't show block relabel options that are marked as hidden
    • fixed aggressive cache issue, thanks, Michael!
    • fixed exporting pics of morphs in dev mode, thanks, @xBZZZZ!
    • fixed API->broadcast() to also accept a data payload, thanks, Zak!
    • SciScnap2 library: fixed SQL queries containing the percent characters
    • fixed exporting information about blocks in custom categories when creating a summary document (#3097)
    • fixed occasional "reporter did not report" error when changing a custom command block to become a reporter
    • fixed a naming issue when importing duplicate data files
    • fixed occasional errors when using "broadcast" and "this script" in the same script
    • fixed deselecting / selecting blocks in the "Unused Blocks" dialog
    • fixed "obj_name" extension prim to also accept numbers as names
    • fixed "Make Variables" extension for numerical names
    • fixed palette category ghosting update when hiding / unhiding blocks using extension primitives
    • fixed accidentally drawing unwanted dots when changing a pen color dimension thanks, Joan!
    • fixed zebra coloring for polyadic read-only input slots
    • fixed a label rendering glitch when flashing blocks
    • prevented variables from being renamed to blanks
    • caught an occasional maximimum call-stack size range error when embedding blocks into a scripts pic
    • improved frame scheduling, prevent excessive frame drops, thanks, SArpnt!
    • hiding the keyboard handler text area better by reducing its visible dimensions to zero
    • fixed a codification glitch for empty list slots
    • fixed deleting embedded reporters in keyboard-entry mode
    • fixed zebra coloring when importing a script from file or smart PNG
    • fixed accidentally triggering "When I receive green flag" events for any broadcast message
    • COMBINing an empty list with JOIN results in an empty text rather than in the number zero
    • hide new primitives in old microworlds
    • explicitly garbage collect (i.e. remove) terminated audio elements
    • don't crash the "play frequency" block when passing a non-numerical input
  • Documentation Updates:
    • new "docs" folder for documentation files, thanks, Michael!
    • new doc for extensions, thanks, Michael!
    • extended API documentation
  • Translation Updates:
    • German
    • Catalan, thanks, Joan!
    • Dutch, thanks, Hans!
    • Brazilian Portuguese, thanks, Artur!