Basic functions
This commit is contained in:
parent
5a6f7d7581
commit
90dc2d4a53
@ -26,6 +26,13 @@ impl Mode {
|
|||||||
self.mode == *mode
|
self.mode == *mode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn mode_info(&self) -> nvim::ModeInfo {
|
||||||
|
self.info
|
||||||
|
.as_ref()
|
||||||
|
.and_then(|i| i.get(self.idx).cloned())
|
||||||
|
.unwrap_or_else(nvim::ModeInfo::default)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn update(&mut self, mode: &str, idx: usize) {
|
pub fn update(&mut self, mode: &str, idx: usize) {
|
||||||
match mode {
|
match mode {
|
||||||
"normal" => self.mode = NvimMode::Normal,
|
"normal" => self.mode = NvimMode::Normal,
|
||||||
|
19
src/nvim.rs
19
src/nvim.rs
@ -106,7 +106,7 @@ macro_rules! map_array {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum CursorShape {
|
pub enum CursorShape {
|
||||||
Block,
|
Block,
|
||||||
Horizontal,
|
Horizontal,
|
||||||
@ -132,13 +132,20 @@ impl CursorShape {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct ModeInfo {
|
pub struct ModeInfo {
|
||||||
cursor_shape: Option<CursorShape>,
|
cursor_shape: Option<CursorShape>,
|
||||||
cell_percentage: Option<u64>,
|
cell_percentage: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ModeInfo {
|
impl ModeInfo {
|
||||||
|
pub fn default() -> Self {
|
||||||
|
ModeInfo {
|
||||||
|
cursor_shape: Some(CursorShape::Block),
|
||||||
|
cell_percentage: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn new(mode_info_arr: &Vec<(Value, Value)>) -> Result<Self, String> {
|
pub fn new(mode_info_arr: &Vec<(Value, Value)>) -> Result<Self, String> {
|
||||||
let mode_info_map = mode_info_arr.to_attrs_map()?;
|
let mode_info_map = mode_info_arr.to_attrs_map()?;
|
||||||
|
|
||||||
@ -159,6 +166,14 @@ impl ModeInfo {
|
|||||||
cell_percentage,
|
cell_percentage,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn cursor_shape(&self) -> CursorShape {
|
||||||
|
self.cursor_shape.as_ref().cloned().unwrap_or(CursorShape::Block)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn cell_percentage(&self) -> u64 {
|
||||||
|
self.cell_percentage.unwrap_or(100)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
Loading…
Reference in New Issue
Block a user