@@ -10,6 +10,7 @@ public static partial class DiffTools
1010 bool ? requiresTarget = null ,
1111 bool ? useShellExecute = true ,
1212 bool ? createNoWindow = null ,
13+ bool ? killLockingProcess = null ,
1314 LaunchArguments ? launchArguments = null ,
1415 string ? exePath = null ,
1516 IEnumerable < string > ? binaryExtensions = null )
@@ -30,26 +31,27 @@ public static partial class DiffTools
3031 launchArguments ?? existing . LaunchArguments ,
3132 exePath ?? existing . ExePath ,
3233 binaryExtensions ?? existing . BinaryExtensions ,
33- createNoWindow ?? existing . CreateNoWindow ) ;
34+ createNoWindow ?? existing . CreateNoWindow ,
35+ killLockingProcess ?? existing . KillLockingProcess ) ;
3436 }
3537
3638 public static ResolvedTool ? AddTool ( string name , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , bool useShellExecute , IEnumerable < string > binaryExtensions , OsSupport osSupport ) =>
3739 AddTool ( name , null , autoRefresh , isMdi , supportsText , requiresTarget , binaryExtensions , osSupport , useShellExecute , createNoWindow : false ) ;
3840
39- public static ResolvedTool ? AddTool ( string name , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , bool useShellExecute , LaunchArguments launchArguments , string exePath , IEnumerable < string > binaryExtensions , bool createNoWindow = false ) =>
40- AddInner ( name , null , autoRefresh , isMdi , supportsText , requiresTarget , binaryExtensions , exePath , launchArguments , useShellExecute , createNoWindow ) ;
41+ public static ResolvedTool ? AddTool ( string name , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , bool useShellExecute , LaunchArguments launchArguments , string exePath , IEnumerable < string > binaryExtensions , bool createNoWindow = false , bool killLockingProcess = false ) =>
42+ AddInner ( name , null , autoRefresh , isMdi , supportsText , requiresTarget , binaryExtensions , exePath , launchArguments , useShellExecute , createNoWindow , killLockingProcess ) ;
4143
42- static ResolvedTool ? AddTool ( string name , DiffTool ? diffTool , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , IEnumerable < string > binaryExtensions , OsSupport osSupport , bool useShellExecute , bool createNoWindow )
44+ static ResolvedTool ? AddTool ( string name , DiffTool ? diffTool , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , IEnumerable < string > binaryExtensions , OsSupport osSupport , bool useShellExecute , bool createNoWindow , bool killLockingProcess = false )
4345 {
4446 if ( ! OsSettingsResolver . Resolve ( name , osSupport , out var exePath , out var launchArguments ) )
4547 {
4648 return null ;
4749 }
4850
49- return AddInner ( name , diffTool , autoRefresh , isMdi , supportsText , requiresTarget , binaryExtensions , exePath , launchArguments , useShellExecute , createNoWindow ) ;
51+ return AddInner ( name , diffTool , autoRefresh , isMdi , supportsText , requiresTarget , binaryExtensions , exePath , launchArguments , useShellExecute , createNoWindow , killLockingProcess ) ;
5052 }
5153
52- static ResolvedTool ? AddInner ( string name , DiffTool ? diffTool , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , IEnumerable < string > binaries , string exePath , LaunchArguments launchArguments , bool useShellExecute , bool createNoWindow )
54+ static ResolvedTool ? AddInner ( string name , DiffTool ? diffTool , bool autoRefresh , bool isMdi , bool supportsText , bool requiresTarget , IEnumerable < string > binaries , string exePath , LaunchArguments launchArguments , bool useShellExecute , bool createNoWindow , bool killLockingProcess = false )
5355 {
5456 Guard . AgainstEmpty ( name , nameof ( name ) ) ;
5557 if ( resolved . Any ( _ => _ . Name . Equals ( name , StringComparison . OrdinalIgnoreCase ) ) )
@@ -73,7 +75,8 @@ public static partial class DiffTools
7375 requiresTarget ,
7476 supportsText ,
7577 useShellExecute ,
76- createNoWindow ) ;
78+ createNoWindow ,
79+ killLockingProcess ) ;
7780
7881 AddResolvedToolAtStart ( tool ) ;
7982
@@ -111,7 +114,8 @@ static void InitTools(bool throwForNoTool, IEnumerable<DiffTool> order)
111114 definition . BinaryExtensions ,
112115 definition . OsSupport ,
113116 definition . UseShellExecute ,
114- definition . CreateNoWindow ) ;
117+ definition . CreateNoWindow ,
118+ definition . KillLockingProcess ) ;
115119 }
116120
117121 custom . Reverse ( ) ;
0 commit comments