Open4
neovimのluaプラグインを作成してみる。
まずはテンプレがあるようなのでこいつから派生する。
プロジェクト名を変更ポイントとしてはプロジェクト名に.nvimを入れるとフォルダ分割されることを知らなくてはまった。
hello worldは表示されたがデバッグする方法が難しかった。
requreがlua以下を探しに行かないようなのでluaディレクトリ下で以下コマンドを打つことでどうにかなる。
: luafile ../plugin/swapclear.lua
後出しだが、ディレクトリ構成は下
.
├── Makefile
├── README.md
├── lua
│ ├── swpclear
│ │ └── module.lua
│ └── swpclear.lua
├── plugin
│ └── swpclear.lua
└── tests
├── minimal_init.lua
└── swpclear
└── swpclear_spec.lua
と思ったけど、再読み込みできてるか謎になってきた。
キャッシュをクリアする必要があるそうな
plugin下のswpclear.luaの頭に追加で毎回更新が動くようになった。
package.loaded["swpclear"] = nil
package.loaded["swpclear.module"] = nil
vim.api.nvim_create_user_command("SwpClear", require("swpclear").swpclr, {force=true})
みんな、、、pluginフォルダ作ってなかったりだなぁとは思ってはいる。
Exコマンドの箇所に出力するのは標準出力で良さそう
print("hoge")
パッケージのパラメータはこんな感じで定義だと思う。
local M = {}
M.config = {
-- default config
opt = "Hello!",
path = "aa"
}
こんな感じで初期化できる。
require("swpclear").setup({
path="asda"
})
M.config = vim.tbl_deep_extend("force", M.config, args or {})
こいつが展開してくれてる、おそらくハッシュテーブルにしてるんだろうけど中身は見てない。