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