added high cursor and show cursor
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -2,7 +2,7 @@
|
|||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansi-parser"
|
name = "ansi-parser"
|
||||||
version = "0.5.0"
|
version = "0.5.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
11
src/enums.rs
11
src/enums.rs
@@ -16,13 +16,14 @@ pub enum AnsiSequence {
|
|||||||
SetGraphicsMode(Vec<u32>),
|
SetGraphicsMode(Vec<u32>),
|
||||||
SetMode(u8),
|
SetMode(u8),
|
||||||
ResetMode(u8),
|
ResetMode(u8),
|
||||||
// HideCursor,
|
HideCursor,
|
||||||
|
ShowCursor
|
||||||
}
|
}
|
||||||
|
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
impl Display for AnsiSequence {
|
impl Display for AnsiSequence {
|
||||||
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
|
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
|
||||||
write!(formatter, "\x1b[")?;
|
write!(formatter, "\u{1b}[")?;
|
||||||
|
|
||||||
use AnsiSequence::*;
|
use AnsiSequence::*;
|
||||||
match self {
|
match self {
|
||||||
@@ -56,7 +57,11 @@ impl Display for AnsiSequence {
|
|||||||
SetMode(mode)
|
SetMode(mode)
|
||||||
=> write!(formatter, "={}h", mode),
|
=> write!(formatter, "={}h", mode),
|
||||||
ResetMode(mode)
|
ResetMode(mode)
|
||||||
=> write!(formatter, "={}l", mode)
|
=> write!(formatter, "={}l", mode),
|
||||||
|
ShowCursor
|
||||||
|
=> write!(formatter, "?25h"),
|
||||||
|
HideCursor
|
||||||
|
=> write!(formatter, "?25l")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -159,6 +159,22 @@ named!(
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
named!(
|
||||||
|
hide_cursor<&str, AnsiSequence>,
|
||||||
|
do_parse!(
|
||||||
|
tag!("?25l") >>
|
||||||
|
(AnsiSequence::HideCursor)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
named!(
|
||||||
|
show_cursor<&str, AnsiSequence>,
|
||||||
|
do_parse!(
|
||||||
|
tag!("?25h") >>
|
||||||
|
(AnsiSequence::ShowCursor)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
named!(
|
named!(
|
||||||
combined<&str, AnsiSequence>,
|
combined<&str, AnsiSequence>,
|
||||||
alt!(
|
alt!(
|
||||||
@@ -174,6 +190,8 @@ named!(
|
|||||||
| graphics_mode
|
| graphics_mode
|
||||||
| set_mode
|
| set_mode
|
||||||
| reset_mode
|
| reset_mode
|
||||||
|
| hide_cursor
|
||||||
|
| show_cursor
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user