You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
venv/PyCharm 2025.2.1.1/plugins/terminal/shell-integrations/bash/bash-fig.bash

37 lines
1.7 KiB

# Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
# IF YOU ARE FROM FIG TEAM DO NOT HACK THIS
# Please go to issue tracker to discuss https://youtrack.jetbrains.com/issues
# Fig breaks shell integration. E.g. v2.17.0 incorrectly operates with bash-preexec and completely break preeexec functionality.
# This is especially bad for Fleet. Even though it doesn't seem to break critical parts of IntelliJ shell integration,
# Fig isn't needed in the block terminal anyway. Let's remove it in both IDEs to have a more stable shell integration.
# Remove fig from preexec
for index in "${!precmd_functions[@]}"; do
if [[ "${precmd_functions[$index]}" == "__fig_"* ]]; then
unset -v 'precmd_functions[$index]'
fi
done
# Remove fig from precmd
for index in "${!preexec_functions[@]}"; do
if [[ "${preexec_functions[$index]}" == "__fig_"* ]]; then
unset -v 'preexec_functions[$index]'
fi
done
# Fully remove fig integration
PROMPT_COMMAND="${PROMPT_COMMAND/__fig_post_prompt$'\n'/}"
# Fig may call '__bp_install_after_session_init' twice and next happened:
# 1. PROMPT_COMMAND contains double '__bp_install_string'
# 2. '__bp_install_string' contains:
# trap - DEBUG
# __bp_install
# 3. When '__bp_install' called first time all is fine
# 4. When '__bp_install' called second time it assumes that everything is initialized already and returns,
# but previous 'trap - DEBUG' already removed DEBUG trap, so there is no any trap anymore
__bp_broken_string=$__bp_install_string$'\n'$__bp_install_string
PROMPT_COMMAND="${PROMPT_COMMAND//$__bp_broken_string/$__bp_install_string}"
unset __bp_broken_string