Microのプラグイン開発、文字列を出力する

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
自動補完の提案はありません

があります。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。