This repository demonstrates how to use SoulverCore to build a simple Soulver-like app for macOS.
The sample demonstrates:
- How to set up a Soulver-like view in AppKit (using a text view, a table view and a split view)
- How to use the provided
LineCollectionEditingHelper
object to efficiently synchronize from a text view to aLineCollection
- How to use the
TokenListSemantics
to syntax color the expressions in your text view
- macOS 15+
- SoulverCore framework (closed-source) - evaluates natural language math expressions
- TextActions (open source) - determines which lines in an ordered collection need inserting/updating/deleting after a text view edit
These 4 tasks are the essence of a Soulver-like calculation view:
- Capture proposed edits to the text view and let the line collection editing helper know exactly which part of the text is changing
- After the edit has happen (and the underlying text has changed) let the helper know. It will efficiently update the line collection model, evaluate any changes lines, and report what line indexes need redrawing in the view
- Refresh required cells in the table with the new results, and syntax color the lines in the text view that have changed
- (Optional) Update downsteam "dependent" lines in the model (if you support variables), and refresh the cells of those lines too
The source code in this repository is released under the MIT License. You are free to use, modify, and distribute this code for any purpose, including commercial applications.
Important: SoulverCore is a closed-source, proprietary framework that requires a separate commercial license for commercial use cases.
- Personal/Educational Use: Free for non-commerical personal projects and educational purposes
- Commercial Use: Requires a commercial license from Acqualia Software
Please see the SoulverCore repository for more information.
Copyright © 2025 Acqualia Software. All rights reserved.