File: Processors\Interfaces\IArgumentProcessorCapabilities.cs
Web Access
Project: src\src\vstest\src\vstest.console\vstest.console.csproj (vstest.console)
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace Microsoft.VisualStudio.TestPlatform.CommandLine.Processors;

/// <summary>
/// Represents capabilities for an Argument Executor
/// </summary>
internal interface IArgumentProcessorCapabilities
{
    /// <summary>
    /// The short name of the command the ArgumentProcessor handles.  For example "/t".
    /// </summary>
    string? ShortCommandName { get; }

    /// <summary>
    /// The long name of the command the ArgumentProcessor handles.  For example "/tests".
    /// </summary>
    string CommandName { get; }

    /// <summary>
    /// Indicates if multiple of the command are allowed.
    /// </summary>
    bool AllowMultiple { get; }

    /// <summary>
    /// Indicates if the command is a special command.  Special commands can not
    /// be specified directly on the command line (like run tests).
    /// </summary>
    bool IsSpecialCommand { get; }

    /// <summary>
    /// Indicates if the command should always be executed.
    /// </summary>
    bool AlwaysExecute { get; }

    /// <summary>
    /// Indicates if the argument processor is a primary action.
    /// </summary>
    bool IsAction { get; }

    /// <summary>
    /// Indicates the priority of the argument processor.
    /// The priority determines the order in which processors are initialized and executed.
    /// </summary>
    ArgumentProcessorPriority Priority { get; }

    /// <summary>
    /// The resource identifier for the Help Content associated with the decorated argument processor
    /// </summary>
    string? HelpContentResourceName { get; }

    /// <summary>
    /// Based on this enum, corresponding help text will be shown.
    /// </summary>
    HelpContentPriority HelpPriority { get; }
}