Adds array support for the existing `copyFormatting` global setting. This allows users to define which formats they would specifically like to be copied. A boolean value is still accepted and is translated to the following: - `false` --> `"none"` or `[]` - `true` --> `"all"` or `["html", "rtf"]` This also adds `copyFormatting` as a keybinding arg for `copy`. As with the global setting, a boolean value and array value is accepted. CopyFormat is a WinRT enum where each accepted format is a flag. Currently accepted formats include `html`, and `rtf`. A boolean value is accepted and converted. `true` is a conjunction of all the formats. `false` only includes plain text. For the global setting, `null` is not accepted. We already have a default value from before so no worries there. For the keybinding arg, `null` (the default value) means that we just do what the global arg says to do. Overall, the `copyFormatting` keybinding arg is an override of the global setting **when using that keybinding**. References #5212 - Spec for formatted copying References #2690 - disable html copy Validated behavior with every combination of values below: - `copyFormatting` global: { `true`, `false`, `[]`, `["html"]` } - `copyFormatting` copy arg: { `null`, `true`, `false`, `[]`, `[, "html"]`} Closes #4191 Closes #5262
150 lines
3.6 KiB
Plaintext
150 lines
3.6 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
namespace TerminalApp
|
|
{
|
|
interface IActionArgs
|
|
{
|
|
Boolean Equals(IActionArgs other);
|
|
String GenerateName();
|
|
};
|
|
|
|
interface IActionEventArgs
|
|
{
|
|
Boolean Handled;
|
|
IActionArgs ActionArgs { get; };
|
|
};
|
|
|
|
enum Direction
|
|
{
|
|
None = 0,
|
|
Left,
|
|
Right,
|
|
Up,
|
|
Down
|
|
};
|
|
|
|
enum SplitState
|
|
{
|
|
Automatic = -1,
|
|
None = 0,
|
|
Vertical = 1,
|
|
Horizontal = 2
|
|
};
|
|
|
|
enum SplitType
|
|
{
|
|
Manual = 0,
|
|
Duplicate = 1
|
|
};
|
|
|
|
enum SettingsTarget
|
|
{
|
|
SettingsFile = 0,
|
|
DefaultsFile,
|
|
AllFiles
|
|
};
|
|
|
|
[default_interface] runtimeclass NewTerminalArgs {
|
|
NewTerminalArgs();
|
|
String Commandline;
|
|
String StartingDirectory;
|
|
String TabTitle;
|
|
String Profile; // Either a GUID or a profile's name if the GUID isn't a match
|
|
// ProfileIndex can be null (for "use the default"), so this needs to be
|
|
// a IReference, so it's nullable
|
|
Windows.Foundation.IReference<Int32> ProfileIndex { get; };
|
|
|
|
Boolean Equals(NewTerminalArgs other);
|
|
String GenerateName();
|
|
};
|
|
|
|
[default_interface] runtimeclass ActionEventArgs : IActionEventArgs
|
|
{
|
|
ActionEventArgs(IActionArgs args);
|
|
};
|
|
|
|
[default_interface] runtimeclass CopyTextArgs : IActionArgs
|
|
{
|
|
Boolean SingleLine { get; };
|
|
Windows.Foundation.IReference<Microsoft.Terminal.TerminalControl.CopyFormat> CopyFormatting { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass NewTabArgs : IActionArgs
|
|
{
|
|
NewTerminalArgs TerminalArgs { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass SwitchToTabArgs : IActionArgs
|
|
{
|
|
UInt32 TabIndex { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass ResizePaneArgs : IActionArgs
|
|
{
|
|
Direction Direction { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass MoveFocusArgs : IActionArgs
|
|
{
|
|
Direction Direction { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass AdjustFontSizeArgs : IActionArgs
|
|
{
|
|
Int32 Delta { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass SendInputArgs : IActionArgs
|
|
{
|
|
String Input { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass SplitPaneArgs : IActionArgs
|
|
{
|
|
SplitState SplitStyle { get; };
|
|
NewTerminalArgs TerminalArgs { get; };
|
|
SplitType SplitMode { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass OpenSettingsArgs : IActionArgs
|
|
{
|
|
SettingsTarget Target { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass SetColorSchemeArgs : IActionArgs
|
|
{
|
|
String SchemeName { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass SetTabColorArgs : IActionArgs
|
|
{
|
|
Windows.Foundation.IReference<UInt32> TabColor { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass RenameTabArgs : IActionArgs
|
|
{
|
|
String Title { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass ExecuteCommandlineArgs : IActionArgs
|
|
{
|
|
String Commandline;
|
|
};
|
|
|
|
[default_interface] runtimeclass CloseOtherTabsArgs : IActionArgs
|
|
{
|
|
UInt32 Index { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass CloseTabsAfterArgs : IActionArgs
|
|
{
|
|
UInt32 Index { get; };
|
|
};
|
|
|
|
[default_interface] runtimeclass ToggleTabSwitcherArgs : IActionArgs
|
|
{
|
|
Windows.System.VirtualKey AnchorKey { get; };
|
|
};
|
|
}
|