Snap

a visual programming language inspired by Scratch

AGPL-3.0 License

Stars
1.5K
Committers
103

Bot releases are hidden (Show)

Snap - v8.1.5

Published by jmoenig over 1 year ago

  • Notable Fixes:
    • fixed a scope highlighting bug
Snap - v8.1.4

Published by jmoenig over 1 year ago

  • Notable Fixes:
    • blocks: fixed setting a default value for Boolean input slots in custom blocks
Snap - v8.1.3

Published by jmoenig over 1 year ago

  • Notable Fixes:
    • fixed jit-compiling dropdown choices (e.g. "item /last/ of list")
Snap - v8.1.2

Published by jmoenig over 1 year ago

8.1.1:

  • Notable Fixes:
    • fixed #3176 - triggering user interaction hat blocks
Snap - v8.1.1

Published by jmoenig over 1 year ago

  • Notable Fixes:
    • loading old projects only hides new blocks if they already contain hidden ones
    • distinguish selected named list indices ("random", "last") from same-named typed-in dictionary keys
    • fixed opening projects when the language is set to non-English
  • Documentation Updates:
    • updated API documentation for "noAutoFill" configuration setting
Snap - v8.1.0

Published by jmoenig over 1 year ago

  • 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!
Snap - v8.0.0

Published by jmoenig about 2 years ago

  • New Features:
    • passing a list to the ASK command in sensing presents a menu to the user
    • formatting a list of texts displays it as chat-history in an ASK menu
    • ASK nothing or a falsy value terminates all threads currently displaying a question or waiting to ask one and clears the last "answer"
    • new "Menus" library
    • broadcasting now supports optional additional data transmission, also when switching scenes
    • export script (including dependencies) via its context menu
    • export / import sprite-local custom block definitions from the palette
    • export block definitions from inside the block editor
    • embed blocks into costume metadata to be shared as image file
    • exported script pics now always include the actual blocks, which can be extracted from the image inside Snap!
    • exported scripts (!) pics now also always include either the actual blocks (if it's a single script), the block definition (if it's a block editor), or a sprite-representation of the current object (sprite or stage)
    • added green flag symbol to "when I receive" dropdown menu, support when clicking the green flag button in the IDE
    • added "combinations" primitive to the palette
    • new POSITION primitive reporter in the MOTION category
    • new MOUSE POSITION primitive reporter in the SENSING category
    • new "position" choice in OF reporter's attribute dropdown, reports a list of XY coordinates
    • new "variables" choice in OF reporter's attribute dropdown, reports a list of reachable variable names
    • new "categories" choice in MY reporter's dropdown, reports an ordered list of all category names whose indices match the "category" reported elsewhere
    • new "label", "type", "scope", "slots", "defaults", "menus" and "editables" choices in the OF BLOCK block-attribute reporter's dropdown
    • new "set attribute of block" primitive
    • new "define block" primitive
    • new "delete block" primitive
    • new "this script" primitive
    • added support to the OF reporter for binding a ring to another one, e.g. THIS SCRIPT, to access its local variables
    • new localization extension primitives in the "ide" category, hyperized
    • new extension primitive for importing a costume from a url
    • new extension primitive for querying all variable names accessible from a specified scope (global, sprite, script)
    • new extension primitive for querying whether a watcher for a variable by name is shown onstage
    • new support for setting the translation via the API
    • new TuneScope extension and library, thanks, Glen, Eric, and team!
    • new "Tad", "Jahrd", "Derec" and "Jamet" costume series, thanks, Meghan and Brian!
  • Notable Changes:
    • exporting a library includes dependencies (auto-select all referenced blocks)
    • exporting / importing a sprite includes dependencies (global custom blocks and palette categories)
    • imported single scripts are now placed into the hand, for the user to position them in the scripting area
    • moved "append", "reshape", "combinations" blocks down one group in the palette
    • moved "current date" block up to "timer" group in the palette
    • moved "attribute of block" block from the sensing category to control
    • include currently dragged sprites in the MY OTHER SPRITES/CLONES lists
    • library import dialog makeover for custom categories and hidden blocks, thanks, Michael!
    • when querying a custom reporter's "definition" property only report its reporter without the REPORT block (if applicable)
    • SciSnap2 extension update (ImagePad), thanks, Eckart!
    • MQTT extension update, thanks, Simon and Xavier!
  • Notable Fixes:
    • fixed relabelling "sum", "product", "minimum" and "maximum" reporters
    • fixed relabelling local custom blocks to global ones and vice-versa
    • fixed library blocks preview to deal with both local and global blocks
    • fixed scope of script vars inside experimental JIT-compiled rings, thanks, xBZZZ!
    • fixed a "wandering" watcher positioning bug when saving / loading a project into a scaled stage
    • fixed an edge case for slot type inferral
    • fixed variadic AND/OR reporters library, thanks, Brian!
    • fixed a pen-size issue in the frequency distribution analysis' graph-plot block, thanks, Brian!
    • fixed block label color when expanding or inserting variadic infix slots
    • framerate is throttled to < 67 fps
  • Documentation Updates:
    • new Manual for v8, yay! Thanks, Brian!
    • updated contribution guidelines, thanks, Peter!
    • updated help screens for NUMBERS and FIND FIRST, thanks, Brian, Peter and WarpedWartWars!
    • updated the API documentation for "setTranslation"
  • Translation Updates:
    • German
    • Greek, thank you, HM100!
