mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-25 19:03:30 +04:00
tui: Log keyboard enhancement query time
In my testing this takes around 3-4ms in terminals that support the enhanced keyboard protocol (Kitty, WezTerm) and a few hundred microseconds in terminals that don't (st, Alacritty).
This commit is contained in:
parent
611701c362
commit
563ac1a3cb
@ -76,7 +76,18 @@ pub fn new(buffer: W) -> CrosstermBackend<W> {
|
||||
#[inline]
|
||||
fn supports_keyboard_enhancement_protocol(&self) -> io::Result<bool> {
|
||||
self.supports_keyboard_enhancement_protocol
|
||||
.get_or_try_init(terminal::supports_keyboard_enhancement)
|
||||
.get_or_try_init(|| {
|
||||
use std::time::Instant;
|
||||
|
||||
let now = Instant::now();
|
||||
let support = terminal::supports_keyboard_enhancement();
|
||||
log::debug!(
|
||||
"The keyboard enhancement protocol is {}supported in this terminal (checked in {:?})",
|
||||
if matches!(support, Ok(true)) { "" } else { "not " },
|
||||
Instant::now().duration_since(now)
|
||||
);
|
||||
support
|
||||
})
|
||||
.copied()
|
||||
}
|
||||
}
|
||||
@ -111,7 +122,6 @@ fn claim(&mut self, config: Config) -> io::Result<()> {
|
||||
execute!(self.buffer, EnableMouseCapture)?;
|
||||
}
|
||||
if self.supports_keyboard_enhancement_protocol()? {
|
||||
log::debug!("The enhanced keyboard protocol is supported on this terminal");
|
||||
execute!(
|
||||
self.buffer,
|
||||
PushKeyboardEnhancementFlags(
|
||||
@ -119,8 +129,6 @@ fn claim(&mut self, config: Config) -> io::Result<()> {
|
||||
| KeyboardEnhancementFlags::REPORT_ALTERNATE_KEYS
|
||||
)
|
||||
)?;
|
||||
} else {
|
||||
log::debug!("The enhanced keyboard protocol is not supported on this terminal");
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user