genericptr / pascal-language-server

LSP server implementation for Pascal
GNU General Public License v3.0
49 stars 12 forks source link

Transport layer #54

Closed mvancanneyt closed 1 year ago

mvancanneyt commented 1 year ago

Ryan,

This patch introduces the transport layer for exchanging messages. Now diagnostic messages from the socket server will be sent over the socket to the client.

In the StdIO client, the transport layer simply uses Writeln(StdErr) or Writeln(Output) to send messages.

It means you may no longer simply use Writeln(StdErr) or Writeln(Output), but always use the Transport.SendDiagnostic() or send a message.

After this change, we should be able to create the 'standard' socket based protocol, and all should simply continue to function.

I was able to fix also heaps of memory leaks, now the application is leaking considerably less memory :smiley:

mvancanneyt commented 1 year ago

By the way, this fixes issues #50 and #39