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" } } ```
This commit is contained in:
parent
2a8121fbfc
commit
5c88e9c66b
5 changed files with 40 additions and 1 deletions
|
@ -823,6 +823,11 @@ impl TerminalView {
|
|||
};
|
||||
dispatch_context.set("mouse_format", format);
|
||||
};
|
||||
|
||||
if self.terminal.read(cx).last_content.selection.is_some() {
|
||||
dispatch_context.add("selection");
|
||||
}
|
||||
|
||||
dispatch_context
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue