Line Editor¶
The line editor provides a simple interface for allowing the user to edit input without the limitations in the normal refill mechanism. It provides both input history and a clipboard that is filled by deleting/cutting text. When enabled, the following keys can be used to control editing:
Backspace: delete/cut the character to the left of the cursor
Delete: delete/cut the character under the cursor
Left / Control-B: move the cursor one character to the left
Right / Control-F: move the cursor one character to the right
Up: switch to the previous line in the history
Down: switch to the next line in the history
Control-A: move the cursor to the start of the input
Control-E: move the cursor to the end of the input
Control-L: reset the terminal
Control-K: delete/cut to the end of the line from the cursor
Control-U: delete/cut to the start of the line from the cursor
Control-W: delete/cut to the start of the preceding word delimited by whitespace from the cursor
Control-Y: paste the current clipboard at the cursor
F1: enter upload mode, where line editing features are turned off
F2: leave upload mode and re-enable line editing features; this must be entered as the first key entered on a line
Note that tabs and characters of code points greater than 127 are handled correctly. Also note that it is not compatible with non-terminal operation except when in upload mode, i.e. with loading code automatically via serial or swdcom; before this is done one must be in upload mode or it must be disabled.
After a reboot, it is initialized for the main task only, and if, when enabled, refill is used for a different task, it needs to have already been initialized for that task.
line¶
The following words are in line:
init-line¶
( index-ptr count-ptr buffer-ptr buffer-size – )
Enable the line editor for the current task, with a pointer to the index variable, a poiner to the count variable, a pointer to the input buffer, and a size of the input buffer provided. Note that it allots memory in the current task’s dictionary.
forth¶
The following words are in forth:
enable-line¶
( – )
Enable the line editor.
disable-line¶
( – )
Disable the line editor. This must be done before loading code automatically.