mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 13:23:09 +00:00
Disable CSI u in Jetbrains terminals
Note: This may not be sent in WSL. Fixes #10829
This commit is contained in:
parent
4b24fe7daf
commit
bfc68345c9
1 changed files with 10 additions and 0 deletions
|
@ -433,6 +433,7 @@ static TERMINAL_PROTOCOLS: AtomicBool = AtomicBool::new(false);
|
||||||
static IS_TMUX: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
static IS_TMUX: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
||||||
pub static IN_MIDNIGHT_COMMANDER_PRE_CSI_U: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
pub static IN_MIDNIGHT_COMMANDER_PRE_CSI_U: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
||||||
static IN_ITERM_PRE_CSI_U: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
static IN_ITERM_PRE_CSI_U: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
||||||
|
static IN_JETBRAINS: RelaxedAtomicBool = RelaxedAtomicBool::new(false);
|
||||||
|
|
||||||
pub fn terminal_protocol_hacks() {
|
pub fn terminal_protocol_hacks() {
|
||||||
use std::env::var_os;
|
use std::env::var_os;
|
||||||
|
@ -447,6 +448,10 @@ pub fn terminal_protocol_hacks() {
|
||||||
version < (3, 5, 6)
|
version < (3, 5, 6)
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
IN_JETBRAINS.store(
|
||||||
|
var_os("TERMINAL_EMULATOR")
|
||||||
|
.is_some_and(|term| term.as_os_str().as_bytes() == b"JetBrains-JediTerm"),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_version(version: &wstr) -> Option<(i64, i64, i64)> {
|
fn parse_version(version: &wstr) -> Option<(i64, i64, i64)> {
|
||||||
|
@ -477,6 +482,9 @@ pub fn terminal_protocols_enable_ifn() {
|
||||||
"\x1b[?2004h"
|
"\x1b[?2004h"
|
||||||
} else if IN_ITERM_PRE_CSI_U.load() {
|
} else if IN_ITERM_PRE_CSI_U.load() {
|
||||||
concat!("\x1b[?2004h", "\x1b[>4;1m", "\x1b[>5u", "\x1b=",)
|
concat!("\x1b[?2004h", "\x1b[>4;1m", "\x1b[>5u", "\x1b=",)
|
||||||
|
} else if IN_JETBRAINS.load() {
|
||||||
|
// Jetbrains IDE terminals vomit CSI u
|
||||||
|
concat!("\x1b[?2004h", "\x1b[>4;1m", "\x1b=",)
|
||||||
} else {
|
} else {
|
||||||
concat!(
|
concat!(
|
||||||
"\x1b[?2004h", // Bracketed paste
|
"\x1b[?2004h", // Bracketed paste
|
||||||
|
@ -499,6 +507,8 @@ pub(crate) fn terminal_protocols_disable_ifn() {
|
||||||
}
|
}
|
||||||
let sequences = if IN_ITERM_PRE_CSI_U.load() {
|
let sequences = if IN_ITERM_PRE_CSI_U.load() {
|
||||||
concat!("\x1b[?2004l", "\x1b[>4;0m", "\x1b[<1u", "\x1b>",)
|
concat!("\x1b[?2004l", "\x1b[>4;0m", "\x1b[<1u", "\x1b>",)
|
||||||
|
} else if IN_JETBRAINS.load() {
|
||||||
|
concat!("\x1b[?2004l", "\x1b[>4;0m", "\x1b>",)
|
||||||
} else {
|
} else {
|
||||||
concat!(
|
concat!(
|
||||||
"\x1b[?2004l", // Bracketed paste
|
"\x1b[?2004l", // Bracketed paste
|
||||||
|
|
Loading…
Reference in a new issue