From 16883e754399eb5bfacdbc1f9c1c4ac57fd5de06 Mon Sep 17 00:00:00 2001
From: Lionel Flandrin <lfg@svkt.eu>
Date: Mon, 21 Jun 2021 16:49:21 +0100
Subject: [PATCH] Implement show_current_directory command

---
 helix-term/src/commands.rs | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 2f1db4b6..131a881e 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -1386,6 +1386,15 @@ mod cmd {
         }
     }
 
+    fn show_current_directory(editor: &mut Editor, args: &[&str], _: PromptEvent) {
+        match std::env::current_dir() {
+            Ok(cwd) => editor.set_status(format!("Current working directory is {}", cwd.display())),
+            Err(e) => {
+                editor.set_error(format!("Couldn't get the current working directory: {}", e))
+            }
+        }
+    }
+
     pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
         TypableCommand {
             name: "quit",
@@ -1562,6 +1571,13 @@ mod cmd {
             fun: change_current_directory,
             completer: Some(completers::directory),
         },
+        TypableCommand {
+            name: "show-directory",
+            alias: Some("pwd"),
+            doc: "Show the current working directory.",
+            fun: show_current_directory,
+            completer: None,
+        },
     ];
 
     pub static COMMANDS: Lazy<HashMap<&'static str, &'static TypableCommand>> = Lazy::new(|| {