Spreadsheet management application implemented on Halogen aiming to provide an extensible, expressive and simple to use platform for data visualization, analysis and exploration.
-
[✔️] Provide a no frills, minimalistic GUI supporting all basic spreadsheet functionality regarding navigation, cell management, formula evaluation & automatic cell updates.
-
[✔️] Develop a high level pure functional dynamic formula language interpreted at the browser, that supports currying, patterns and guards with expresiveness similar to the term level language in Haskell or Purescript, albeit with familiar syntax and idioms to popular spreadsheet applications and mainstream languages.
-
[✔️] Expose a prelude library with commonly used functions and operators, loaded at startup.
-
[✔️] Support formula edition with syntax highlighting and function signatures for the current function at the cursor.
-
[✔️] Support IDE like autocomplete for imported and module aliased top-level functions and operators.
-
[✔️] Surface an Explorer view to query by function name, signature (in a similar fashion to Hoogle / Pursuit) or a input / output example and see all global functions & operators along with their documentation on a per module basis.
-
[✔️] Support Go to documentation on the formula editor for modules, functions & operators.
-
[✔️] Persist user defined formulas, spreadsheet data, functions & operators in the browser local storage.
-
[✔️] Format automatically formulas when evaluated and functions when created.
-
[✔️] Add the capability for a user to create, modify or delete global functions & operators through an auxiliary modal in the Explorer view.
-
Enable the use of formulas for filtering & sorting rows.
-
Support authenticated persistence & retrieval from a catalog of private spreadsheets via a future backend.
-
Support Import & Export of spreadsheets from and to Excel and Google Sheets with the proper mapping of cell values & formulas.
See the Function explorer.
Key Combination | Action |
---|---|
Control + J |
Next view |
Control + K |
Previous view |
Key Combination | Action |
---|---|
↑ ↓ ← → | Cell navigation |
h j k l |
Cell navigation (Vim like) |
Shift + ↑ ↓ ← → |
Cell selection |
Shift + Hover |
Cell selection |
Tab |
Go to next cell |
Shift + Tab |
Go to previous cell |
Enter |
Edit cell value |
Control + Enter |
Edit formula |
Backspace |
Delete cell/s |
Control + G |
Go to cell |
Control + A |
Select all cells |
Control + C |
Copy cell/s |
Control + V |
Paste cell/s |
Control + X |
Cut cell/s |
Key Combination | Action |
---|---|
Tab |
Switch out of editor |
Control + Enter |
Submit formula |
Enter |
Autocomplete with current suggestion |
↑ | Previous autocomplete suggestion |
↓ | Next autocomplete suggestion |
Shift + Tab |
Previous autocomplete suggestion |
Tab |
Next autocomplete suggestion |
Control + Click |
Go to function / module documentation |
Control + D |
Go to function / module documentation |
Key Combination | Action |
---|---|
Control + M |
Switch module |
Control + F |
Search for function |
↑ ↓ | Previous / next function |
Shift + Tab Tab |
Previous / next function |
Note: Control
bindings also match the Command
key on Mac OS.
First, clone the repository:
$ git clone https://github.com/albertprz/puresheet
$ cd puresheet
Then, install the necessary dependencies via npm
:
$ npm install
Finally build the project and launch it in localhost:
$ npm run build
$ npm run serve