Basic editing
This commit is contained in:
parent
cb2511adf2
commit
20b5c0735d
1 changed files with 17 additions and 7 deletions
22
src/main.rs
22
src/main.rs
|
@ -13,6 +13,7 @@ struct Nuudel {
|
||||||
cursorx: u16,
|
cursorx: u16,
|
||||||
cursory: u16,
|
cursory: u16,
|
||||||
buffer: Buffer,
|
buffer: Buffer,
|
||||||
|
filename: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
@ -31,7 +32,13 @@ fn main() -> Result<()> {
|
||||||
// Basic stuff
|
// Basic stuff
|
||||||
let mut nuudel = Nuudel::default();
|
let mut nuudel = Nuudel::default();
|
||||||
Nuudel::init_terminal()?;
|
Nuudel::init_terminal()?;
|
||||||
nuudel.open_file("Cargo.toml")?;
|
|
||||||
|
// Handle args
|
||||||
|
let args: Vec<String> = std::env::args().collect();
|
||||||
|
if let Some(arg) = args.get(1) {
|
||||||
|
nuudel.open_file(arg)?;
|
||||||
|
}
|
||||||
|
|
||||||
nuudel.run(&mut stdout())?;
|
nuudel.run(&mut stdout())?;
|
||||||
Nuudel::restore_terminal()?;
|
Nuudel::restore_terminal()?;
|
||||||
|
|
||||||
|
@ -68,12 +75,9 @@ impl Nuudel {
|
||||||
fn handle_events(&mut self) -> Result<()> {
|
fn handle_events(&mut self) -> Result<()> {
|
||||||
match read()? {
|
match read()? {
|
||||||
Event::Key(event) => match event.code {
|
Event::Key(event) => match event.code {
|
||||||
KeyCode::Char('q') => {
|
KeyCode::Esc => {
|
||||||
self.quit();
|
self.quit();
|
||||||
},
|
},
|
||||||
KeyCode::Char('a') => {
|
|
||||||
print!("█");
|
|
||||||
},
|
|
||||||
KeyCode::Left => {
|
KeyCode::Left => {
|
||||||
if self.cursorx > 0 {
|
if self.cursorx > 0 {
|
||||||
self.cursorx -= 1;
|
self.cursorx -= 1;
|
||||||
|
@ -94,6 +98,11 @@ impl Nuudel {
|
||||||
self.cursory += 1;
|
self.cursory += 1;
|
||||||
self.cursory = self.cursory.clamp(0, terminal::size()?.1-1);
|
self.cursory = self.cursory.clamp(0, terminal::size()?.1-1);
|
||||||
},
|
},
|
||||||
|
KeyCode::Char(_) => {
|
||||||
|
self.buffer.lines[usize::try_from(self.cursory).unwrap()].insert(self.cursorx.into(), 'A');
|
||||||
|
self.cursorx += 1;
|
||||||
|
|
||||||
|
},
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -120,7 +129,7 @@ impl Nuudel {
|
||||||
stdout.execute(cursor::MoveToNextLine(1))?;
|
stdout.execute(cursor::MoveToNextLine(1))?;
|
||||||
y += 1;
|
y += 1;
|
||||||
}
|
}
|
||||||
print!("Press Q to quit");
|
print!("Press ESC to quit");
|
||||||
|
|
||||||
//stdout.execute(terminal::EndSynchronizedUpdate)?;
|
//stdout.execute(terminal::EndSynchronizedUpdate)?;
|
||||||
stdout.execute(cursor::MoveTo(self.cursorx, self.cursory))?;
|
stdout.execute(cursor::MoveTo(self.cursorx, self.cursory))?;
|
||||||
|
@ -136,6 +145,7 @@ impl Nuudel {
|
||||||
.lines()
|
.lines()
|
||||||
.map(String::from)
|
.map(String::from)
|
||||||
.collect();
|
.collect();
|
||||||
|
self.filename = filename.to_string();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue