aboutsummaryrefslogtreecommitdiff
path: root/src/app/api/plugins/context.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/api/plugins/context.rs')
-rw-r--r--src/app/api/plugins/context.rs24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/app/api/plugins/context.rs b/src/app/api/plugins/context.rs
index efef83b9..8aee1c31 100644
--- a/src/app/api/plugins/context.rs
+++ b/src/app/api/plugins/context.rs
@@ -357,10 +357,6 @@ impl App {
.as_ref()
.and_then(|pane| pane.cwd.clone())
.or_else(|| Some(self.default_cwd_for_workspace(ws_idx).display().to_string()));
- let selected_text = focused_pane
- .as_ref()
- .and_then(|pane| self.parse_pane_id(&pane.pane_id))
- .and_then(|(_, pane_id)| self.selected_text_for_pane(pane_id));
PluginInvocationContext {
workspace_id: Some(workspace.workspace_id),
workspace_label: Some(workspace.label),
@@ -372,7 +368,9 @@ impl App {
focused_pane_cwd: focused_pane.as_ref().and_then(|pane| pane.cwd.clone()),
focused_pane_agent: focused_pane.as_ref().and_then(|pane| pane.agent.clone()),
focused_pane_status: focused_pane.as_ref().map(|pane| pane.agent_status),
- selected_text,
+ // Selection is client presentation state. Client keybindings provide
+ // revision-validated coordinates; API callers can provide explicit context.
+ selected_text: None,
invocation_source: Some("api".to_string()),
correlation_id: Some(correlation_id.to_string()),
clicked_url: None,
@@ -380,22 +378,6 @@ impl App {
}
}
- fn selected_text_for_pane(&self, pane_id: crate::layout::PaneId) -> Option<String> {
- let selection = self.state.selection.as_ref()?;
- if selection.pane_id != pane_id || !selection.is_visible() {
- return None;
- }
- let terminal_id = self
- .state
- .workspaces
- .iter()
- .find_map(|workspace| workspace.terminal_id(pane_id))?;
- self.terminal_runtimes
- .get(terminal_id)
- .and_then(|runtime| runtime.extract_selection(selection))
- .filter(|text| !text.is_empty())
- }
-
fn default_cwd_for_workspace(&self, ws_idx: usize) -> std::path::PathBuf {
self.state
.workspaces