s when opening projects or changing paths.
This commit is contained in:
parent
1be1c7fb0b
commit
6807a8e29a
|
@ -245,6 +245,8 @@ https://git.walkero.gr/walkero/lite-xl/issues
|
||||||
the root of a partition or an assign path
|
the root of a partition or an assign path
|
||||||
- Fixed an error with the codesets plugin, where an empty file could
|
- Fixed an error with the codesets plugin, where an empty file could
|
||||||
not be opened
|
not be opened
|
||||||
|
- Improved the folder suggestions when opening projects or changing paths.
|
||||||
|
Now even the root folders of a partition are presented
|
||||||
|
|
||||||
## [2.1.2r1] - 2023-12-19
|
## [2.1.2r1] - 2023-12-19
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -185,7 +185,7 @@ command.add(nil, {
|
||||||
local dirname = common.dirname(core.project_dir)
|
local dirname = common.dirname(core.project_dir)
|
||||||
local text
|
local text
|
||||||
if dirname then
|
if dirname then
|
||||||
text = common.home_encode(dirname) .. PATHSEP
|
text = common.basepath(common.home_encode(dirname))
|
||||||
end
|
end
|
||||||
core.command_view:enter("Change Project Folder", {
|
core.command_view:enter("Change Project Folder", {
|
||||||
text = text,
|
text = text,
|
||||||
|
|
|
@ -226,7 +226,13 @@ function common.path_suggest(text, root)
|
||||||
if root and root:sub(-1) ~= PATHSEP then
|
if root and root:sub(-1) ~= PATHSEP then
|
||||||
root = root .. PATHSEP
|
root = root .. PATHSEP
|
||||||
end
|
end
|
||||||
local path, name = text:match("^(.-)([^"..PATHSEP.."]*)$")
|
local path, name
|
||||||
|
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") then
|
||||||
|
path, name = text:match("^(.-)([^:"..PATHSEP.."]*)$")
|
||||||
|
else
|
||||||
|
path, name = text:match("^(.-)([^"..PATHSEP.."]*)$")
|
||||||
|
end
|
||||||
|
|
||||||
local clean_dotslash = false
|
local clean_dotslash = false
|
||||||
-- ignore root if path is absolute
|
-- ignore root if path is absolute
|
||||||
local is_absolute = common.is_absolute_path(text)
|
local is_absolute = common.is_absolute_path(text)
|
||||||
|
@ -279,7 +285,12 @@ end
|
||||||
---@param text string The input path.
|
---@param text string The input path.
|
||||||
---@return string[]
|
---@return string[]
|
||||||
function common.dir_path_suggest(text)
|
function common.dir_path_suggest(text)
|
||||||
local path, name = text:match("^(.-)([^"..PATHSEP.."]*)$")
|
local path, name
|
||||||
|
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") then
|
||||||
|
path, name = text:match("^(.-)([^:"..PATHSEP.."]*)$")
|
||||||
|
else
|
||||||
|
path, name = text:match("^(.-)([^"..PATHSEP.."]*)$")
|
||||||
|
end
|
||||||
local files = system.list_dir(path == "" and "." or path) or {}
|
local files = system.list_dir(path == "" and "." or path) or {}
|
||||||
local res = {}
|
local res = {}
|
||||||
for _, file in ipairs(files) do
|
for _, file in ipairs(files) do
|
||||||
|
@ -298,7 +309,13 @@ end
|
||||||
---@param dir_list string[] A list of paths to filter.
|
---@param dir_list string[] A list of paths to filter.
|
||||||
---@return string[]
|
---@return string[]
|
||||||
function common.dir_list_suggest(text, dir_list)
|
function common.dir_list_suggest(text, dir_list)
|
||||||
local path, name = text:match("^(.-)([^"..PATHSEP.."]*)$")
|
local path, name
|
||||||
|
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") then
|
||||||
|
path, name = text:match("^(.-)([^:"..PATHSEP.."]*)$")
|
||||||
|
else
|
||||||
|
path, name = text:match("^(.-)([^"..PATHSEP.."]*)$")
|
||||||
|
end
|
||||||
|
|
||||||
local res = {}
|
local res = {}
|
||||||
for _, dir_path in ipairs(dir_list) do
|
for _, dir_path in ipairs(dir_list) do
|
||||||
if dir_path:lower():find(text:lower(), nil, true) == 1 then
|
if dir_path:lower():find(text:lower(), nil, true) == 1 then
|
||||||
|
@ -484,6 +501,16 @@ end
|
||||||
---@param path string
|
---@param path string
|
||||||
---@return string|nil
|
---@return string|nil
|
||||||
function common.dirname(path)
|
function common.dirname(path)
|
||||||
|
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") then
|
||||||
|
local drive, relpath = path:match('^([%w%s]*:)(.+)')
|
||||||
|
if drive and relpath then
|
||||||
|
local dir = relpath:match("(.+)["..PATHSEP.."][^"..PATHSEP.."]+$")
|
||||||
|
if dir then
|
||||||
|
return drive .. dir
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return path
|
||||||
|
end
|
||||||
return path:match("(.+)["..PATHSEP.."][^"..PATHSEP.."]+$")
|
return path:match("(.+)["..PATHSEP.."][^"..PATHSEP.."]+$")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue