コード例 #1
0
    /// <summary>
    /// Find and kill a diff tool process.
    /// </summary>
    public static void Kill(string tempFile, string targetFile)
    {
        if (Disabled)
        {
            return;
        }

        var extension = Extensions.GetExtension(tempFile);

        if (!DiffTools.TryFindByExtension(extension, out var diffTool))
        {
            Logging.Write($"Extension not found. {extension}");
            return;
        }

        var command = diffTool.BuildCommand(tempFile, targetFile);

        if (diffTool.IsMdi)
        {
            Logging.Write($"DiffTool is Mdi so not killing. diffTool: {diffTool.ExePath}");
            return;
        }

        ProcessCleanup.Kill(command);
    }
コード例 #2
0
    public void TryFind()
    {
        Assert.True(DiffTools.TryFindByExtension("txt", out var resolved));
        Assert.NotNull(resolved);

        Assert.False(DiffTools.TryFindByExtension("notFound", out resolved));
        Assert.Null(resolved);
    }
コード例 #3
0
    public void AddToolBasedOn()
    {
        #region AddToolBasedOn

        var resolvedTool = DiffTools.AddToolBasedOn(
            DiffTool.VisualStudio,
            name: "MyCustomDiffTool",
            targetLeftArguments: (temp, target) => $"\"custom args \"{target}\" \"{temp}\"",
            targetRightArguments: (temp, target) => $"\"custom args \"{temp}\" \"{target}\"") !;

        #endregion

        Assert.Equal(resolvedTool, DiffTools.Resolved.First());
        Assert.True(DiffTools.TryFindByExtension("txt", out var forExtension));
        Assert.Equal(resolvedTool, forExtension);
        Assert.Equal("\"custom args \"bar\" \"foo\"", resolvedTool.TargetLeftArguments("foo", "bar"));
        Assert.Equal("\"custom args \"foo\" \"bar\"", resolvedTool.TargetRightArguments("foo", "bar"));
    }
コード例 #4
0
    public void OrderShouldNotMessWithAddTool()
    {
        var diffToolPath = FakeDiffTool.Exe;
        var resolvedTool = DiffTools.AddTool(
            name: "MyCustomDiffTool",
            autoRefresh: true,
            isMdi: false,
            supportsText: true,
            requiresTarget: true,
            targetLeftArguments: (tempFile, targetFile) => $"\"{targetFile}\" \"{tempFile}\"",
            targetRightArguments: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\"",
            exePath: diffToolPath,
            binaryExtensions: Enumerable.Empty <string>()) !;

        DiffTools.UseOrder(DiffTool.VisualStudio, DiffTool.AraxisMerge);
        Assert.Equal(resolvedTool.Name, DiffTools.Resolved.First().Name);
        Assert.True(DiffTools.TryFindByExtension("txt", out var forExtension));
        Assert.Equal(resolvedTool.Name, forExtension !.Name);
    }
コード例 #5
0
    public void AddTool()
    {
        var diffToolPath = FakeDiffTool.Exe;

        #region AddTool

        var resolvedTool = DiffTools.AddTool(
            name: "MyCustomDiffTool",
            autoRefresh: true,
            isMdi: false,
            supportsText: true,
            requiresTarget: true,
            targetLeftArguments: (tempFile, targetFile) => $"\"{targetFile}\" \"{tempFile}\"",
            targetRightArguments: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\"",
            exePath: diffToolPath,
            binaryExtensions: new[] { "jpg" }) !;

        #endregion

        Assert.Equal(resolvedTool.Name, DiffTools.Resolved.First().Name);
        Assert.True(DiffTools.TryFindByExtension("jpg", out var forExtension));
        Assert.Equal(resolvedTool.Name, forExtension !.Name);
    }