【VSCode】VSCodeでLuaエディタlua-language-serverを使う

VSCodeLuaエディタlua-language-serverを使う方法についてまとめました。

VSCode 1.55.1

lua-language-server?

lua-language-serverはオープンソースLuaのエディタです。
VSCode拡張機能として提供されています。

github.com

本記事ではこれを導入してLuaの開発環境を構築します。

導入

Visual Studio Codeをインストールしていない場合には以下からダウンロードしてインストールします。

code.visualstudio.com

Visual Studio Codeを開いたら以下の手順でlua-language-serverを追加します。

f:id:halya_11:20210410165810p:plain
拡張機能を追加

次にFile > Open FolderからLuaスクリプトの入っているフォルダを開きます。
Luaファイルのシンタックスハイライトが効いていれば導入完了です。

Ctrlを押しながら変数をクリックすると定義に飛べたり、
カーソルを合わせると詳細が表示されたり、右クリックからリネームできたりします。

Emmyアノテーションについて

lua-language-serverの特徴的な機能としてEmmyアノテーションがあります。
以下のようにクラスや変数、関数などの情報をアノテーションの形で付与できる機能です。

---@class Vector2 @クラスの型を定義できる
---@field public y number @フィールドを定義できる(このクラスに存在しなくても)
local Vector2 = {

    ---@type number @フィールドの型を定義できる
    x = 0;

    ---@param self table @引数の型を定義できる
    log = function(self)
        print(string.format("{%d, %d}", self.x, self.y))
    end;

    ---@param x number
    ---@param y number
    ---@return Vector2 @戻り値の型を定義できる
    new = function(x, y)
        local obj = {}
        obj.x = x
        obj.y = y
        return obj
    end;
}

local pos1 = Vector2.new(1, 2)
pos1:log()
print(pos1.x)
print(pos1.y)

詳細は以下のページを参照してください。

emmylua.github.io

.lua以外の拡張子をluaとして認識させたい

.lua以外の拡張子をluaとして認識させるためにはファイルの関連設定を行います。
これについては以下の記事にまとめていますので、こちらを参照してください。

light11.hatenadiary.com

関連

light11.hatenadiary.com

参考

github.com

code.visualstudio.com

emmylua.github.io