479ef264b2
This implements command line matching for `CascadiaSettings::GetProfileForArgs`. The command lines for all user profiles are resolved to absolute file paths, argument quotes are standardized ("canonicalized") and the results are cached. When `GetProfileForArgs` is called with a Commandline() value, we "canonicalize" the argument as well and find the profile that is the longest prefix. If none could be found the default profile is returned. ## PR Checklist * [x] Closes #9458 * [x] Closes #10952 * [x] I work here * [ ] Tests added/passed ## Validation Steps Performed * Open a `cmd.exe` tab in the store-version of WT * Run `start cmd` --> A tab with the `cmd.exe` profile opens * Run `start pwsh.exe` --> A tab with the PowerShell 7 profile opens * Run PowerShell 7 from the start menu --> A tab with the PowerShell 7 profile opens * Create a symlink for PowerShell 7 and launch `pwsh.exe` from there --> A tab with the PowerShell 7 profile opens
30 lines
1.2 KiB
Plaintext
30 lines
1.2 KiB
Plaintext
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
import "ITerminalConnection.idl";
|
|
|
|
namespace Microsoft.Terminal.TerminalConnection
|
|
{
|
|
delegate void NewConnectionHandler(ConptyConnection connection);
|
|
|
|
[default_interface] runtimeclass ConptyConnection : ITerminalConnection
|
|
{
|
|
ConptyConnection();
|
|
Guid Guid { get; };
|
|
String Commandline { get; };
|
|
void ClearBuffer();
|
|
|
|
static event NewConnectionHandler NewConnection;
|
|
static void StartInboundListener();
|
|
static void StopInboundListener();
|
|
|
|
static Windows.Foundation.Collections.ValueSet CreateSettings(String cmdline,
|
|
String startingDirectory,
|
|
String startingTitle,
|
|
IMapView<String, String> environment,
|
|
UInt32 rows,
|
|
UInt32 columns,
|
|
Guid guid);
|
|
};
|
|
}
|