//! This module contains the code for the editable accept autosuggestion keybinding
//! shown inline in the input.
use galaxy_core::ui::theme::Fill;
use lazy_static::lazy_static;
use pathfinder_geometry::vector::vec2f;
use warpui::elements::{
Border, ChildAnchor, ChildView, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment,
Element, Flex, Hoverable, MouseStateHandle, OffsetPositioning, ParentAnchor, ParentElement,
ParentOffsetBounds, Radius, Stack, DEFAULT_UI_LINE_HEIGHT_RATIO,
};
use warpui::keymap::Keystroke;
use warpui::platform::Cursor;
use warpui::ui_components::components::{UiComponent, UiComponentStyles};
use warpui::ui_components::keyboard_shortcut::KeyboardShortcut;
use warpui::{AppContext, Entity, SingletonEntity, TypedActionView, View, ViewContext, ViewHandle};
use super::EditorElement;
use crate::appearance::Appearance;
use crate::editor::ACCEPT_AUTOSUGGESTION_KEYBINDING_NAME;
use crate::menu::{Menu, MenuItemFields};
use crate::settings_view::keybindings::{KeybindingChangedEvent, KeybindingChangedNotifier};
use crate::terminal::input::OPEN_COMPLETIONS_KEYBINDING_NAME;
use crate::ui_components::blended_colors;
use crate::ui_components::icons::Icon;
use crate::util::bindings::{
keybinding_name_to_keystroke, reset_keybinding_to_default, set_custom_keybinding,
};
use crate::workspace::WorkspaceAction;
pub const AUTOSUGGESTION_HINT_MINIMUM_HEIGHT: f32 = 12.;
lazy_static! {
static ref TAB_KEYSTROKE: Keystroke = Keystroke {
key: "tab".to_string(),
..Default::default()
};
static ref CTRL_SPACE_KEYSTROKE: Keystroke = Keystroke {
key: " ".into(),
ctrl: true,
..Default::default()
};
}
pub struct AcceptAutosuggestionKeybinding {
is_menu_open: bool,
select_keybinding_menu: ViewHandle