48 lines
1.2 KiB
Lua
48 lines
1.2 KiB
Lua
local string_utils = require("codesnap.utils.string")
|
|
local platform_utils = require("codesnap.utils.platform")
|
|
local path_utils = {}
|
|
|
|
function path_utils.get_escaped_cwd()
|
|
local cwd = vim.fn.getcwd()
|
|
|
|
return string_utils.escape(cwd)
|
|
end
|
|
|
|
function path_utils.back(path)
|
|
local parsed_path, _ = path:gsub("/[^\\/]+/?$", "")
|
|
|
|
return parsed_path
|
|
end
|
|
|
|
function path_utils.get_workspace()
|
|
local cwd = vim.fn.getcwd()
|
|
local _, _, workspace = string.find(cwd, "/([^/]+)$")
|
|
|
|
return workspace == nil and "" or workspace
|
|
end
|
|
|
|
function path_utils.get_relative_path()
|
|
local full_file_path = vim.fn.expand("%:p")
|
|
|
|
return full_file_path:gsub(path_utils.get_escaped_cwd(), ""):sub(2)
|
|
end
|
|
|
|
-- Get default save path by OS
|
|
-- If Linux, use XDG_PICTURE_DIR
|
|
-- if mac use ~/Pictures
|
|
-- if windows use FOLDERID_Pictures (If support is added back)
|
|
function path_utils.get_default_save_path()
|
|
local home_picture_folder = os.getenv("HOME") .. "/Pictures"
|
|
|
|
return platform_utils.match_os({
|
|
Darwin = function()
|
|
return home_picture_folder
|
|
end,
|
|
Linux = function()
|
|
return os.getenv("XDG_PICTURES_DIR") or home_picture_folder
|
|
end,
|
|
})
|
|
end
|
|
|
|
return path_utils
|