## Summary of the Pull Request ![command-palette-001](https://user-images.githubusercontent.com/18356694/85313480-b6dbef00-b47d-11ea-8a8f-a802d26c2f9b.gif) This adds a first iteration on the command palette. Notable missing features are: * Commandline mode: This will be a follow-up PR, following the merge of #6537 * nested and iterable commands: These will additionally be a follow-up PR. This is also additionally based off the addenda in #6532. This does not bind a key for the palette by default. That will be done when the above follow-ups are completed. ## References * #2046 - The original command palette thread * #5400 - This is the megathread for all command palette issues, which is tracking a bunch of additional follow up work * #5674 and #6532 - specs * #6537 - related ## PR Checklist * [x] Closes #2046 - incidentally also closes #6645 * [x] I work here * [x] Tests added/passed * [ ] Requires documentation to be updated - delaying this until it's more polished. ## Detailed Description of the Pull Request / Additional comments * There's a lot of code for autogenerating command names. That's all in `ActionArgs.cpp`, because each case is so _not_ boilerplate, unlike the rest of the code in `ActionArgs.h`. ## Validation Steps Performed * I've been playing with this for months. * Tests * Selfhost with the team
26 lines
844 B
C++
26 lines
844 B
C++
#pragma once
|
|
#include "ActionAndArgs.g.h"
|
|
#include "TerminalWarnings.h"
|
|
#include "..\inc\cppwinrt_utils.h"
|
|
|
|
namespace winrt::TerminalApp::implementation
|
|
{
|
|
struct ActionAndArgs : public ActionAndArgsT<ActionAndArgs>
|
|
{
|
|
static const std::map<std::string_view, ShortcutAction, std::less<>> ActionKeyNamesMap;
|
|
static winrt::com_ptr<ActionAndArgs> FromJson(const Json::Value& json,
|
|
std::vector<::TerminalApp::SettingsLoadWarnings>& warnings);
|
|
|
|
ActionAndArgs() = default;
|
|
hstring GenerateName() const;
|
|
|
|
GETSET_PROPERTY(TerminalApp::ShortcutAction, Action, TerminalApp::ShortcutAction::Invalid);
|
|
GETSET_PROPERTY(IActionArgs, Args, nullptr);
|
|
};
|
|
}
|
|
|
|
namespace winrt::TerminalApp::factory_implementation
|
|
{
|
|
BASIC_FACTORY(ActionAndArgs);
|
|
}
|