diff --git a/changelog.md b/changelog.md index e35ffec3c..be0599785 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,7 @@ ## Unreleased * `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument +* `FIX` incorrect file names in file doc.json * `FIX` remove extra `./` path prefix in the check report when using `--check=.` ## 3.13.6 diff --git a/script/cli/doc/export.lua b/script/cli/doc/export.lua index 8d9b7d6f6..1b72f8af1 100644 --- a/script/cli/doc/export.lua +++ b/script/cli/doc/export.lua @@ -8,6 +8,8 @@ local getLabel = require 'core.hover.label' local jsonb = require 'json-beautify' local util = require 'utility' local markdown = require 'provider.markdown' +local fs = require 'bee.filesystem' +local furi = require 'file-uri' ---@alias doctype ---| 'doc.alias' @@ -55,13 +57,14 @@ local markdown = require 'provider.markdown' local export = {} function export.getLocalPath(uri) - --remove uri root (and prefix) - local local_file_uri = uri - local i, j = local_file_uri:find(DOC) - if not j then - return '[FOREIGN] '..uri + local file_canonical = fs.canonical(furi.decode(uri)):string() + local doc_canonical = fs.canonical(DOC):string() + local relativePath = fs.relative(file_canonical, doc_canonical):string() + if relativePath == "" or relativePath:sub(1, 2) == '..' then + -- not under project directory + return '[FOREIGN] ' .. file_canonical end - return local_file_uri:sub( j + 1 ) + return relativePath end function export.positionOf(rowcol) diff --git a/script/cli/doc/init.lua b/script/cli/doc/init.lua index 3492b3d9c..afb4e4da0 100644 --- a/script/cli/doc/init.lua +++ b/script/cli/doc/init.lua @@ -185,7 +185,7 @@ function doc.runCLI() return end - local rootUri = furi.encode(fs.absolute(fs.path(DOC)):string()) + local rootUri = furi.encode(fs.canonical(fs.path(DOC)):string()) if not rootUri then print(lang.script('CLI_CHECK_ERROR_URI', DOC)) return