Nun, zumindest habe ich das Tumbleweed-Abzeichen für diese Frage bekommen.
Nach viel Reverse Engineering ich die Lösung gefunden ..., die nicht dokumentiert ist .. Überall ..
Schritt Nummer 1:
Zuerst müssen Sie einen Editor Fabrik mit allen Glocken erstellen und pfeift es kommt - MSVS hat eine Erweiterung dafür.
Schritt Nummer 2: Dann haben Sie eine solche Klasse erstellen
[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)
{
}
}
Schritt 3: Dann müssen Sie diese Klasse als Attribut Editor Fabrik hinzuzufügen (die Sie in Schritt 1) :
[ProvideFileExtensionMapping("{E23E32ED-3467-4401-A364-1352666A3502}", "RText Editor", typeof(EditorFactory), GuidList.guidRTextEditorPluginEditorFactoryString, 100)]
public sealed class EditorFactory : IVsEditorFactory, IDisposable{...}
Das ist es. Sie sollten nun Ihren Editor in der Liste der Editoren in Visual Studio sehen können.
Ihr Editor soll aufgerufen werden, wenn die Dateizuordnung korrekt ist.
Hoffentlich Post spart viel Zeit für jemand anderes ..
Wenn nur Oracle würde ihre ODT-Team erhalten Sie dieses für ihre Editor zu implementieren – Jay