Skip to main content

vtcode_core/terminal_setup/terminals/
warp.rs

1//! Warp terminal configuration generator.
2//!
3//! Warp has built-in multiline support and limited customization.
4
5use anyhow::Result;
6
7/// Generate Warp configuration (mostly informational since Warp has built-in features)
8pub fn generate_config(
9    features: &[crate::terminal_setup::detector::TerminalFeature],
10) -> Result<String> {
11    let mut info = r#"# Warp Terminal Configuration
12
13Warp has built-in support for most features:
14
15✓ Multiline Input: Already supported (Shift+Enter works by default)
16✓ Copy/Paste: Built-in with smart selection
17✓ Shell Integration: Built-in with command history and navigation
18✓ Themes: Use Warp's built-in theme system
19
20"#
21    .to_string();
22
23    // Check if notifications feature is requested
24    if features.contains(&crate::terminal_setup::detector::TerminalFeature::Notifications) {
25        info.push_str("\n## System Notifications\n");
26        info.push_str("✓ Notifications: Warp supports system notifications through:\n");
27        info.push_str("  - Built-in notification system\n");
28        info.push_str("  - Terminal bell (\\a) for task completion alerts\n");
29        info.push_str("  - No additional configuration needed\n");
30    }
31
32    info.push_str("\nNo additional configuration needed for VT Code!\n");
33
34    Ok(info)
35}
36
37#[cfg(test)]
38mod tests {
39    use super::*;
40    use crate::terminal_setup::detector::TerminalFeature;
41
42    #[test]
43    fn test_generate_config() {
44        let features = vec![TerminalFeature::Multiline];
45        let config = generate_config(&features).unwrap();
46        assert!(config.contains("Warp"));
47        assert!(config.contains("built-in"));
48    }
49}