Use open_url from the platform module

Petros Amoiridis created

And remove the open function from the `util` crate.

Change summary

crates/terminal/src/terminal.rs       |  4 ++--
crates/util/src/lib.rs                | 12 ------------
crates/workspace/src/notifications.rs |  7 ++-----
3 files changed, 4 insertions(+), 19 deletions(-)

Detailed changes

crates/terminal/src/terminal.rs 🔗

@@ -731,7 +731,7 @@ impl Terminal {
 
                 if let Some((url, url_match)) = found_url {
                     if *open {
-                        util::open(&url);
+                        cx.platform().open_url(url.as_str());
                     } else {
                         self.update_hyperlink(prev_hyperlink, url, url_match);
                     }
@@ -1072,7 +1072,7 @@ impl Terminal {
             if self.selection_phase == SelectionPhase::Ended {
                 let mouse_cell_index = content_index_for_mouse(position, &self.last_content);
                 if let Some(link) = self.last_content.cells[mouse_cell_index].hyperlink() {
-                    util::open(link.uri());
+                    cx.platform().open_url(link.uri());
                 } else {
                     self.events
                         .push_back(InternalEvent::FindHyperlink(position, true));

crates/util/src/lib.rs 🔗

@@ -9,7 +9,6 @@ use rand::{seq::SliceRandom, Rng};
 use std::{
     cmp::Ordering,
     ops::AddAssign,
-    path::Path,
     pin::Pin,
     task::{Context, Poll},
 };
@@ -54,17 +53,6 @@ pub fn truncate_and_trailoff(s: &str, max_chars: usize) -> String {
     }
 }
 
-pub fn open<P: AsRef<Path>>(path: P) {
-    let path_to_open = path.as_ref().to_string_lossy();
-    #[cfg(target_os = "macos")]
-    {
-        std::process::Command::new("open")
-            .arg(path_to_open.as_ref())
-            .spawn()
-            .log_err();
-    }
-}
-
 pub fn post_inc<T: From<u8> + AddAssign<T> + Copy>(value: &mut T) -> T {
     let prev = *value;
     *value += T::from(1);

crates/workspace/src/notifications.rs 🔗

@@ -146,11 +146,8 @@ pub mod simple_message_notification {
     pub fn init(cx: &mut MutableAppContext) {
         cx.add_action(MessageNotification::dismiss);
         cx.add_action(
-            |_workspace: &mut Workspace, open_action: &OsOpen, _cx: &mut ViewContext<Workspace>| {
-                #[cfg(target_os = "macos")]
-                {
-                    util::open(&open_action.0);
-                }
+            |_workspace: &mut Workspace, open_action: &OsOpen, cx: &mut ViewContext<Workspace>| {
+                cx.platform().open_url(open_action.0.as_str());
             },
         )
     }