Microのプラグインの開発について見ていきます。
最初にプラグインの最低限の構成と、インフォバーにhello microという文字列を出力してみます。
プラグインのファイルは
~/.config/micro/plug/
以下に配置します。
今回はsampleというプラグインにして話を進めます。
下記のように新規で作成するプラグイン用のディレクトリを作成します。
~/.config/micro/plug/sample/
この時のディレクトリ名は半角英数字、ハイフンやアンダースコアであれば自由で良いです。
プラグイン用に用意したディレクトリには下記のようにファイルを作成します。
sample/ ├── sample.lua ├── README.md └── repo.json
README.mdにはプラグインの説明を記載します。
repo.jsonは下記のページを参考にして作成します。
updated-plugins/go-plugin/repo.json at master · micro-editor/updated-plugins
プラグインのコードを書くためのファイルは拡張子を.luaにします。
ファイル名は何でも良いですが、ディレクトリ名と合わせておくと無難です。
プラグインの中身を作成していきます。
~/.config/micro/plug/sample/sample.lua
VERSION = "0.0.1" local micro = import("micro") local config = import("micro/config") function init() config.MakeCommand("fn", fn, config.NoComplete) end function fn() micro.InfoBar():Message("hello micro") end
ファイルを保存して、動作を確認してみます。
説明は後ほど記載しますが、今回のプラグインでは、コマンドモードで
> fn
を実行すると、インフォバーという箇所にhello microという文字列を出力します。
画面左下のインフォバーにhello microという文字列が出力されました。
コードを見ていきます。
local micro = import("micro") local config = import("micro/config")
で今回のプラグインで使用するライブラリを読み込んでおきます。
※ライブラリは他にmicro/shellとmicro/bufferがあります。
micro/runtime/help/plugins.md at master · zyedidia/micro#Accessing micro functions
function init() config.MakeCommand("fn", fn, config.NoComplete) end
でコマンドモードで使用できるコマンドを追加します。
第一引数のfnがコマンドになり、第二引数と同名の関数にプラグインで行いたい処理のコードになります。
今回であれば、
function fn() micro.InfoBar():Message("hello micro") end
が該当します。
micro.InfoBar():Message("hello micro")
でインフォバーに文字列を出力します。
第三引数には自動補完に関する設定を行います。
自動補完の設定は
※下記の内容はGoogle翻訳を利用しています。
FileComplete
現在のディレクトリ内のファイルを使用した自動補完
HelpComplete
ヘルプドキュメントの名前を使用した自動補完
OptionComplete
オプションの名前を使用した自動補完
OptionValueComplete
オプションの名前とその後の有効な値を使用した自動補完
NoComplete
自動補完の提案はありません
があります。