/*++
Copyright (c) Microsoft Corporation
Licensed under the MIT license.

Module Name:
- VsDevShellGenerator

Abstract:
- Dynamic profile generator for Visual Studio Developer PowerShell

Author(s):
- Charles Willis - October 2020

--*/

#pragma once
#include "BaseVisualStudioGenerator.h"

namespace winrt::Microsoft::Terminal::Settings::Model
{
    class VsDevShellGenerator final : public BaseVisualStudioGenerator
    {
    public:
        std::wstring_view GetNamespace() const noexcept override
        {
            return std::wstring_view{ L"Windows.Terminal.VisualStudio.Powershell" };
        }

        bool IsInstanceValid(const VsSetupConfiguration::VsSetupInstance& instance) const override
        {
            return instance.VersionInRange(L"[16.2,)");
        }

        std::wstring GetProfileGuidSeed(const VsSetupConfiguration::VsSetupInstance& instance) const override
        {
            return L"VsDevShell" + instance.GetInstanceId();
        }

        std::wstring GetProfileIconPath() const override
        {
            return L"ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png";
        }

        std::wstring GetProfileName(const VsSetupConfiguration::VsSetupInstance& instance) const override;
        std::wstring GetProfileCommandLine(const VsSetupConfiguration::VsSetupInstance& instance) const override;
    };
};
