LuaLS / LuaLS/lua-language-server

`--doc` CLI argument does not work

オープン
#2,954 コメント 12 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug
主要言語
Lua
スター
4.4k
フォーク
442
PR マージ指標
30日以内にマージされた PR はありません

説明

How are you using the lua-language-server?

Command Line

Which OS are you using?

Windows WSL

What is the issue affecting?

Other

Expected Behaviour

Document generation, as documented here:

https://luals.github.io/wiki/usage/#--doc

Actual Behaviour
rhys@RhysDesktop:~/example-lua$ ~/lua-language-server/bin/lua-language-server --doc ~/example-lua/
root uri = file:///home/rhys/example-lua/
script/cli/doc/export.lua:304: attempt to concatenate a nil value (local 'outputDir')
stack traceback:
        script/cli/doc/export.lua:304: in field 'serializeAndExport'
        script/cli/doc/init.lua:235: in upvalue 'callback'
        script/lclient.lua:129: in function <script/lclient.lua:128>
stack traceback:
        script/lclient.lua:123: in function 'await.errorHandle'
        script/await.lua:35: in function 'await.checkResult'
        (...tail calls...)
        [C]: in function 'xpcall'
        script/timer.lua:52: in upvalue 'mWakeup'
        script/timer.lua:93: in upvalue 'onTick'
        script/timer.lua:236: in function 'timer.update'
        script/lclient.lua:139: in method 'start'
        script/cli/doc/init.lua:201: in function 'cli.doc.runCLI'
        script/cli/init.lua:22: in main chunk
        [C]: in function 'require'
        /home/rhys/lua-language-server/main.lua:78: in main chunk
        (bootstrap.lua):85: in main chunk
        [C]: in ?
script/lclient.lua:124: [19:48:24.474][error][#0:script/lclient.lua:123]: script/cli/doc/export.lua:304: attempt to concatenate a nil value (local 'outputDir')
stack traceback:
        script/cli/doc/export.lua:304: in field 'serializeAndExport'
        script/cli/doc/init.lua:235: in upvalue 'callback'
        script/lclient.lua:129: in function <script/lclient.lua:128>
stack traceback:
        script/lclient.lua:123: in function 'await.errorHandle'
        script/await.lua:35: in function 'await.checkResult'
        (...tail calls...)
        [C]: in function 'xpcall'
        script/timer.lua:52: in upvalue 'mWakeup'
        script/timer.lua:93: in upvalue 'onTick'
        script/timer.lua:236: in function 'timer.update'
        script/lclient.lua:139: in method 'start'
        script/cli/doc/init.lua:201: in function 'cli.doc.runCLI'
        script/cli/init.lua:22: in main chunk
        [C]: in function 'require'
        /home/rhys/lua-language-server/main.lua:78: in main chunk
        (bootstrap.lua):85: in main chunk
        [C]: in ?

stack traceback:
        [C]: in function 'error'
        script/lclient.lua:124: in function 'await.errorHandle'
        script/await.lua:35: in function 'await.checkResult'
        (...tail calls...)
        [C]: in function 'xpcall'
        script/timer.lua:52: in upvalue 'mWakeup'
        script/timer.lua:93: in upvalue 'onTick'
        script/timer.lua:236: in function 'timer.update'
        script/lclient.lua:139: in method 'start'
        script/cli/doc/init.lua:201: in function 'cli.doc.runCLI'
        script/cli/init.lua:22: in main chunk
        [C]: in function 'require'
        /home/rhys/lua-language-server/main.lua:78: in main chunk
        (bootstrap.lua):85: in main chunk
        [C]: in ?
/home/rhys/lua-language-server/bin/lua-language-server: script/lclient.lua:149: two hours later ...
====== C -> S ======
====== S -> C ======
====================
stack traceback:
        [C]: in function 'error'
        script/lclient.lua:149: in method 'start'
        script/cli/doc/init.lua:201: in function 'cli.doc.runCLI'
        script/cli/init.lua:22: in main chunk
        [C]: in function 'require'
        /home/rhys/lua-language-server/main.lua:78: in main chunk
        (bootstrap.lua):85: in main chunk
        [C]: in ?
Reproduction steps
  1. Create a new folder
  2. Add any documented lua file, I used this:
---@param x number
function foo(x) end
  1. Run lua-language-server --doc <path-to-folder>
Additional Notes

I tried this on both Windows and WSL with the same result.

Log File

No response

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

script/cli/doc/export.lua の304行目にある serializeAndExport の失敗から始め、script/cli/doc/init.lua が --doc 用にそれをどのように呼び出しているかを追ってください。ドキュメント化された Lua ファイルを含むフォルダーに対してコマンドを再現してください。コマンドが nil の outputDir エラーなしで完了し、期待されるドキュメントが生成されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
lua
領域
cli
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。