Merge branch 'main' into terminal-selections

Mikayla Maki created

Change summary

crates/terminal/src/terminal.rs | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

Detailed changes

crates/terminal/src/terminal.rs 🔗

@@ -93,6 +93,7 @@ pub struct Terminal {
     has_new_content: bool,
     has_bell: bool, //Currently using iTerm bell, show bell emoji in tab until input is received
     cur_size: SizeInfo,
+    associated_directory: Option<PathBuf>,
 }
 
 ///Upward flowing events, for changing the title and such
@@ -127,8 +128,8 @@ impl Terminal {
         .detach();
 
         let pty_config = PtyConfig {
-            shell: None, //Use the users default shell
-            working_directory,
+            shell: None,
+            working_directory: working_directory.clone(),
             hold: false,
         };
 
@@ -174,6 +175,7 @@ impl Terminal {
             has_new_content: false,
             has_bell: false,
             cur_size: size_info,
+            associated_directory: working_directory,
         }
     }
 
@@ -404,6 +406,13 @@ impl Item for Terminal {
         .boxed()
     }
 
+    fn clone_on_split(&self, cx: &mut ViewContext<Self>) -> Option<Self> {
+        //From what I can tell, there's no  way to tell the current working
+        //Directory of the terminal from outside the terminal. There might be
+        //solutions to this, but they are non-trivial and require more IPC
+        Some(Terminal::new(cx, self.associated_directory.clone()))
+    }
+
     fn project_path(&self, _cx: &gpui::AppContext) -> Option<ProjectPath> {
         None
     }