language server start

This commit is contained in:
nub31
2025-10-23 10:16:52 +02:00
parent 17a94272a2
commit ca3d8fcca9
30 changed files with 3944 additions and 125 deletions

View File

@@ -1,6 +1,29 @@
using NubLang.Syntax;
using OmniSharp.Extensions.LanguageServer.Protocol;
namespace NubLang.LSP;
public class WorkspaceManager
public class WorkspaceManager(DiagnosticsPublisher diagnosticsPublisher)
{
private readonly Dictionary<DocumentUri, SyntaxTree> _files = new();
public void UpdateFile(DocumentUri path)
{
var text = File.ReadAllText(path.GetFileSystemPath());
var tokenizer = new Tokenizer(path.GetFileSystemPath(), text);
tokenizer.Tokenize();
diagnosticsPublisher.Publish(path, tokenizer.Diagnostics);
var parser = new Parser();
var result = parser.Parse(tokenizer.Tokens);
diagnosticsPublisher.Publish(path, parser.Diagnostics);
_files[path] = result;
}
public void RemoveFile(Uri path)
{
_files.Remove(path);
}
}