Major Update
This update includes 30+ improvements to Soulver's math engine, including better performance. It also features also improved printing & PDF exporting, and styled email sending and HTML exporting.
Line Numbers:
  • Added line numbers
  • Use the keystrokes (⌘1 - ⌘9) to quickly insert a reference to the corresponding line
  • Make references in plain text. For example, type "line1" to insert a reference to line1
Printing, Styled Emails & Exporting:
  • You can now customize the appearance of printed sheets & PDFs (font & font size). They can also optionally include line numbers, the total, and a centred heading
  • Sub-total lines are now properly indicated as such in printed sheets & PDFs
  • Added an HTML as an export option
  • Added the macOS share sheet, and an option to copy an exported file directly to the clipboard
  • You can now send styled (HTML) emails (this requires macOS 10.15+). These can also be customized in the Export sheet
  • Soulver will launch a helper app to do the actual emailing. The standard macOS Mail app must be configured with at least one valid email account to send a styled email
Calendar Math
  • "Now" can be used to get the current time: "now + 3 hours 15 minutes"
  • Do calculations with workdays/weekdays: "10 March to 17 March in workdays" (= 5 workdays)
  • New syntaxes for working out date intervals: "Days between 12 March and 31 December", "days from 12 March to 31 December", or "days in March 12 to 31 December"
  • New syntaxes for working out intervals from the present up to a certain point in time: "days until December 25", "days before December 25", "days to December 25"
  • New syntax for working out intervals from a point in the past, to the present: "days since December 1"
  • Proper calendar months are now used when doing time intervals calculations (rather than Gregorian average months). Eg. "February 10 to April 10" now equals 2 months exactly (rather than 1.9 months, where a month was defined as ~30.44 days)
  • Control/right-click on a date answer to see what day of the week it falls on
Use specifiers to convert between different types, and set the output of an expression
  • Fraction: "0.2 as fraction" (= ⅕). This replaces the old "fractionize where possible" formatting option
  • Fraction symbols (like '½') are used where possible in fraction output for fractions
  • Percentage: "0.5 as percentage" (= 50%). - "As percent" or "as %" also supported
  • Plain number: "50 km as number" (= 50)
  • Timespans: "5.5 minutes as timespan" (= 5 minutes 30 seconds)
  • Unix Timestamps: March 12 as timestamp (= 1583974800). Timestamps will format correctly in the answer column by default (without notation or thousands separators). To create a new unix timestamp, use "new timestamp". The previous syntax (simply "timestamp") is no longer supported
Rounding Specifiers
You can now round numbers using the following specifies.
  • 0.5 rounded up (= 1.0)
  • 0.5 rounded (= 1.0)
  • 0.5 rounded down (= 0.0)
  • "1/3 to 3 dp" (= 0.333). "to 3 digits" is also supported
Units & Conversions:
  • Re-designed the custom units pane to group custom units by type
  • Choose your preferred measurement system for volume units (like teaspoon) in the new region preference pane
  • A unit's symbol (rather than it's full name) are now used in answers. To see the full name of the unit used in the answer, control/right-click on the answer
  • Added an alternative syntax for unit conversion: "days in 3 weeks" (= 21 days)
  • CSS units (px, em, pt) can now be converted into other units of length (like inches)
  • Like Soulver 2, "last unit wins" in mixed unit arithmetic. For example: 3 km + 3 m = 3,003 m. Prior versions of Soulver 3 used "first unit wins"
  • Compound units like "kg liters" are no longer supported
  • Scientific units (electricity, pressure, magnetism, force, luminosity) are not currently supported
  • You can now customize currency symbols, letting you set which currency should used for the $ and ¥ symbols, for example. You can also add your own symbols for any currency, and select whether the symbol is displayed in front of, or after the currency (with optional spaces)
  • Convert currencies by symbol ($, €, ¥), eg. "30 USD in €" (previously the 3-letter currency code was always required)
  • For totals involving currencies, a currency's rounded answer (usually to 2 dp) is now used, rather than its raw, maximum accuracy answer
  • New syntaxes for working with rates: "30 hours at $30/hour (= $900)", or "$900 at $30/hour" (= 30 hours)
  • Rates of different (but compatible) units are now included in totals
Other changes:
  • Soulver 3 no longer uses Math.js
  • Consequently Soulver 3.2 is up to 4x faster than Soulver 3.1 at number crunching. It loads long sheets almost instantaneously. An issue where typing performance was sluggish in long sheets with a lot of variables has also been resolved
  • Like Soulver 2, quotation marks can be used to comment out parts of an expression
  • The main window now remembers its size and position, even if you manually close it
Bug fixes:
  • Fixed an issue with slash comments followed by Chinese Hanzi characters
  • Fixed an issue where only the second # in a multi-# heading was receiving syntax coloring with a custom color specified
  • Fixed an issue where clicks in the text area's margin were not highlight the nearest line
  • Fixed an issue related to automatic thousands-separator insertion
  • Fixed an issue where labels took precedence over comments