至少我得到了這個問題的風滾草徽章。
經過大量的逆向工程的我找到了解決辦法...這是不記錄任何地方.. ..
步數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{...}
就是這樣。您現在應該能夠在Visual Studio的編輯器列表中看到您的編輯器。
當文件映射正確時,將調用編輯器。
希望這篇文章可以節省大量的時間,他人..
如果只有甲骨文會得到他們的ODT團隊實施此爲他們的編輯器 – Jay