diff --git a/PowerShellEditorServices.build.ps1 b/PowerShellEditorServices.build.ps1 index aa32c403e..85b0998b7 100644 --- a/PowerShellEditorServices.build.ps1 +++ b/PowerShellEditorServices.build.ps1 @@ -66,6 +66,8 @@ $script:RequiredBuildAssets = @{ 'publish/OmniSharp.Extensions.LanguageServer.dll', 'publish/OmniSharp.Extensions.DebugAdapter.dll', 'publish/OmniSharp.Extensions.DebugAdapter.Server.dll', + 'publish/MediatR.dll', + 'publish/MediatR.Extensions.Microsoft.DependencyInjection.dll', 'publish/runtimes/linux-64/native/libdisablekeyecho.so', 'publish/runtimes/osx-64/native/libdisablekeyecho.dylib', 'publish/Serilog.dll', diff --git a/src/PowerShellEditorServices/Hosting/EditorServicesHost.cs b/src/PowerShellEditorServices/Hosting/EditorServicesHost.cs index 0f80f0920..fd14dd787 100644 --- a/src/PowerShellEditorServices/Hosting/EditorServicesHost.cs +++ b/src/PowerShellEditorServices/Hosting/EditorServicesHost.cs @@ -189,6 +189,7 @@ public void StartLogging(string logFilePath, PsesLogLevel logLevel) { Log.Logger = new LoggerConfiguration().Enrich.FromLogContext() .WriteTo.File(logFilePath) + .MinimumLevel.Verbose() .CreateLogger(); _factory = new LoggerFactory().AddSerilog(Log.Logger); _logger = _factory.CreateLogger(); diff --git a/src/PowerShellEditorServices/Server/PsesLanguageServer.cs b/src/PowerShellEditorServices/Server/PsesLanguageServer.cs index 64bb10faa..3d6901479 100644 --- a/src/PowerShellEditorServices/Server/PsesLanguageServer.cs +++ b/src/PowerShellEditorServices/Server/PsesLanguageServer.cs @@ -15,8 +15,8 @@ using Microsoft.PowerShell.EditorServices.Handlers; using Microsoft.PowerShell.EditorServices.Hosting; using Microsoft.PowerShell.EditorServices.Services; -using Microsoft.PowerShell.EditorServices.Services.PowerShellContext; using OmniSharp.Extensions.LanguageServer.Server; +using Serilog; namespace Microsoft.PowerShell.EditorServices.Server { @@ -59,59 +59,53 @@ public async Task StartAsync() { LanguageServer = await OmniSharp.Extensions.LanguageServer.Server.LanguageServer.From(options => { - options.AddDefaultLoggingProvider(); - options.LoggerFactory = LoggerFactory; - ILogger logger = options.LoggerFactory.CreateLogger("OptionsStartup"); - options.Services = new ServiceCollection() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton( - (provider) => - PowerShellContextService.Create( - LoggerFactory, - provider.GetService(), - _profilePaths, - _featureFlags, - _enableConsoleRepl, - _internalHost, - _hostDetails, - _additionalModules)) - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton( - (provider) => - { - var extensionService = new ExtensionService( - provider.GetService(), - provider.GetService()); - extensionService.InitializeAsync( - serviceProvider: provider, - editorOperations: provider.GetService()) - .Wait(); - return extensionService; - }) - .AddSingleton( - (provider) => - { - return AnalysisService.Create( - provider.GetService(), - provider.GetService(), - options.LoggerFactory.CreateLogger()); - }); - (Stream input, Stream output) = GetInputOutputStreams(); options .WithInput(input) - .WithOutput(output); - - options.MinimumLogLevel = _minimumLogLevel; - - logger.LogInformation("Adding handlers"); - - options + .WithOutput(output) + .WithServices(serviceCollection => serviceCollection + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton( + (provider) => + PowerShellContextService.Create( + provider.GetService(), + provider.GetService(), + _profilePaths, + _featureFlags, + _enableConsoleRepl, + _internalHost, + _hostDetails, + _additionalModules)) + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton( + (provider) => + { + var extensionService = new ExtensionService( + provider.GetService(), + provider.GetService()); + extensionService.InitializeAsync( + serviceProvider: provider, + editorOperations: provider.GetService()) + .Wait(); + return extensionService; + }) + .AddSingleton( + (provider) => + { + return AnalysisService.Create( + provider.GetService(), + provider.GetService(), + provider.GetService().CreateLogger()); + })) + .ConfigureLogging(builder => builder + .AddSerilog(Log.Logger) + .SetMinimumLevel(LogLevel.Trace)) + .AddDefaultLoggingProvider() .WithHandler() .WithHandler() .WithHandler() @@ -154,8 +148,6 @@ await serviceProvider.GetService().SetWorkingDirectory isPathAlreadyEscaped: false); } }); - - logger.LogInformation("Handlers added"); }); } diff --git a/src/PowerShellEditorServices/Services/DebugAdapter/Handlers/LaunchAndAttachHandler.cs b/src/PowerShellEditorServices/Services/DebugAdapter/Handlers/LaunchAndAttachHandler.cs index 1772d4a13..9e0e9910f 100644 --- a/src/PowerShellEditorServices/Services/DebugAdapter/Handlers/LaunchAndAttachHandler.cs +++ b/src/PowerShellEditorServices/Services/DebugAdapter/Handlers/LaunchAndAttachHandler.cs @@ -13,7 +13,7 @@ using Microsoft.PowerShell.EditorServices.Services; using Microsoft.PowerShell.EditorServices.Services.PowerShellContext; using OmniSharp.Extensions.DebugAdapter.Protocol.Events; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ExpandAliasHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ExpandAliasHandler.cs index 207b3c33a..336ebd8f6 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ExpandAliasHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ExpandAliasHandler.cs @@ -9,7 +9,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetCommandHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetCommandHandler.cs index 56c39f5b8..fd1bdb3e0 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetCommandHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetCommandHandler.cs @@ -9,7 +9,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IEvaluateHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IEvaluateHandler.cs index b2836af9a..17293ec59 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IEvaluateHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IEvaluateHandler.cs @@ -3,7 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetCommentHelpHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetCommentHelpHandler.cs index 599e13df5..0fc4fe4c7 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetCommentHelpHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetCommentHelpHandler.cs @@ -3,7 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; using OmniSharp.Extensions.LanguageServer.Protocol.Models; diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetPSHostProcessesHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetPSHostProcessesHandler.cs index 88df2a429..2ab570891 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetPSHostProcessesHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetPSHostProcessesHandler.cs @@ -3,7 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetRunspaceHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetRunspaceHandler.cs index 77237dee1..a4d3847cb 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetRunspaceHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetRunspaceHandler.cs @@ -3,7 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetVersionHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetVersionHandler.cs index 1810435a2..6fbf59ceb 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetVersionHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IGetVersionHandler.cs @@ -4,7 +4,7 @@ // using Microsoft.PowerShell.EditorServices.Services.PowerShellContext; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IInvokeExtensionCommandHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IInvokeExtensionCommandHandler.cs index 42e8b72ed..633a58217 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IInvokeExtensionCommandHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/IInvokeExtensionCommandHandler.cs @@ -3,7 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; using OmniSharp.Extensions.LanguageServer.Protocol.Models; diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ITemplateHandlers.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ITemplateHandlers.cs index 798f0c9fe..d3783318a 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ITemplateHandlers.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ITemplateHandlers.cs @@ -3,7 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/InvokeExtensionCommandHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/InvokeExtensionCommandHandler.cs index 355a3d3db..01c4c869f 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/InvokeExtensionCommandHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/InvokeExtensionCommandHandler.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; using Microsoft.PowerShell.EditorServices.Services.PowerShellContext; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; namespace Microsoft.PowerShell.EditorServices.Handlers { diff --git a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ShowHelpHandler.cs b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ShowHelpHandler.cs index 897d6f4ae..41b94be29 100644 --- a/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ShowHelpHandler.cs +++ b/src/PowerShellEditorServices/Services/PowerShellContext/Handlers/ShowHelpHandler.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.JsonRpc; namespace Microsoft.PowerShell.EditorServices.Handlers diff --git a/src/PowerShellEditorServices/Services/TextDocument/Handlers/TextDocumentHandler.cs b/src/PowerShellEditorServices/Services/TextDocument/Handlers/TextDocumentHandler.cs index 375034533..7239fbe6a 100644 --- a/src/PowerShellEditorServices/Services/TextDocument/Handlers/TextDocumentHandler.cs +++ b/src/PowerShellEditorServices/Services/TextDocument/Handlers/TextDocumentHandler.cs @@ -10,7 +10,7 @@ using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; using Microsoft.PowerShell.EditorServices.Services.TextDocument; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.LanguageServer.Protocol; using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities; using OmniSharp.Extensions.LanguageServer.Protocol.Models; diff --git a/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs b/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs index ae97d43ad..4c25bcfb8 100644 --- a/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs +++ b/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs @@ -10,7 +10,7 @@ using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Services; using Microsoft.PowerShell.EditorServices.Services.Configuration; -using OmniSharp.Extensions.Embedded.MediatR; +using MediatR; using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities; using OmniSharp.Extensions.LanguageServer.Protocol.Models; using OmniSharp.Extensions.LanguageServer.Protocol.Server;