diff --git a/script/cli/doc/init.lua b/script/cli/doc/init.lua index 483ea21f9..86cae3e07 100644 --- a/script/cli/doc/init.lua +++ b/script/cli/doc/init.lua @@ -41,7 +41,7 @@ local function getPathDocUpdate() return section.DOC end end - end) + end) if ok then local doc_json_dir = doc_json_path:string():gsub('/doc.json', '') return doc_json_dir, doc_path @@ -131,7 +131,7 @@ local function injectBuildScript() }, {__index = _G})) if err or not data then - error(err, 0) + error(err, 0) end data() return module @@ -193,6 +193,15 @@ function doc.runCLI() print('root uri = ' .. rootUri) + --- If '--configpath' is specified, get the folder path of the '.luarc.doc.josn' configuration file (without the file name) + --- 如果指定了'--configpath',则获取`.luarc.doc.josn` 配置文件的文件夹路径(不包含文件名) + --- This option is passed into the callback function of the initialized method in provide. + --- 该选项会被传入到`provide`中的`initialized`方法的回调函数中 + local luarcParentUri + if CONFIGPATH then + luarcParentUri = furi.encode(fs.absolute(fs.path(CONFIGPATH)):parent_path():string()) + end + util.enableCloseFunction() local lastClock = os.clock() @@ -203,6 +212,7 @@ function doc.runCLI() client:initialize { rootUri = rootUri, + luarcParentUri = luarcParentUri } io.write(lang.script('CLI_DOC_INITING')) @@ -222,11 +232,11 @@ function doc.runCLI() if os.clock() - lastClock > 0.2 then lastClock = os.clock() local output = '\x0D' - .. ('>'):rep(math.ceil(i / max * 20)) - .. ('='):rep(20 - math.ceil(i / max * 20)) - .. ' ' - .. ('0'):rep(#tostring(max) - #tostring(i)) - .. tostring(i) .. '/' .. tostring(max) + .. ('>'):rep(math.ceil(i / max * 20)) + .. ('='):rep(20 - math.ceil(i / max * 20)) + .. ' ' + .. ('0'):rep(#tostring(max) - #tostring(i)) + .. tostring(i) .. '/' .. tostring(max) io.write(output) end end) diff --git a/script/lclient.lua b/script/lclient.lua index 0909e9321..513e311cf 100644 --- a/script/lclient.lua +++ b/script/lclient.lua @@ -77,7 +77,7 @@ local defaultClientOptions = { valueSet = { define.DiagnosticTag.Unnecessary, define.DiagnosticTag.Deprecated, - }, + }, }, }, }, @@ -92,7 +92,7 @@ local defaultClientOptions = { function mt:initialize(params) local initParams = util.tableMerge(params or {}, defaultClientOptions) self:awaitRequest('initialize', initParams) - self:notify('initialized') + self:notify('initialized', initParams) end function mt:reportHangs() diff --git a/script/provider/provider.lua b/script/provider/provider.lua index 08031213e..3f79f4ea5 100644 --- a/script/provider/provider.lua +++ b/script/provider/provider.lua @@ -141,7 +141,7 @@ m.register 'initialized'{ ---@async function (_params) local _ = progress.create(workspace.getFirstScope().uri, lang.script.WINDOW_INITIALIZING, 0.5) - m.updateConfig() + m.updateConfig((_params or {}).luarcParentUri) local registrations = {} if client.getAbility 'workspace.didChangeConfiguration.dynamicRegistration' then