44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using MediatR;
|
|
using OmniSharp.Extensions.LanguageServer.Protocol;
|
|
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
|
|
using OmniSharp.Extensions.LanguageServer.Protocol.Document;
|
|
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
|
|
|
|
namespace NubLang.LSP;
|
|
|
|
internal class TextDocumentSyncHandler(WorkspaceManager workspaceManager) : TextDocumentSyncHandlerBase
|
|
{
|
|
public override TextDocumentAttributes GetTextDocumentAttributes(DocumentUri uri)
|
|
{
|
|
return new TextDocumentAttributes(uri, "nub-lang");
|
|
}
|
|
|
|
public override Task<Unit> Handle(DidOpenTextDocumentParams request, CancellationToken cancellationToken)
|
|
{
|
|
workspaceManager.UpdateFile(request.TextDocument.Uri);
|
|
return Unit.Task;
|
|
}
|
|
|
|
public override Task<Unit> Handle(DidChangeTextDocumentParams request, CancellationToken cancellationToken)
|
|
{
|
|
workspaceManager.UpdateFile(request.TextDocument.Uri);
|
|
return Unit.Task;
|
|
}
|
|
|
|
public override Task<Unit> Handle(DidSaveTextDocumentParams request, CancellationToken cancellationToken)
|
|
{
|
|
workspaceManager.UpdateFile(request.TextDocument.Uri);
|
|
return Unit.Task;
|
|
}
|
|
|
|
public override Task<Unit> Handle(DidCloseTextDocumentParams request, CancellationToken cancellationToken)
|
|
{
|
|
workspaceManager.UpdateFile(request.TextDocument.Uri);
|
|
return Unit.Task;
|
|
}
|
|
|
|
protected override TextDocumentSyncRegistrationOptions CreateRegistrationOptions(TextSynchronizationCapability capability, ClientCapabilities clientCapabilities)
|
|
{
|
|
return new TextDocumentSyncRegistrationOptions();
|
|
}
|
|
} |