Adding service operations for external languages (#918)

* Added service operations for external languages
This commit is contained in:
Leila Lali
2020-02-21 08:52:58 -08:00
committed by GitHub
parent 927b0d73ca
commit 73fc70fbbc
17 changed files with 1440 additions and 219 deletions

View File

@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlTools.Hosting.Protocol.Contracts;
namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageDeleteRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }
/// <summary>
/// Language name
/// </summary>
public string LanguageName { get; set; }
}
/// <summary>
/// Response class for external language status
/// </summary>
public class ExternalLanguageDeleteResponseParams
{
}
/// <summary>
/// Request class for external language status
/// </summary>
public class ExternalLanguageDeleteRequest
{
public static readonly
RequestType<ExternalLanguageDeleteRequestParams, ExternalLanguageDeleteResponseParams> Type =
RequestType<ExternalLanguageDeleteRequestParams, ExternalLanguageDeleteResponseParams>.Create("languageExtension/delete");
}
}

View File

@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlTools.Hosting.Protocol.Contracts;
using System.Collections.Generic;
namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageListRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }
}
/// <summary>
/// Response class for external language list
/// </summary>
public class ExternalLanguageListResponseParams
{
/// <summary>
/// Language status
/// </summary>
public List<ExternalLanguage> Languages { get; set; }
}
/// <summary>
/// Request class for external language list
/// </summary>
public class ExternalLanguageListRequest
{
public static readonly
RequestType<ExternalLanguageListRequestParams, ExternalLanguageListResponseParams> Type =
RequestType<ExternalLanguageListRequestParams, ExternalLanguageListResponseParams>.Create("languageExtension/list");
}
}

View File

@@ -0,0 +1,83 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System;
using System.Collections.Generic;
using System.IO;
namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public enum ExternalLanguagePlatform
{
None,
Windows,
Linux
}
/// <summary>
/// Language metadata
/// </summary>
public class ExternalLanguage
{
/// <summary>
/// Language Name
/// </summary>
public string Name { get; set; }
/// <summary>
/// Language Owner
/// </summary>
public string Owner { get; set; }
public List<ExternalLanguageContent> Contents { get; set; }
/// <summary>
/// Created Date
/// </summary>
public string CreatedDate { get; set; }
}
public class ExternalLanguageContent
{
public bool IsLocalFile { get; set; }
/// <summary>
/// Path to extension file
/// </summary>
public string PathToExtension { get; set; }
/// <summary>
/// Extension file name
/// </summary>
public string ExtensionFileName { get; set; }
/// <summary>
/// Platform name
/// </summary>
public ExternalLanguagePlatform PlatformId
{
get
{
return string.IsNullOrWhiteSpace(Platform) ? ExternalLanguagePlatform.None : (ExternalLanguagePlatform)Enum.Parse(typeof(ExternalLanguagePlatform), Platform, true);
}
}
public string Platform { get; set; }
/// <summary>
/// Extension parameters
/// </summary>
public string Parameters { get; set; }
/// <summary>
/// Environment variables
/// </summary>
public string EnvironmentVariables { get; set; }
}
}

View File

@@ -0,0 +1,43 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlTools.Hosting.Protocol.Contracts;
namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageStatusRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }
/// <summary>
/// Language name
/// </summary>
public string LanguageName { get; set; }
}
/// <summary>
/// Response class for external language status
/// </summary>
public class ExternalLanguageStatusResponseParams
{
/// <summary>
/// Language status
/// </summary>
public bool Status { get; set; }
}
/// <summary>
/// Request class for external language status
/// </summary>
public class ExternalLanguageStatusRequest
{
public static readonly
RequestType<ExternalLanguageStatusRequestParams, ExternalLanguageStatusResponseParams> Type =
RequestType<ExternalLanguageStatusRequestParams, ExternalLanguageStatusResponseParams>.Create("languageExtension/status");
}
}

View File

@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlTools.Hosting.Protocol.Contracts;
namespace Microsoft.SqlTools.ServiceLayer.LanguageExtensibility.Contracts
{
public class ExternalLanguageUpdateRequestParams
{
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }
/// <summary>
/// Language name
/// </summary>
public ExternalLanguage Language { get; set; }
}
/// <summary>
/// Response class for external language update
/// </summary>
public class ExternalLanguageUpdateResponseParams
{
}
/// <summary>
/// Request class for external language status
/// </summary>
public class ExternalLanguageUpdateRequest
{
public static readonly
RequestType<ExternalLanguageUpdateRequestParams, ExternalLanguageUpdateResponseParams> Type =
RequestType<ExternalLanguageUpdateRequestParams, ExternalLanguageUpdateResponseParams>.Create("languageExtension/update");
}
}