Ben White-Horne
Ben White-Horne
Rewrite of Sapling's initial prototype. The main change is that ASTs are now stored as concrete trees (i.e. trees of formatted tokens) specified by dynamically loaded `Grammar`s. This means that,...
To make implementation easier, the different modes in Sapling are implemented as a state machine (technically a DFA). So each 'mode' should have a struct which implements [`editor::state::State`](https://github.com/kneasle/sapling/blob/master/src/editor/state.rs#L28) (like [`editor::normal_mode::State`](https://github.com/kneasle/sapling/blob/1c57e649bce8539b224e79e93d7464784148facd/src/editor/normal_mode.rs#L30))....
Ideally, we'd have `log::trace!` in every function, and `log::debug!` when debug output might be useful.
Suppose that the cursor is over a field in an object (cursor in ``): ```json { } ``` If we type `rt` at this point will result in the following...
Currently there is no good documentation for how `Path`s are used to traverse trees. This is fairly non-trivial and for the longevity of Sapling it would be good to document...
As said in the README, this is a very difficult challenge. I believe that the closest project to this is [tree-sitter](https://github.com/tree-sitter/tree-sitter), and to be pragmatic I think that (at least...
Currently, Sapling will never free up space in the arena even if history is rewritten and some trees will never be reached. This is essentially a memory leak, and will...
Currently `ImageBuffer` uses `#[derive(Debug)]`, which prints something like this (where every channel of every pixel is printed): ``` ImageBuffer { width: 64, height: 64, _phantom: PhantomData, data: [ 0, 0,...
I'm not sure why this is happening, but when I use tuikit in a Rust application the cursor in my terminal disappears after I run that Rust application. So as...
Currently, the [minor mode sections of the book](https://docs.helix-editor.com/keymap.html#view-mode) don't actually contain the key needed to reach them. Finding this requires an unpleasant amount of forward/backward searching. So this PR adds...