using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using NubLang.LSP; using OmniSharp.Extensions.LanguageServer.Server; var server = await LanguageServer.From(options => options .WithInput(Console.OpenStandardInput()) .WithOutput(Console.OpenStandardOutput()) .WithServices(services => { services.AddSingleton(); services.AddSingleton(); }) .ConfigureLogging(x => x .AddLanguageProtocolLogging() .SetMinimumLevel(LogLevel.Debug)) .WithHandler() .WithHandler() .WithHandler() .OnInitialize((server, request, ct) => { var workspaceManager = server.GetRequiredService(); if (request.RootPath != null) { foreach (var file in Directory.GetFiles(request.RootPath, "*.nub", SearchOption.AllDirectories)) { workspaceManager.UpdateFile(file); } } return Task.CompletedTask; }) ); await server.WaitForExit;