Skip to content

Releases: iamrecursion/symbat

Symbat 1.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 13:02

This is a major update to Symbat, bringing a whole host of bugfixes and UX enhancements to better integrate Numbat's capabilities with your notes and Obsidian in general.

  • Richer Property Support: Symbat now automatically translates more kinds of property types and makes them available in your numbat bindings. In addition to the already-supported numbers, we now support booleans, strings, dates, datetimes, and Better-Properties-style uniform arrays. We also fixed a bug where properties would not be properly exported into notes that import other notes unless they were at the top level.
  • Decorator Support: Due to the caching and evaluation mechanism used by the plugin to provide line-by-line results, the use of decorators on let bindings, unit definitions, and function definitions was broken. They are now properly supported, and will even offer completions after typing @ with decorator information on hover.
  • NBT Editor Enhancements: Tab and Shift Tab for indentation now work in the standalone NBT file editor, with the tab width and tabstop configurable in the plugin settings. On mobile with a software keyboard, the NBT editor now provides a floating hide keyboard button, and where vim mode is enabled it also provides escape and a button to toggle visual block mode.
  • Undefined Properties Support: We now ship with an Opt<T> type that acts like an optional type that can be present or not. We've integrated this at a deep level into the properties support in Symbat, allowing you to work with data that may or may not be present from your numbat code. It comes with a host of associated functions so you can work with it seamlessly.
  • Zoned Date and Datetime Property Types: Symbat now ships two additional property types that add the ability to select a time-zone to dates and datetimes. This makes them work far more seamlessly with Numbat, which would otherwise assume they are in the user's default timezone. The timezone list is searchable, and supports both floating zones (to handle DST changes) and fixed offsets.
  • Better Bases UX: Symbat's property types in bases now display the result only—still highlighted with units and everything—until they are clicked into. Once focused, you get the full property editor, but this provides a much better UX for reading data in bases at a glance while still retaining the full power of Numbat's evaluation.

Symbat 1.0.2

Choose a tag to compare

@github-actions github-actions released this 03 Aug 19:26

Some built changes to comply with Obsidian's automatic plugin review! Take a look at all the great features from the 1.0.0 release!


Symbat integrates the wonderful Numbat into Obsidian for intereactive, unit-aware, scientific calculation! Key features are:

  • Full Numbat Support: Numbat is an amazing scientific calculator with units support, and Symbat is fully compatible with its syntax, semantics, and type system. You can check out the official documentation, as well as the tutorial and syntax reference for more information.
  • Notebook-Style Workflow: You can write numbat code in code blocks inside your standard markdown notes that evaluate and render across source mode, live preview, and reading mode. numbat blocks provide isolated contexts, while numbat-shared blocks share state with other such blocks. Evaluation is always replayed in order, so there are no IPython-style evaluation order concerns.
  • Inline Evaluation: You can write numbat expressions in the middle of lines, getting live results as you type. An expression like n`5 km + 3 mi` inlays the result as virtual text, which you can click to bake the value into your notes. An expression like nc`10 cm + 3 in ...` computes the result continuously into the note after a .
  • Note Properties Integration: Note properties can be given the Numbat type, which turns its value into a fully-interactive numbat expression bound into the note's scope. A property distance: 21.1 km makes the query distance -> mi work in any Numbat scope in the note. Nested YAML objects are bound as Numbat structs, which works very well with Better Properties.
  • Imports and Preludes: Symbat lets you numbat-use other notes in your frontmatter to import their properties and shared blocks into your note. You can also specify custom .nbt files as preludes that will be loaded for every context.
  • Interactive Evaluation: Symbat highlights results, errors, and hints inline as you type as inlay hints. You get a truly interactive notebook experience, no matter where you are evaluating Numbat code: it works in properties, inline expressions, blocks, and even Bases cells. Symbat also comes with a REPL that lives in the sidebar, with history, live highlighting, and Numbat's built-in interactive commands.
  • Unicode Completions: Math tends to make heavy use of unicode symbols, so Symbat has integrated Numbat's unicode completer to make typing such things far easier. \alphaα, \piπ, \_2 as you type, without any need to think, and it even plays nicely with Typing Transformer and Shiki.

Not just a Numbat notebook, Symbat integrates a whole host of features for the power user. There is completion for identifiers, keywords, units, dimensions, and types, with signature and documentation help shown clearly, and that works in every context where you can write Numbat code. There is comprehensive hover support, showing information for a symbol you point the mouse at or rest the caret on. Syntax highlighting works in every Numbat expression, providing rich semantic highlighting as you work.

This is accompanied by a notebook scope inspector, which shows every binding that the note contains, allowing you to see its current value and click through to its definition. It has a search box that both searches the note scope and lets you browse the bundled prelude. Symbat also includes an editing mode for .nbt files in Obsidian, allowing you to work with Numbat files natively with all of these power-user tools.

Symbat 1.0.1

Choose a tag to compare

@github-actions github-actions released this 03 Aug 19:00

Some minor fixes to comply with Obsidian's automatic plugin review! Take a look at all the great features from the 1.0.0 release!


