/*++ Copyright (c) Microsoft Corporation Licensed under the MIT license. Module Name: - VsDevCmdGenerator Abstract: - Dynamic profile generator for Visual Studio Developer Command Prompt Author(s): - Charles Willis - October 2020 --*/ #pragma once #include "BaseVisualStudioGenerator.h" namespace winrt::Microsoft::Terminal::Settings::Model { class VsDevCmdGenerator final : public BaseVisualStudioGenerator { public: std::wstring_view GetNamespace() const noexcept override { return std::wstring_view{ L"Windows.Terminal.VisualStudio.CommandPrompt" }; } bool IsInstanceValid(const VsSetupConfiguration::VsSetupInstance&) const override { // We only support version of VS from 15.0. // Per heaths: The [ISetupConfiguration] COM server only supports Visual Studio 15.0 and newer anyway. // Eliding the version range will improve the discovery performance by not having to parse or compare the versions. return true; } std::wstring GetProfileGuidSeed(const VsSetupConfiguration::VsSetupInstance& instance) const override { return L"VsDevCmd" + instance.GetInstanceId(); } std::wstring GetProfileIconPath() const override { return L"ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png"; } std::wstring GetProfileName(const VsSetupConfiguration::VsSetupInstance& instance) const override; std::wstring GetProfileCommandLine(const VsSetupConfiguration::VsSetupInstance& instance) const override; }; };