Skip to content

Commit 49a74c8

Browse files
committed
Move save input behind velocity
1 parent addf247 commit 49a74c8

File tree

4 files changed

+56
-38
lines changed

4 files changed

+56
-38
lines changed

src/cascadia/TerminalApp/AppActionHandlers.cpp

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,44 +1267,47 @@ namespace winrt::TerminalApp::implementation
12671267
void TerminalPage::_HandleSaveTask(const IInspectable& /*sender*/,
12681268
const ActionEventArgs& args)
12691269
{
1270-
if (args)
1270+
if (Feature_SaveTask::IsEnabled())
12711271
{
1272-
if (const auto& realArgs = args.ActionArgs().try_as<SaveTaskArgs>())
1272+
if (args)
12731273
{
1274-
if (realArgs.Commandline().empty())
1274+
if (const auto& realArgs = args.ActionArgs().try_as<SaveTaskArgs>())
12751275
{
1276-
if (const auto termControl{ _GetActiveControl() })
1276+
if (realArgs.Commandline().empty())
12771277
{
1278-
if (termControl.HasSelection())
1278+
if (const auto termControl{ _GetActiveControl() })
12791279
{
1280-
const auto selections{ termControl.SelectedText(true) };
1281-
const auto selection = std::accumulate(selections.begin(), selections.end(), std::wstring());
1282-
realArgs.Commandline(selection);
1280+
if (termControl.HasSelection())
1281+
{
1282+
const auto selections{ termControl.SelectedText(true) };
1283+
const auto selection = std::accumulate(selections.begin(), selections.end(), std::wstring());
1284+
realArgs.Commandline(selection);
1285+
}
12831286
}
12841287
}
1285-
}
12861288

1287-
try
1288-
{
1289-
KeyChord keyChord = nullptr;
1290-
hstring keyChordText = L"";
1291-
if (!realArgs.KeyChord().empty())
1289+
try
1290+
{
1291+
KeyChord keyChord = nullptr;
1292+
hstring keyChordText = L"";
1293+
if (!realArgs.KeyChord().empty())
1294+
{
1295+
keyChord = KeyChordSerialization::FromString(winrt::to_hstring(realArgs.KeyChord()));
1296+
keyChordText = KeyChordSerialization::ToString(keyChord);
1297+
}
1298+
1299+
_settings.GlobalSettings().ActionMap().AddSendInputAction(realArgs.Name(), realArgs.Commandline(), keyChord);
1300+
ActionSaved(realArgs.Commandline(), realArgs.Name(), keyChordText);
1301+
_settings.WriteSettingsToDisk();
1302+
}
1303+
catch (const winrt::hresult_error& ex)
12921304
{
1293-
keyChord = KeyChordSerialization::FromString(winrt::to_hstring(realArgs.KeyChord()));
1294-
keyChordText = KeyChordSerialization::ToString(keyChord);
1305+
const auto message = ex.message();
1306+
ActionSaveFailed(message);
12951307
}
12961308

1297-
_settings.GlobalSettings().ActionMap().AddSendInputAction(realArgs.Name(), realArgs.Commandline(), keyChord);
1298-
ActionSaved(realArgs.Commandline(), realArgs.Name(), keyChordText);
1299-
_settings.WriteSettingsToDisk();
1300-
}
1301-
catch (const winrt::hresult_error& ex)
1302-
{
1303-
const auto message = ex.message();
1304-
ActionSaveFailed(message);
1309+
args.Handled(true);
13051310
}
1306-
1307-
args.Handled(true);
13081311
}
13091312
}
13101313
}

src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ static constexpr std::string_view SwitchToTabKey{ "switchToTab" };
5252
static constexpr std::string_view TabSearchKey{ "tabSearch" };
5353
static constexpr std::string_view ToggleAlwaysOnTopKey{ "toggleAlwaysOnTop" };
5454
static constexpr std::string_view ToggleCommandPaletteKey{ "commandPalette" };
55-
static constexpr std::string_view SaveTaskKey{ "saveTask" };
55+
static constexpr std::string_view SaveTaskKey{ "experimental.saveTask" };
5656
static constexpr std::string_view SuggestionsKey{ "showSuggestions" };
5757
static constexpr std::string_view ToggleFocusModeKey{ "toggleFocusMode" };
5858
static constexpr std::string_view SetFocusModeKey{ "setFocusMode" };

src/cascadia/TerminalSettingsModel/ActionArgs.cpp

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -950,21 +950,25 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation
950950

951951
winrt::hstring SaveTaskArgs::GenerateName() const
952952
{
953-
std::wstringstream ss;
953+
if (Feature_SaveTask::IsEnabled())
954+
{
955+
std::wstringstream ss;
954956

955-
ss << RS_(L"SaveActionNamePrefix").c_str() << L" commandline: " << Commandline().c_str();
957+
ss << RS_(L"SaveActionNamePrefix").c_str() << L" commandline: " << Commandline().c_str();
956958

957-
if (!Name().empty())
958-
{
959-
ss << L", name: " << Name().c_str();
960-
}
959+
if (!Name().empty())
960+
{
961+
ss << L", name: " << Name().c_str();
962+
}
961963

962-
if (!KeyChord().empty())
963-
{
964-
ss << L", keyChord " << KeyChord().c_str();
965-
}
964+
if (!KeyChord().empty())
965+
{
966+
ss << L", keyChord " << KeyChord().c_str();
967+
}
966968

967-
return winrt::hstring{ ss.str() };
969+
return winrt::hstring{ ss.str() };
970+
}
971+
return L"";
968972
}
969973

970974
static winrt::hstring _FormatColorString(const Control::SelectionColor& selectionColor)

src/features.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,15 @@
155155
</alwaysEnabledBrandingTokens>
156156
</feature>
157157

158+
<feature>
159+
<name>Feature_SaveTask</name>
160+
<description>Save Input</description>
161+
<id>9971</id>
162+
<stage>AlwaysDisabled</stage>
163+
<alwaysEnabledBrandingTokens>
164+
<brandingToken>Dev</brandingToken>
165+
<brandingToken>Canary</brandingToken>
166+
</alwaysEnabledBrandingTokens>
167+
</feature>
168+
158169
</featureStaging>

0 commit comments

Comments
 (0)