Make mode visible in input/logs panel

Also, map ":q" to "quit" action.

Ref: https://github.com/sayanarijit/xplr/issues/158
pull/191/head
Arijit Basu 3 years ago committed by Arijit Basu
parent db669cdcbf
commit aa7a441751

@ -1353,6 +1353,12 @@ xplr.config.modes.builtin.action = {
}, },
"Refresh" "Refresh"
} }
},
["q"] = {
help = "quit",
messages = {
"Quit",
}
} }
}, },
on_alphabet = nil, on_alphabet = nil,

@ -27,6 +27,14 @@ lazy_static! {
pub static ref DEFAULT_STYLE: TuiStyle = TuiStyle::default(); pub static ref DEFAULT_STYLE: TuiStyle = TuiStyle::default();
} }
fn read_only_indicator(app: &app::App) -> &str {
if app.config().general().read_only().unwrap_or_default() {
"(r)"
} else {
""
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)] #[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(deny_unknown_fields)] #[serde(deny_unknown_fields)]
pub struct LayoutOptions { pub struct LayoutOptions {
@ -686,16 +694,14 @@ fn draw_help_menu<B: Backend>(
}) })
.collect::<Vec<Row>>(); .collect::<Vec<Row>>();
let read_only_indicator = if app.config().general().read_only().unwrap_or_default() {
"(r)"
} else {
""
};
let help_menu = Table::new(help_menu_rows) let help_menu = Table::new(help_menu_rows)
.block(block( .block(block(
config, config,
format!(" Help [{}{}] ", &app.mode().name(), read_only_indicator), format!(
" Help [{}{}] ",
&app.mode().name(),
read_only_indicator(app)
),
)) ))
.widths(&[ .widths(&[
TuiConstraint::Percentage(20), TuiConstraint::Percentage(20),
@ -738,7 +744,14 @@ fn draw_input_buffer<B: Backend>(
app.config().general().cursor().style().clone().into(), app.config().general().cursor().style().clone().into(),
), ),
])) ]))
.block(block(config, " Input ".into())); .block(block(
config,
format!(
" Input [{}{}] ",
app.mode().name(),
read_only_indicator(app)
),
));
f.render_widget(input_buf, layout_size); f.render_widget(input_buf, layout_size);
} }
@ -887,7 +900,15 @@ fn draw_logs<B: Backend>(
.collect::<Vec<ListItem>>() .collect::<Vec<ListItem>>()
}; };
let logs_list = List::new(logs).block(block(config, format!(" Logs ({}) ", app.logs().len()))); let logs_list = List::new(logs).block(block(
config,
format!(
" Logs ({}) [{}{}] ",
app.logs().len(),
app.mode().name(),
read_only_indicator(app),
),
));
f.render_widget(logs_list, layout_size); f.render_widget(logs_list, layout_size);
} }

Loading…
Cancel
Save