Snap - v7.3.1

Published by jmoenig over 2 years ago

7.3.1:

  • Notable Fix:
    • guard against broken SVG costumes when loading a project
Snap - v7.3.0

Published by jmoenig over 2 years ago

7.3.0:

  • New Features:
    • variadic associative infix reporters
    • shift-click on STOP button to stop all scenes
    • STOP "all scenes" dropdown option
    • "category" selector for block-getter in sensing
  • Notable Changes:
    • show project name in browser tab, thanks, Peter!
    • SciSnap2 extension update (FFT), thanks, Eckart!
    • removed now redundant variadic reporters from the variadic reporters library
  • Notable Fixes:
    • addressed security issues in the JIT-compiler, thanks, xBZZZZ!
    • animation library: fixed pen state for GLIDE, thanks, Brian!
  • Translation Updates:
    • German
Snap - v7.2.5

Published by jmoenig over 2 years ago

7.2.5:

  • Notable Fix:
    • escape JIT-compiled variable names
Snap - v7.2.4

Published by jmoenig over 2 years ago

7.2.4:

  • Notable Fix:
    • tweaked JOIN BLOCKS for variables
Snap - v7.2.3

Published by jmoenig over 2 years ago

7.2.3:

  • Notable Fix:
    • escape JIT-compiled inputs
Snap - v7.2.2

Published by jmoenig over 2 years ago

7.2.2:

  • Notable Changes:
    • renamed "crossproduct" to "combinations"
  • Translation Updates:
    • German
Snap - v7.2.1

Published by jmoenig over 2 years ago

7.2.1:

  • New Features:
    • new "List Comprehension" library adding a HOF version of ZIP
    • added "crossproduct" as relabel option for "append"
  • Translation Updates:
    • German
Snap - v7.2.0

Published by jmoenig over 2 years ago

7.2.0:

  • New Features:
    • new SciSnap2 extension and library, thanks, Eckart!
    • new MQTT extension and library, thanks, Simon and Xavier!
  • Notable Changes:
    • hyperized reporter-IF/ELSE
  • Notable Fixes:
    • strings library: fixed lowercase(number), thanks, Brian and Simon!
    • swapped "lists" and "other" in the make-a-block category menu, thanks Brian, for the report!
    • don't let deleted sprites clone
Snap - v7.1.4

Published by jmoenig over 2 years ago

7.1.4:

  • Notable Changes:
    • hyperized Boolean AND, OR operators
  • Notable Fixes:
    • preserve contents of variadic inputs when editing or translating custom blocks
Snap - v7.1.3

Published by jmoenig over 2 years ago

7.1.3:

  • New Features:
    • new bitwise operators library, thanks, Bernat!
  • Notable Fixes:
    • JSON encoding for nested lists
    • enforce static typing for stage backgrounds and sounds, and for sprite duplicates
    • prevent Chrome from crashing when using serial ports on a Mac, thanks, Dariusz!
    • fixed missing blocks in variadic reporters library, thanks, Brian!
    • fixed an infinite loop in the signada library, thanks, Bernat!
    • fixed missing blocks in bar chars library
    • fixed missing blocks in frequency distribution analysis library
    • fixed missing blocks in iteration composition library
    • fixed a comment in "remove duplicates" in the list utilities library
    • fixed missing blocks in parallelization library
Snap - v7.1.2

Published by jmoenig over 2 years ago

7.1.2:

  • Notable Changes:
    • friendlier error messages
  • Translation Updates:
    • German
Snap - v7.1.1

Published by jmoenig over 2 years ago

7.1.1:

  • Notable Fixes:
    • disabled reporter drops into "When I am ..." hat block (again)
    • fixed "pick random" for descending ranges, thanks, Brian!
Snap - v7.1.0

Published by jmoenig over 2 years ago

7.1.0:

  • New Features:
    • delete and insert individual variadic slots, script vars & ring params via the context menu
    • drag blocks, costumes and sounds out from result bubbles, and from speech balloons and variable watchers when in edit mode
    • export data (costumes, sounds, text, numbers, atomic lists) from result bubbles, and from speech balloons and variable watchers when in edit mode via the context menu
  • Notable Fixes:
    • fixed layout for scrolling custom categories, thanks, Eckart, for the bug report!
    • text-costumes library: fixed preserving (more) pen state, thanks, Brian!
  • Translation Updates:
    • Hungarian, thank you, Attila Faragó, for this HUGE update!
    • German