LuaLS / LuaLS/lua-language-server

Standard way to annotate ffi.cdef

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

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

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

説明

I have some ffi that looks like this

---@type ffilib
Connector.ffi = package.preload["ffi"]()
Connector.ffi.cdef [[
	 void curl_free_pointer(const char* string);
   const char* curl_get(const char* query);
   const char* curl_patch(const char* query, const char* body, bool return_patched);
   const char* curl_post(const char* query, const char* body, bool merge_duplicates, bool ignore_duplicates, bool return_post);
]]

I am able to get nice typing on the Connector.ffi part through ---@type ffilib, but am not sure if there is a nice way to annotate the returns from these functions. A could wrap the c functions to lua functions and then annotate the lua functions, but I wasn't sure if there was a nice way to do it directly.

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

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

はじめの一歩

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

調査の方向性

Start by reviewing how ffi.cdef and the ffilib type are currently handled, then trace whether return types can be represented directly in that path. Done means there is a documented annotation approach for these C functions, with coverage showing that their return types are recognized without Lua wrapper functions.

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

評価

技術スタック
lua
領域
devtools
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

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

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