Symbat integrates the wonderful Numbat into Obsidian for intereactive, unit-aware, scientific calculation! Key features are:

  • Full Numbat Support: Numbat is an amazing scientific calculator with units support, and Symbat is fully compatible with its syntax, semantics, and type system. You can check out the official documentation, as well as the tutorial and syntax reference for more information.
  • Notebook-Style Workflow: You can write numbat code in code blocks inside your standard markdown notes that evaluate and render across source mode, live preview, and reading mode. numbat blocks provide isolated contexts, while numbat-shared blocks share state with other such blocks. Evaluation is always replayed in order, so there are no IPython-style evaluation order concerns.
  • Inline Evaluation: You can write numbat expressions in the middle of lines, getting live results as you type. An expression like n`5 km + 3 mi` inlays the result as virtual text, which you can click to bake the value into your notes. An expression like nc`10 cm + 3 in ...` computes the result continuously into the note after a .
  • Note Properties Integration: Note properties can be given the Numbat type, which turns its value into a fully-interactive numbat expression bound into the note's scope. A property distance: 21.1 km makes the query distance -> mi work in any Numbat scope in the note. Nested YAML objects are bound as Numbat structs, which works very well with Better Properties.
  • Imports and Preludes: Symbat lets you numbat-use other notes in your frontmatter to import their properties and shared blocks into your note. You can also specify custom .nbt files as preludes that will be loaded for every context.
  • Interactive Evaluation: Symbat highlights results, errors, and hints inline as you type as inlay hints. You get a truly interactive notebook experience, no matter where you are evaluating Numbat code: it works in properties, inline expressions, blocks, and even Bases cells. Symbat also comes with a REPL that lives in the sidebar, with history, live highlighting, and Numbat's built-in interactive commands.
  • Unicode Completions: Math tends to make heavy use of unicode symbols, so Symbat has integrated Numbat's unicode completer to make typing such things far easier. \alphaα, \piπ, \_2 as you type, without any need to think, and it even plays nicely with Typing Transformer and Shiki.

Not just a Numbat notebook, Symbat integrates a whole host of features for the power user. There is completion for identifiers, keywords, units, dimensions, and types, with signature and documentation help shown clearly, and that works in every context where you can write Numbat code. There is comprehensive hover support, showing information for a symbol you point the mouse at or rest the caret on. Syntax highlighting works in every Numbat expression, providing rich semantic highlighting as you work.

This is accompanied by a notebook scope inspector, which shows every binding that the note contains, allowing you to see its current value and click through to its definition. It has a search box that both searches the note scope and lets you browse the bundled prelude. Symbat also includes an editing mode for .nbt files in Obsidian, allowing you to work with Numbat files natively with all of these power-user tools.

Symbat 1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 16:46

The initial version of the Symbat plugin release, integrating the wonderful Numbat into Obsidian for intereactive, unit-aware, scientific calculation! Key features are:

  • Full Numbat Support: Numbat is an amazing scientific calculator with units support, and Symbat is fully compatible with its syntax, semantics, and type system. You can check out the official documentation, as well as the tutorial and syntax reference for more information.
  • Notebook-Style Workflow: You can write numbat code in code blocks inside your standard markdown notes that evaluate and render across source mode, live preview, and reading mode. numbat blocks provide isolated contexts, while numbat-shared blocks share state with other such blocks. Evaluation is always replayed in order, so there are no IPython-style evaluation order concerns.
  • Inline Evaluation: You can write numbat expressions in the middle of lines, getting live results as you type. An expression like n`5 km + 3 mi` inlays the result as virtual text, which you can click to bake the value into your notes. An expression like nc`10 cm + 3 in ...` computes the result continuously into the note after a .
  • Note Properties Integration: Note properties can be given the Numbat type, which turns its value into a fully-interactive numbat expression bound into the note's scope. A property distance: 21.1 km makes the query distance -> mi work in any Numbat scope in the note. Nested YAML objects are bound as Numbat structs, which works very well with Better Properties.
  • Imports and Preludes: Symbat lets you numbat-use other notes in your frontmatter to import their properties and shared blocks into your note. You can also specify custom .nbt files as preludes that will be loaded for every context.
  • Interactive Evaluation: Symbat highlights results, errors, and hints inline as you type as inlay hints. You get a truly interactive notebook experience, no matter where you are evaluating Numbat code: it works in properties, inline expressions, blocks, and even Bases cells. Symbat also comes with a REPL that lives in the sidebar, with history, live highlighting, and Numbat's built-in interactive commands.
  • Unicode Completions: Math tends to make heavy use of unicode symbols, so Symbat has integrated Numbat's unicode completer to make typing such things far easier. \alphaα, \piπ, \_2 as you type, without any need to think, and it even plays nicely with Typing Transformer and Shiki.

Not just a Numbat notebook, Symbat integrates a whole host of features for the power user. There is completion for identifiers, keywords, units, dimensions, and types, with signature and documentation help shown clearly, and that works in every context where you can write Numbat code. There is comprehensive hover support, showing information for a symbol you point the mouse at or rest the caret on. Syntax highlighting works in every Numbat expression, providing rich semantic highlighting as you work.

This is accompanied by a notebook scope inspector, which shows every binding that the note contains, allowing you to see its current value and click through to its definition. It has a search box that both searches the note scope and lets you browse the bundled prelude. Symbat also includes an editing mode for .nbt files in Obsidian, allowing you to work with Numbat files natively with all of these power-user tools.