diff --git a/doc/api.md b/doc/api.md index 77a07da2..411c252f 100644 --- a/doc/api.md +++ b/doc/api.md @@ -83,11 +83,15 @@ Change how oil determines if the file is hidden Toggle hidden files and directories -## get_current_dir() +## get_current_dir(bufnr) -`get_current_dir(): nil|string` \ +`get_current_dir(bufnr): nil|string` \ Get the current directory +| Param | Type | Desc | +| ----- | -------------- | --------------------------------------------- | +| bufnr | `nil\|integer` | When nil, get directory of the current buffer | + ## open_float(dir) diff --git a/doc/oil.txt b/doc/oil.txt index ac19879e..13298711 100644 --- a/doc/oil.txt +++ b/doc/oil.txt @@ -277,9 +277,11 @@ toggle_hidden() *oil.toggle_hidde Toggle hidden files and directories -get_current_dir(): nil|string *oil.get_current_dir* +get_current_dir({bufnr}): nil|string *oil.get_current_dir* Get the current directory + Parameters: + {bufnr} `integer` When nil, get directory of the current buffer open_float({dir}) *oil.open_float* Open oil browser in a floating window diff --git a/lua/oil/init.lua b/lua/oil/init.lua index e5e21edb..73e3fe83 100644 --- a/lua/oil/init.lua +++ b/lua/oil/init.lua @@ -140,12 +140,14 @@ M.toggle_hidden = function() end ---Get the current directory +---@param bufnr? integer ---@return nil|string -M.get_current_dir = function() +M.get_current_dir = function(bufnr) local config = require("oil.config") local fs = require("oil.fs") local util = require("oil.util") - local scheme, path = util.parse_url(vim.api.nvim_buf_get_name(0)) + local buf_name = vim.api.nvim_buf_get_name(bufnr or 0) + local scheme, path = util.parse_url(buf_name) if config.adapters[scheme] == "files" then assert(path) return fs.posix_to_os_path(path)