少なくとも、私はこの質問でタンブルウィード バッジを取得しました。
多くのリバースエンジニアリングの後、私は解決策を見つけました...これは文書化されていません..どこでも..
ステップ番号 1:
最初に、付属のすべての機能を備えたエディター ファクトリを作成する必要があります。MSVS には拡張機能があります。
ステップ番号2:次に、そのようなクラスを作成する必要があります
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
class ProvideFileExtensionMapping : RegistrationAttribute
{
private readonly string _name, _id, _editorGuid, _package;
private readonly int _sortPriority;
public ProvideFileExtensionMapping(string id, string name, object editorGuid, string package, int sortPriority)
{
_id = id;
_name = name;
if (editorGuid is Type)
{
_editorGuid = ((Type)editorGuid).GUID.ToString("B");
}
else
{
_editorGuid = editorGuid.ToString();
}
_package = package;
_sortPriority = sortPriority;
}
public override void Register(RegistrationContext context)
{
using (Key mappingKey = context.CreateKey("FileExtensionMapping\\" + _id))
{
mappingKey.SetValue("", _name);
mappingKey.SetValue("DisplayName", _name);
mappingKey.SetValue("EditorGuid", _editorGuid);
mappingKey.SetValue("Package", _package);
mappingKey.SetValue("SortPriority", _sortPriority);
}
}
public override void Unregister(RegistrationAttribute.RegistrationContext context)
{
}
}
ステップ 3: 次に、このクラスを属性としてエディタ ファクトリ (ステップ 1 で作成したもの) に追加する必要があります。
[ProvideFileExtensionMapping("{E23E32ED-3467-4401-A364-1352666A3502}", "RText Editor", typeof(EditorFactory), GuidList.guidRTextEditorPluginEditorFactoryString, 100)]
public sealed class EditorFactory : IVsEditorFactory, IDisposable{...}
それでおしまい。これで、ビジュアル スタジオのエディターのリストにエディターが表示されるはずです。
ファイルのマッピングが正しい場合、エディタが呼び出されます。
うまくいけば、この投稿は他の誰かのために多くの時間を節約します..