ZIm/crates/terminal/src
chico ferreira 5c88e9c66b
terminal: Expose selection in context and add keep_selection_on_copy setting (#33491)
Closes #21262

Introduces a new setting `keep_selection_on_copy`, which controls
whether the current text selection is preserved after copying in the
terminal. The default behavior remains the same (`true`), but setting it
to `false` will clear the selection after the copy operation, matching
VSCode's behavior.

Additionally, the terminal context now exposes a `selection` flag
whenever text is selected.

This allows users to match VSCode and other terminal's smart copy
behavior.

Release Notes:

- Expose `selection` to terminal context when there is text selected in
the terminal
- Add `keep_selection_on_copy` terminal setting. Can be set to false to
clear the text selection when copying text.

**VSCode Behavior Example:**

**settings.json:**
```json
  "terminal": {
    "keep_selection_on_copy": false
  },
```
**keymap.json:**
```json
  {
    "context": "Terminal && selection",
    "bindings": {
      "ctrl-c": "terminal::Copy"
    }
  }
```
2025-07-03 09:37:27 +03:00
..
mappings terminal: Match trait bounds with terminal input (#31441) 2025-06-02 21:12:28 -06:00
pty_info.rs Debugger implementation (#13433) 2025-03-18 12:55:25 -04:00
terminal.rs terminal: Expose selection in context and add keep_selection_on_copy setting (#33491) 2025-07-03 09:37:27 +03:00
terminal_hyperlinks.rs chore: Bump Rust version to 1.88 (#33439) 2025-06-26 20:54:19 +02:00
terminal_settings.rs terminal: Expose selection in context and add keep_selection_on_copy setting (#33491) 2025-07-03 09:37:27 +03:00