- General
- Move rows and columns
- Project title
- Service worker for caching
- Process formulas in web worker?
- Lazily render cells
- Typescript
- Work on multiple monitors
- XSS and phishing disclaimer
- File menu at the top
- CSV import and export
- Button to reset window locations
- Import from Google Sheets
- Export to Google Sheets
- Formula draggy thing
- Reformat for printing and export
- Formula inline edit textarea can grow and is visible above other cells
- Separate logging system with tracebacks for formula errors
- Toolbar with buttons (editable)
- Click cell while editing formula to insert it
- Add conveniences for LLMs
- Event hooks
- Zoom out extra on mobile, but only cells and code, not UI elements
- Frozen rows and columns
- Toggle off automatic cell updates
- Change default styles for all cells in code editor
- Highlight referenced cells when in insert mode
- Cells can run functions in a destructor
- Context menu as last child of body, gets moved by right click
- Render tables to images to save and share screenshots
- Settings input with numeric input and buttons on either side
- CSP to restrict
worker-src
(except that we don't want to block web workers, only service workers)
- Clipboard integration
- Cut
- Fix "put" behavior to copy formulas around to selection
- Settings window
- Change colors
- Change debounce save timeouts
- Change number of recalculations for self-referential cells
- Whether Ctrl+c cancels or copies
- Whether Ctrl+v vertically selects or pastes
- Window system
- Track state
- List of Windows
- Window position (x, y)
- Per window
- Open/closed
- Minimized
- Title
- HTML contents
- Snapped or free
- Title bar
- List open and minimized windows at the bottom
- Snap windows
- Focus order for z-index stacking
- Track state
- Code editor
- Syntax highlighting
- Auto-complete quotes, parentheses, etc.
- Indent extra between quotes, parentheses, etc.
- Turn on manual save instead of auto save
- Save indicator
- Save/load window
- Add share buttons using
navigator.share
- Add download button
- Register Code Grid to open PNG files as PWA
- Preview before loading
- Load button
- Display load errors
- Paste image
- Load from URL (CSV, JSON)
- Add share buttons using
- Formula processing
- "symbols" in formulas
- Namespaced formula functions
- Make parsing faster
- Hand-written recursive descent
- Local storage
- Save sheets
- Load sheets
- Display tutorial on first visit
- Tree-based revision control (use IndexDB?)
- Store encrypted sheets
- Personal library of formula functions
- Standard library formula functions
- LOCK
- LIST
- PYTHON
- PRINTF
- REGEX
- JQ
- LINK/URL
- DEBUG?
- Standard way to include external scripts and wait for them to load
- Python formulas using pyodide
- Keyboard shortcuts
- Cmd + arrow keys
- Stay in insert mode when cells clicked
- Editable keybindings by importing objects and having them in scope at eval
- Tab stays in insert mode
- Navigate windows/sheets
- gt and gT
- i3 type key commands
- Vim keybindings in code editor
- I, a, and A
- H, M, L
- W, E, B
- Ctrl+u and ctrl+d
- Refactor keyboard shortcuts
- Number + gg
- y and yy (and y with all motions) and p and P
- Different registers for yank buffers
- d and c and cc and S (along with dw, de, db, cw, ce, cb, etc.)
- r and R
- J
- Visual mode o and O
>>
and<<
and insert mode Ctrl+t and ctrl+d and visual mode > and <- Ctrl+i and ctrl+o and g; and g,
- Searching, finding, and replacing
- Record macros
- Allow remapping
- Testing
- Playwright
- Integrate Playwright coverage with vitest coverage
- Test parsers and classes in formulas
- Push to versioned folders on Pages based on git tags
- Documentation
- README
- Description and introduction
- Examples
- Known Issues
- Tutorial
- README
- Bugs
- Cannot select on mobile
- Is this necessary to fix?
- Scrolling up or left with selection doesn't work, scrolling down and right
only kind of works
- Will be fixed automatically when lazy scrolling
- Context menu does not activate on iOS
- Manually have to detect long press
- The bottom border of sheet tabs do not adjust after renaming
- Will be fixed automatically when using windows instead of tabs
- Reference value changes re-run, but argument function calls to set don't force re-run
- history.pushstate with non-cloneable values fails
- Copy/paste does not always work
- Line numbers have small lag on scroll
- Special keys bar buttons cause active element blur when double tapped on iOS
- Side-scrolling special keys bar on iOS inserts on pointer up
- Special keys bar and formula bar is scrollable on mobile, even with
touch-action: none
- needs touch handler with preventDefault to stop vertical scrolling - Accidentally typing "RC" while typing another formula can cause everything to hang
- Cannot select on mobile