Soulver 3.3.0
Major Update
Soulver has become even more useful in this release, with the addition of time zone conversions (by city or code), laptime support (HH:MM:SS), random number generation & if statements. This update also introduces "QuickSoulver" for doing quick calculations in Soulver, or anywhere in the system (via the menu bar, or global hotkey).
  • Perform "throwaway" calculations in a Spotlight-like interface
  • QuickSoulver floats above other windows, so you can use it from anywhere in macOS
  • Access QuickSoulver from the menu bar (enable this in the QuickSoulver preference pane)
  • Global hotkey (set the hotkey in the QuickSoulver preference pane)
  • ⌘C (with no selection) copies the current line's answer & dismisses
  • ⌘S saves as a new sheet
Time zone conversions
  • Convert times between time zones using city names or standard 3 or 4 letter codes (e.g "6pm Sydney to Chicago", "2am PST to GMT")
  • Added functions for getting the current time in a time zone: "Time in AEST", "PDT time", "Paris time", "Time in Tokyo"
  • Added a function for getting the time difference between time zones: "time difference between Seattle and Moscow"
  • 61 time zone codes & 500 city names are supported
  • No internet connection required
  • Do calculations in 'laptimes' (time in the format HH:MM:SS). I.e "03:45:32 + 01:22:19" (= 05:07:51).
  • Laptimes can also be converted to/from regular units of time, and timespans.
  • Milliseconds (after a final dot) can be omitted. Hours and minutes must still be specified (e.g 32 seconds will be '00:00:32'). This is necessary to distinguish a lap time from a clock time.
Random numbers
  • New random number generating function: "random number between 1 and 10" to select a random integer in the given range
  • To generate a random floating point number, do: "random number between 0 and 1" (the answer will be something like 0.1273981722)
  • Added a multiplier specifier (e.g "4/2 as multiplier" = 2x)
ISO8601 date formatting
  • Added an ISO8601 specifier for dates and timestamps (e.g "1583398800 as iso8601" = 2020-03-05T09:00:00Z)
If statements
  • Added conditionals to Soulver. The syntax is "if x then y else z". The else component is optional. See the online documentation for more detailed examples.
  • Added standard comparison operators (==, !=, <, >, <=, >=) and a boolean type ('true' or 'false')
Files & sheets
  • Making a new Soulver file no longer requires the file to be saved to disk before editing
  • You can now open Soulver 2 files using the Open dialog (⌘O). As a result the import menu item has been been removed. You still import from the Open dialog, by clicking "Options" and ticking the checkbox
  • When totalling lines with incompatible types, the bottom-most summable lines will be added and shown in the final total
  • The quick total now respects your chosen font, rather than using the system font
URL Schemes
  • Added a new URL to open a specific sheet. To make a URL for opening a sheet, control-click on the sheet in the sidebar, and choose "Copy Link", or from the "Sheet" menu.
Bug Fixes
  • Fixed a bug that broke variable peeking (holding down shift and hovering over a variable to see its value on that line)
  • Fixed a multi-line text editing bug, where a phantom answer could remain on an emptied line (thanks Tim!)
  • Mod now works with numbers with units too
  • Improvements to the Russian & German localizations (thanks Michael & Matthias!)