feat: add terminal buffers to selected files (#2077)
Co-authored-by: Samuel Wall <me@samuelwall.uk>
This commit is contained in:
@@ -14,7 +14,7 @@ local FileSelector = {}
|
|||||||
|
|
||||||
---@alias FileSelectorHandler fun(self: FileSelector, on_select: fun(filepaths: string[] | nil)): nil
|
---@alias FileSelectorHandler fun(self: FileSelector, on_select: fun(filepaths: string[] | nil)): nil
|
||||||
|
|
||||||
local function has_scheme(path) return path:find("^%w+://") ~= nil end
|
local function has_scheme(path) return path:find("^(?!term://)%w+://") ~= nil end
|
||||||
|
|
||||||
function FileSelector:process_directory(absolute_path, project_root)
|
function FileSelector:process_directory(absolute_path, project_root)
|
||||||
if absolute_path:sub(-1) == Utils.path_sep then absolute_path = absolute_path:sub(1, -2) end
|
if absolute_path:sub(-1) == Utils.path_sep then absolute_path = absolute_path:sub(1, -2) end
|
||||||
@@ -85,7 +85,8 @@ end
|
|||||||
function FileSelector:add_selected_file(filepath)
|
function FileSelector:add_selected_file(filepath)
|
||||||
if not filepath or filepath == "" then return end
|
if not filepath or filepath == "" then return end
|
||||||
|
|
||||||
local absolute_path = filepath:sub(1, 1) == "/" and filepath or Utils.join_paths(Utils.get_project_root(), filepath)
|
local absolute_path = (filepath:sub(1, 1) == "/" or filepath:sub(1, 7) == "term://") and filepath
|
||||||
|
or Utils.join_paths(Utils.get_project_root(), filepath)
|
||||||
local stat = vim.loop.fs_stat(absolute_path)
|
local stat = vim.loop.fs_stat(absolute_path)
|
||||||
|
|
||||||
if stat and stat.type == "directory" then
|
if stat and stat.type == "directory" then
|
||||||
|
|||||||
@@ -1094,7 +1094,7 @@ end
|
|||||||
---@return string[]|nil lines
|
---@return string[]|nil lines
|
||||||
---@return string|nil error
|
---@return string|nil error
|
||||||
function M.read_file_from_buf_or_disk(filepath)
|
function M.read_file_from_buf_or_disk(filepath)
|
||||||
local abs_path = M.join_paths(M.get_project_root(), filepath)
|
local abs_path = filepath:sub(1, 7) == "term://" and filepath or M.join_paths(M.get_project_root(), filepath)
|
||||||
--- Lookup if the file is loaded in a buffer
|
--- Lookup if the file is loaded in a buffer
|
||||||
local bufnr = vim.fn.bufnr(abs_path)
|
local bufnr = vim.fn.bufnr(abs_path)
|
||||||
if bufnr ~= -1 and vim.api.nvim_buf_is_loaded(bufnr) then
|
if bufnr ~= -1 and vim.api.nvim_buf_is_loaded(bufnr) then
|
||||||
|
|||||||
Reference in New Issue
Block a user