Updated readme
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Joe Bellus 2022-10-16 22:02:28 -04:00
parent 1c1b4f74f6
commit 211cdbeea8
2 changed files with 53 additions and 0 deletions

View File

@ -48,3 +48,16 @@ cargo run
#+end_src
* Project Status
Abacus is currently in early development. It employs a custom built editor which can be slightly odd at times. A primary focus currently is improving the editing experience and adding additional scripting functionality.
** Road map
[x] Editor basics
[x] Scripting basics - Scripting functionality provided by extending the Rhai scripting language
[x] Dataframe support - Pandas style dataframe support via the Polars framework
[x] CSV Support - Importing and processing large CSV files
[ ] Editor improvements - Improve editor to mirror basic VIM functionality and fix text/cursor related bugs
[ ] Math functions - Implement common mathmatical functions and constants into the scripting language
[ ] Dataframe performance - Reduce the performance cost of converting from the scripting engine to polars
[ ] Web/JSON support - Add HTTP requesting functionality and JSON parsing/processing to the scripting engine

View File

@ -5,3 +5,43 @@ Abacus UI is the desktop GUI for [[../][Abacus]].
For General information visit [[../][Abacus]]
For information on the scripting visit [[../abacus-core/][Abacus Core]]
* Blocks
The editor is separated into multiple /BLOCKS/. These blocks can be used to perform separate, related calculations. Each block can have a single output, which is the returned value from the block.
All blocks share the same global scope, meaning variables, functions, etc defined in a block are available to subsequent blocks.
* Modal editing
Abacus's editor is a modal editor that tries to follow VIM keybinds. The editor has two functional modes:
** Normal mode
In normal mode the cursor is a block and functional keybinds can be used for movement.
*** Normal mode keybinds
| Key | Action |
| i | Enter insert mode |
| h | Cursor left |
| j | Cursor down |
| k | Cursor up |
| l | Cursor right |
| A | Cursor to end of line and enter insert mode |
| I | Cursor to beginning of line and enter insert mode |
| O | Insert new line below and enter insert mode |
| o | Insert new line above and enter insert mode |
| b | Scan backward a word |
| w | Scan forward a word |
| v | Mark selection |
| x | Delete current character or selection |
** Insert mode
In insert mode the cursor is a line and text can be edited. To return to normal mode use the ESC key.
* General Keybinds
These keybinds can be used in any mode
| Key | Action |
| CTRL+C | Copy current selection to clipboard |
| CTRL+V | Paste clipboard at cursor |
| CTRL+N | Create a new block |
| CTRL+ENTER | Run all blocks |
| SHIFT+ENTER | Run the current block |