LuaにCtagsを使いたい。
Ctags は Lua をサポートしていないため、次のコマンドを見つけました。
ctags --langdef=MYLUA --langmap=MYLUA:.lua --regex-MYLUA="/^.*\s*function\s*(\w+):(\w+).*$/\2/f/" --regex-MYLUA="/^\s*(\w+)\s*=\s*[0-9]+.*$/\1/e/" --regex-MYLUA="/^.*\s*function\s*(\w+)\.(\w+).*$/\2/f/" --regex-MYLUA="/^.*\s*function\s*(\w+)\s*\(.*$/\1/f/" --regex-MYLUA="/^\s*(\w+)\s*=\s*\{.*$/\1/e/" --regex-MYLUA="/^\s*module\s+\"(\w+)\".*$/\1/m,module/" --regex-MYLUA="/^\s*module\s+\"[a-zA-Z0-9._]+\.(\w+)\".*$/\1/m,module/" --languages=MYLUA --excmd=number -R .
長すぎるか、lua 関数のみの短いサンプルが表示されます。
ctags --langdef=MYLUA --langmap=MYLUA:.lua --regex-MYLUA="/^.*\s*function\s*(\w+)\s*\(.*$/\1/f/" --languages=MYLUA --excmd=number -R .
2 つとも、Windows では問題なく動作します。
OSX ではエラーは発生しませんでしたが、tags ファイルが空です。
PS: OSX のデフォルトの ctags ではなく、Exuberant Ctags v5.8 を使用しました。
ctags のテスト Lua コードを次に示します。
function f1()
end
function c.f2()
end
function c:f3()
end