A Clojure-driven spreadsheet
Maturity level: early development, works OK for simple cases, no releases yet.
F2to edit cell content in the code editor (at the top of the grid)Escwhile in cell editor to go back to gridEnterwhile in cell editor to apply your changeCtrl+Enterwhile in cell editor to enter a newlineCtrl+E(Windows/Linux) orCmd+E(Mac) to show cell value/cell error area (at the bottom of the frame)
- Saving
- Loading
- main function and package as a jar (WIP test on Windows)
- (WIP) Code editor: parinfer
- UI for layers: disable/enable, re-order, change options
- autofill: fill cells by increasing numbers in cell references in code
- "Import" or "layer" CSV files, pandas dataframe
- Cell editing: sync editor with cell display, maybe overwrite when in cell
- copy/paste cell value, copy/paste cell formula
- export CSV
- Insert row
- Insert column
- Keyboard shortcuts (for windows too)
- Aliases: user input validation with meaningful errors
- named cells?
- multiple selections rendered ok, but confusing behaviour when starting to edit
- multiple sheets
- return formatted cell
- return clickable cell
- user-visible logging
- remember cursor position in code editor after hitting
enter - freeze rows and show as header
- select whole column/row
- select multiple columns/rows by clicking and dragging in the headers
- deps: disable all while working
- Row/col resize: double click to change size to content
- provide a way to make a cell value
niland a way to make it"" - Aliases: autocomplete??
- Aliases/text editors: Ctrl+A, Ctrl+E, Ctrl+Z
- save/load column/row widths
- trace errors with arrows
- maybe merge interface for deps and aliases?
- inputs with data structure literals should maintain their formatting for better editing
- highlight focused column (as with focused row)
- a bit more work on row resize mouse behaviour
- re-order columns
- render vector and set values with monospaced font in grid
- split result (down/right)
- split arrows (down/right)
- split let?
- lazy graph
- whole-column functions
- relative references in formulas
- show CSVs of any size based on random access
- non-expanded range dependencies
- export spreadsheet as some sort of Clojure code
- some meta madness like spreadsheet-in-a-cell
- defer: run when I click
- defer: run every x seconds
- Bug: Cells without deps (such as
(+ 1 2)) don't get calculated - Bug: Fix calculations happening on the swing thread
- Bug: Fix save/load after state refactoring
- Bug: Try editing some multi-line code and hitting
enter. The whole grid flickers. If you holdenteryou hit a concurrency exception that readsjava.lang.IllegalArgumentException: Column index out of range. - Bug: Impossible to switch cells out of errored state
- Fit column (double click) does not work for strings
- Cell slices in formulas
- Code editor: multiline support
- Cell editing: design interaction with code editor, F2
- Grid: proper row header
- Errors: error handling in cells (and GUI to diplay stacktraces)
- Errors: handle compile errors in cells
- Aliases for namespaces + GUI + saving as part of files - WIP
- Aliases: maybe require namespaces?
- deps: all-lib for adding dependencies on the fly + GUI + saving as part of files
- fix glass pane clipping
- Bug: Having lots of rows make startup slow because row header doesn't seem to be lazy
- Bug: Fix selection after cell value has been updated
- Bug: Once you've entered a function in a cell, you can't replace it with a scalar value
- deps: re-used editor for deps should be wired for newlines etc
- show pretty-printed value in error area when there is no error
- show cell id on the left of code editor
- Row header: resize row height individually
- Row header: resize row height uniformly
- Aliases: prevent opening more than one frame
Copyright © 2018 Stathis Sideris
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.