pull/4/head
Blaž Hrastnik 4 years ago
parent 1dba0f2b1c
commit 8098279676

@ -261,20 +261,11 @@ impl State {
granularity: Granularity,
count: usize,
) -> Selection {
// TODO: move all selections according to normal cursor move semantics by collapsing it
// move all selections according to normal cursor move semantics by collapsing it
// into cursors and moving them vertically
self.selection.transform(|range| {
// let pos = if !range.is_empty() {
// // if selection already exists, bump it to the start or end of current select first
// if dir == Direction::Backward {
// range.from()
// } else {
// range.to()
// }
// } else {
let pos = self.move_pos(range.head, dir, granularity, count);
// };
Range::new(pos, pos)
})
}

@ -45,12 +45,7 @@ impl ChangeSet {
/// In other words, If `this` goes `docA` → `docB` and `other` represents `docB` → `docC`, the
/// returned value will represent the change `docA` → `docC`.
pub fn compose(self, other: ChangeSet) -> Result<Self, ()> {
// TODO: len before should match len after
// if self.len != other.len {
// // length mismatch
// return Err(());
// }
// TODO: len before b should match len after a
let len = self.changes.len();
@ -335,9 +330,6 @@ impl ChangeSet {
}
}
// trait Transaction
// trait StrictTransaction
/// Transaction represents a single undoable unit of changes. Several changes can be grouped into
/// a single transaction.
#[derive(Debug, Clone)]

@ -52,7 +52,6 @@ impl Editor {
size,
surface: Surface::empty(area),
cache: Surface::empty(area),
// TODO; move to state
};
if let Some(file) = args.values_of_t::<PathBuf>("files").unwrap().pop() {
@ -225,15 +224,7 @@ impl Editor {
// lavender
}
// let lines = state
// .doc
// .lines_at(self.first_line as usize)
// .take(self.size.1 as usize)
// .map(|x| x.as_str().unwrap());
// // iterate over selections and render them
// let select = Style::default().bg(tui::style::Color::LightBlue);
// let text = state.doc.slice(..);
// for range in state.selection.ranges() {
// // get terminal coords for x,y for each range pos
// // TODO: this won't work with multiline
@ -246,8 +237,6 @@ impl Editor {
// (y2 - y1 + 1) as u16,
// );
// self.surface.set_style(area, select);
// // TODO: don't highlight next char in append mode
// }
// statusline
@ -330,13 +319,13 @@ impl Editor {
}
Some(Ok(Event::Key(event))) => {
// TODO: sequences (`gg`)
// TODO: handle count other than 1
if let Some(view) = &mut self.view {
match view.state.mode() {
Mode::Insert => {
// TODO: handle modes and sequences (`gg`)
let keys = vec![event];
if let Some(command) = keymap[&Mode::Insert].get(&keys) {
// TODO: handle count other than 1
command(view, 1);
} else if let KeyEvent {
code: KeyCode::Char(c),
@ -350,10 +339,8 @@ impl Editor {
self.render();
}
Mode::Normal => {
// TODO: handle modes and sequences (`gg`)
let keys = vec![event];
if let Some(command) = keymap[&Mode::Normal].get(&keys) {
// TODO: handle count other than 1
command(view, 1);
// TODO: simplistic ensure cursor in view for now

@ -25,7 +25,7 @@ impl View {
let view = Self {
state,
first_line: 0,
size, // TODO: pass in from term
size,
theme,
history: History::default(),
};

Loading…
Cancel
Save