From 7e429132458514e8dc99ab6be789b9c8225ed00e Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 10 Aug 2022 23:30:56 +0200 Subject: [PATCH] Enable bracketed paste mode in Terminal Only on non-windows platforms though, crossterm doesn't support paste events on windows. --- src/terminal.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/terminal.rs b/src/terminal.rs index 8307b47..7f01c90 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -4,6 +4,7 @@ use std::io::Write; use std::{io, mem}; use crossterm::cursor::{Hide, MoveTo, Show}; +use crossterm::event::{DisableBracketedPaste, EnableBracketedPaste}; use crossterm::style::{PrintStyledContent, StyledContent}; use crossterm::terminal::{Clear, ClearType, EnterAlternateScreen, LeaveAlternateScreen}; use crossterm::{ExecutableCommand, QueueableCommand}; @@ -48,6 +49,8 @@ impl Terminal { pub fn suspend(&mut self) -> io::Result<()> { crossterm::terminal::disable_raw_mode()?; self.out.execute(LeaveAlternateScreen)?; + #[cfg(not(windows))] + self.out.execute(DisableBracketedPaste)?; self.out.execute(Show)?; Ok(()) } @@ -55,6 +58,8 @@ impl Terminal { pub fn unsuspend(&mut self) -> io::Result<()> { crossterm::terminal::enable_raw_mode()?; self.out.execute(EnterAlternateScreen)?; + #[cfg(not(windows))] + self.out.execute(EnableBracketedPaste)?; self.full_redraw = true; Ok(()) }