about summary refs log tree commit diff stats
path: root/baremetal/shell/gap-buffer.mu
Commit message (Collapse)AuthorAgeFilesLines
* 7787 - baremetal/shell: moving cursor into traceKartik K. Agaram2021-02-221-0/+7
|
* 7780Kartik K. Agaram2021-02-211-0/+52
| | | | | | Start trimming whitespace from the input. It's probably a bad idea to rebuild all our primitives for gap buffers.
* 7770 - baremetal/shell: scanning through gap bufferKartik K. Agaram2021-02-211-1/+162
|
* 7769Kartik K. Agaram2021-02-211-1/+0
|
* 7763 - baremetal/shell: newlineKartik K. Agaram2021-02-201-11/+23
|
* 7761 - baremetal/shell: read input from keyboardKartik K. Agaram2021-02-201-8/+8
|
* 7709Kartik K. Agaram2021-02-091-8/+12
| | | | | | | Fix the jarringness in the previous commit. Gap buffers now always occupy the same width on screen regardless of where their cursor is. The price: we sometimes have more whitespace between words. But that is perhaps a good thing.
* 7708 - baremetal/shell: word data structureKartik K. Agaram2021-02-091-1/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not everything here is tested, but enough that I'm starting to feel confident. We see our first divergence with apps/tile. In apps/tile we render everything, then go back and figure out where to position the cursor. This relies on some low-level smarts and is also quite klunky and complex. In baremetal/shell I plan to do something simpler: maintain a tree of objects where each level knows which sub-object under it has the cursor. Now I can pass in the cursor object to each object, and if it detects that it has the cursor it can recursively figure out which sub-object has the cursor. The bottom-most objects (grapheme stacks) draw the cursor as they render themselves. Single-pass algorithm, draw the cursor as you render, no low-level smarts needed. But there's a divergence. What in apps/tile used to look like this, with a cursor ␣ at the end of the word 'abc': abc␣def ..now looks like this: abc␣ def ..with an extra space. This could cause some jarring 'dancing' as you move the cursor through a list of words.
* 7707Kartik K. Agaram2021-02-091-0/+14
|
* 7706Kartik K. Agaram2021-02-091-9/+6
|
* 7704Kartik K. Agaram2021-02-091-6/+6
|
* 7703Kartik K. Agaram2021-02-091-0/+3
|
* 7702Kartik K. Agaram2021-02-091-2/+2
|
* 7699Kartik K. Agaram2021-02-081-0/+423
Gap buffer with a more testable interface for rendering to screen.