我已经为Visual Studio设置了自己的源代码控制插件。
它已在visual studio中注册,可以从Source Control插件列表中选择。
我在使用Visual Studio中修改的文件时没有遇到任何问题,因为我在保存之前用来捕获事件:IVsRunningDocTableEvents3
如果文件未在Visual Studio中作为活动文档加载,我在检测它即将被编辑时遇到问题,因此我可以从源代码管理中检查它。
我尝试过使用ReSharper事件 - 这里建议使用DocumentManagerOperations:
https://resharper-support.jetbrains.com/hc/en-us/community/posts/205991489-Document-Saved-Event
我在检测是否需要检出这些类型的文件时遇到问题:
是否有一个在编辑文件但未加载时触发的事件?
谢谢!
我使用了界面:IVsQueryEditQuerySave2
并利用:
public int QueryEditFiles(uint rgfQueryEdit, int cFiles, string[] rgpszMkDocuments, uint[] rgrgf,
VSQEQS_FILE_ATTRIBUTE_DATA[] rgFileInfo, out uint pfEditVerdict, out uint prgfMoreInfo)
和:
public int QuerySaveFiles(uint rgfQuerySave, int cFiles, string[] rgpszMkDocuments, uint[] rgrgf,
VSQEQS_FILE_ATTRIBUTE_DATA[] rgFileInfo, out uint pdwQsResult)
这样的事情:
if (rgfQueryEdit != (uint)tagVSQueryEditFlags.QEF_ReportOnly)
{
if (rgpszMkDocuments != null)
{
foreach (var doc in rgpszMkDocuments)
{
//Do Something
希望能帮到你。