Skip to content

Commit

Permalink
terminal: Add ability to open file from Git diff (#17446)
Browse files Browse the repository at this point in the history
- strip "a/" and "b/" prefix for potential paths.

Release Notes:

- Allow clicking on filepaths when using `git diff` inside the built-in
terminal
  • Loading branch information
watsoncj authored Sep 19, 2024
1 parent 23e1faa commit 4338ff6
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions crates/terminal_view/src/terminal_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ const REGEX_SPECIAL_CHARS: &[char] = &[

const CURSOR_BLINK_INTERVAL: Duration = Duration::from_millis(500);

const GIT_DIFF_PATH_PREFIXES: &[char] = &['a', 'b'];

///Event to transmit the scroll from the element to the view
#[derive(Clone, Debug, PartialEq)]
pub struct ScrollTerminal(pub i32);
Expand Down Expand Up @@ -826,6 +828,19 @@ fn possible_open_targets(
{
potential_cwd_and_workspace_paths.insert(potential_worktree_path);
}

for prefix in GIT_DIFF_PATH_PREFIXES {
let prefix_str = &prefix.to_string();
if maybe_path.starts_with(prefix_str) {
let stripped = maybe_path.strip_prefix(prefix_str).unwrap_or(&maybe_path);
for potential_worktree_path in workspace
.worktrees(cx)
.map(|worktree| worktree.read(cx).abs_path().join(&stripped))
{
potential_cwd_and_workspace_paths.insert(potential_worktree_path);
}
}
}
});
}

Expand Down

0 comments on commit 4338ff6

Please sign in to comment.