diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-09-19 22:33:44 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-09-19 22:33:44 -0700 |
commit | f32e575e387859af74f7023f9f02b32dee839962 (patch) | |
tree | 6c8c7115a8d0397f2154338c786308fa1c0f96a0 /apps/tile/gap-buffer.mu | |
parent | 4449f4878138e2d7baa2b227098e2d03d0342f39 (diff) | |
download | mu-f32e575e387859af74f7023f9f02b32dee839962.tar.gz |
6811 - tile: left-cursor movement
Displayed cursor position is not yet correct, but insertions happen at the right cursor position.
Diffstat (limited to 'apps/tile/gap-buffer.mu')
-rw-r--r-- | apps/tile/gap-buffer.mu | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/apps/tile/gap-buffer.mu b/apps/tile/gap-buffer.mu index 75f88122..96e39aed 100644 --- a/apps/tile/gap-buffer.mu +++ b/apps/tile/gap-buffer.mu @@ -114,6 +114,18 @@ fn gap-to-end self: (addr gap-buffer) { } } +fn gap-at-start? _self: (addr gap-buffer) -> result/eax: boolean { + var self/esi: (addr gap-buffer) <- copy _self + var left/eax: (addr grapheme-stack) <- get self, left + result <- grapheme-stack-empty? left +} + +fn gap-at-end? _self: (addr gap-buffer) -> result/eax: boolean { + var self/esi: (addr gap-buffer) <- copy _self + var right/eax: (addr grapheme-stack) <- get self, right + result <- grapheme-stack-empty? right +} + fn gap-right _self: (addr gap-buffer) -> result/eax: grapheme { $gap-right:body: { var self/esi: (addr gap-buffer) <- copy _self |