feat: allow bufnr optional parameter for get_current_dir function (#440)

This allows for using get_current_dir in cases where currently hovered
buffer is not the desired Oil buffer (e.g. displaying directories for
multiple different Oil buffers)
This commit is contained in:
sleeptightAnsiC 2024-07-07 01:24:33 +02:00 committed by GitHub
parent d5e56574f8
commit cc2332599f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 13 additions and 5 deletions

View file

@ -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)

View file

@ -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

View file

@ -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)