( *゚▽゚* っ)З を挿入するだけの簡単なXamarin Studioのアドインを作ってみた。

  • 6
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

ちょまぎょ ( *゚▽゚* っ)З を挿入するだけの簡単なXamarin Studioのアドインを作ってみたので、
作り方をメモしておきます。

作るもの

Xamarin Studioの編集メニューに、( *゚▽゚* っ)З を挿入する項目を増やします。
( *゚▽゚*  っ)З

作成と利用の流れ

  1. Xamarin Studioに「Addin Maker」アドインを追加
  2. アドインの作成
  3. アドインのパッケージ化
  4. パッケージ化したアドインのインストール
  5. アドイン(メニュー項目)へのショートカットキーの割り当て

作ってみる

1. Xamarin Studioに「Addin Maker」アドインを追加

※日本語と英語の両方を記載します。
 (Xamarin Studioのバージョンによって日本語環境でも表記が異なります)

  1. メニューから、アドイン... (Add-ins...)を選択し、アドインマネージャー(Add-in Manager)を起動。
  2. ギャラリー(Gallery)の Addin Development 内にある Addin Maker をインストール。

2. アドインの作成

新しいプロジェクトのテンプレートとして、Xamarin Studio Addin が追加されているので、
このテンプレートから新しいプロジェクトを作成します。
(その他 > Miscellaneous > 全般 > Xamarin Studio Addin)

プロジェクトを作成したら、アドインを作成していきます。

Manifest.addin.xml

編集メニューの中に項目を追加するため、Extension path に "/MonoDevelop/Ide/Commands/Edit" を指定します。
また、_labelがメニューに表示されるテキストなので、とりあえず、( *゚▽゚* っ)Зにしておきます。

<?xml version="1.0" encoding="UTF-8"?>
<ExtensionModel>
    <Extension path="/MonoDevelop/Ide/Commands/Edit">
        <Command id="InsertChomagyo.ChomagyoCommands.InsertChomagyo" _label="( *゚▽゚*  っ)З" defaultHandler="InsertChomagyo.InsertChomagyoHandler" />
    </Extension>
    <Extension path="/MonoDevelop/Ide/MainMenu/Edit">
        <CommandItem id="InsertChomagyo.ChomagyoCommands.InsertChomagyo" />
    </Extension>
</ExtensionModel>

ChomagyoCommands.cs

namespace InsertChomagyo
{
    public enum ChomagyoCommands
    {
        InsertChomagyo,
    }
}

InsertChomagyoHandler.cs

このままだと、Mono.TextEditorの名前空間が見つからないという警告が出ます。
次項記載の、Addin Referencesの追加を行うと警告は消えます。

using MonoDevelop.Components.Commands;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Gui;
using Mono.TextEditor;
using System;

namespace InsertChomagyo
{
    public class InsertChomagyoHandler : CommandHandler
    {
        protected override void Run()
        {
            Document doc = IdeApp.Workbench.ActiveDocument;
            var textEditorData = doc.GetContent<ITextEditorDataProvider>().GetTextEditorData();
            textEditorData.InsertAtCaret("// ( *゚▽゚*  っ)З" + Environment.NewLine);
        }

        protected override void Update(CommandInfo info)
        {
            Document doc = IdeApp.Workbench.ActiveDocument;
            info.Enabled = doc != null && doc.GetContent<ITextEditorDataProvider>() != null;
        }
    }
}

Addin Referencesの追加

  1. ソリューション内の Addin References を右クリックして、Add References を選択。
  2. MonoDevelop.SourceEditor2 にチェックを入れて追加。
    (これを追加しないとMono.TextEditorの名前空間が使用できません)

アドインの作成完了とテスト

これでアドインの作成は完了です(∩´∀`)∩ワーイ
Debugでビルドすると、新しくXamarin Studioが起動して、作成したアドインの動作を試すことができます。

なお、上記のように作成するとソリューションの中身は↓のようになります。
ソリューションの中身

3. アドインのパッケージ化

ビルドしたアドインは、下記のような.dll形式なので、これを配布できるパッケージにします。
Releaseでビルドしたもの

パッケージ化するコマンド

/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool setup pack DLL名

例として私の環境で実行したコマンドの例です。
コマンドの例

パッケージ化すると、.mpackという拡張子のファイルが一つできます。

4. パッケージ化したアドインのインストール

パッケージ化したアドインは、1.で使用したアドインマネージャー(Add-in Manager)内にある、
ファイルからインストール...(Install from file...) ボタンからインストールできます。

5. アドイン(メニュー項目)へのショートカットキーの割り当て

ユーザ設定のキーバインディングから、ショートカットキーを割り当てることができます。
これでキー連打で ( *゚▽゚* っ)З をどんどん書けますね(・∀・)
キーバインディング

おわりに

試しに作成してみましたが、簡単なアドインならさっくりできそうですね(`・ω・´)