我已经为Visual Studio设置了自己的源代码管理插件。
它已在Visual Studio中注册,并且可以从Source Control插件列表中选择。
我在Visual Studio中使用修改过的文件没有任何问题,因为我在保存之前用于捕获事件: IVsRunningDocTableEvents3
如果该文件未在Visual Studio中作为活动文档加载,则我在检测到它即将被编辑时遇到问题,因此可以从Source Control中检出它。
我尝试使用ReSharper事件-此处建议使用DocumentManagerOperations:
https://resharper-support.jetbrains.com/hc/en-us/community/posts/205991489-Document-Saved-Event
在检测是否需要检出这些类型的文件时遇到问题:
.DotSettings。 –保存ReSharper选项设置时
csproj –使用ReSharper添加Nuget软件包时。
.cs,即 修复项目中的命名。
编辑文件但未加载文件时会触发事件吗?
谢谢!
答案 0 :(得分:0)
我使用了界面: 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
希望对您有帮助。