質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Mono

Monoは、Ecma標準に準じた.NET Framework互換の環境を実現するためのオープンソースのソフトウェア群です。Linux、Mac OS X、Windowsなど多くのプラットフォームで動作します。その他にも、特定プラットフォーム向けに特化したサブプロジェクトも存在します。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

2686閲覧

Xamarin StudioのAddinでContextMenuにユーザ定義のコマンドが追加できない

yamachu

総合スコア191

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Mono

Monoは、Ecma標準に準じた.NET Framework互換の環境を実現するためのオープンソースのソフトウェア群です。Linux、Mac OS X、Windowsなど多くのプラットフォームで動作します。その他にも、特定プラットフォーム向けに特化したサブプロジェクトも存在します。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

2グッド

0クリップ

投稿2016/11/07 09:21

編集2016/11/07 09:55

###前提・実現したいこと
Xamarin StudioでC#のファイルを開いている時,右クリックから表示できるContextMenuに例えば全選択などのコマンドを追加するAddinを作成したい.(Ctrl+A or Command + Aでいいじゃないかというかもしれませんが,あくまでも一例)

###発生している問題・エラーメッセージ
ProjectPadやDocumentTab,またサンプルが多くあがっているMainMenuのEditに自作のコマンドを追加することは可能だが,
Editor内部でContextMenuを開いた際追加されていない.

###該当のソースコード
リポジトリをアップしましたので,詳細はそちらからご覧下さい
SampleContextExtend_Teratail_54268

Manifest.addin.xml

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<ExtensionModel> 3 <Extension path="/MonoDevelop/Ide/Commands"> 4 <Command 5 id="SampleContextExtend.SampleCommands.SelectAll" 6 _label="Select All" 7 defaultHandler="SampleContextExtend.SelectAllHandler" /> 8 </Extension> 9 10 <!-- https://forums.xamarin.com/discussion/38464/xamarin-studio-add-in-for-source-editor 11 を見る感じ ContextMenu への追加はこのPathを指定しそう --> 12 <Extension path="/MonoDevelop/SourceEditor2/ContextMenu/Editor"> 13 <Condition id="FileType" fileExtensions=".cs"> 14 <!-- 挿入箇所を指定する必要があるのかと思い(githubでAddinを提供しているものは概ねついていた)付与してみたが変わらず --> 15 <CommandItem 16 id="SampleContextExtend.SampleCommands.SelectAll" 17 insertafter="MonoDevelop.SourceEditor.SourceEditorCommands.MarkerOperations"/> 18 </Condition> 19 </Extension> 20 <!-- 正しく動作が確認できている DocumentTab への追加や ProjectPad への追加, 21 MainMenu/Edit への追加は不要と感じ除外 22 <Extension path="/MonoDevelop/Ide/ContextMenu/DocumentTab"> 23 <CommandItem 24 id="SampleContextExtend.SampleCommands.SelectAll" /> 25 </Extension> 26 <Extension path="/MonoDevelop/Ide/ContextMenu/ProjectPad"> 27 <CommandItem 28 id="SampleContextExtend.SampleCommands.SelectAll" /> 29 </Extension> 30 --> 31</ExtensionModel>

###試したこと
Mono DevelopのGithubリポジトリ内にあるaddinを一通り探り,ContextMenuに表示されている

などを実装しているソース確認をし,模倣してみたが結果は変わらなかった.
またMono Developのページを参照してみたが
Creating contextual menus
の欄がTODOになっていて情報がなかった.

###補足情報(言語/FW/ツール等のバージョンなど)
実装環境
Xamarin Studio Community 6.1.1
Addin Maker 1.3.2
MacOSX 10.11.6

Editタブに表示させショートカットキーにバインドはすでに行ったので,それ以外の手段としてのContextMenuが望ましい.

ikuwow, amay077👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

イメージ説明

最終的な回答ではありません。

Addin Makerを使ってアドイン自体をMonoDevelopからデバッグしていると、デバッグ対象となるmonodevelopの標準出力/標準エラー出力が、Application Outputという部分に出てきます。
今回のアドインは、extension pointが見つけられないと言われているようです。

わたしが見たところ、どうやらManifest.addin.xmlの中に通常あるべき依存アドイン情報が存在しないようです。例えばこんな感じの要素です。
https://github.com/mono/monodevelop/blob/monodevelop-5.9.3-branch/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.addin.xml#L16

(ただ、そもそもルート要素が違うし、別の文法に従っているのかも…? その辺はいまドキュメントを呼んでいるわけではないので把握していません。)

とりあえず、AddIn ReferencesにMonoDevelop.SourceEditor2を追加すれば、これらのWarningsは消えるようです。

とりあえずここまでは分かったので、後はApplication Outputを見ながら調べてみてください。

投稿2016/11/07 10:34

atsushieno

総合スコア121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamachu

2016/11/07 10:54

ご解答ありがとうございます. GUIの変化ばかりを見てApplication OutputのERRORの確認を怠っていました. ご指摘の通りAddin ReferencesのMonoDevelop.SourceEditor2の追加忘れが原因だったようです. 追加したところContextMenuへの追加が出来ました. 迅速なご対応ありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問