Class: TypeProf::LSP::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/typeprof/lsp/server.rb

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ Writer

Returns a new instance of Writer.



190
191
192
193
# File 'lib/typeprof/lsp/server.rb', line 190

def initialize(io)
  @io = io
  @mutex = Mutex.new
end

Instance Method Details

#write(**json) ⇒ Object



195
196
197
198
199
200
201
# File 'lib/typeprof/lsp/server.rb', line 195

def write(**json)
  json = JSON.generate(json.merge(jsonrpc: "2.0"))
  @mutex.synchronize do
    @io << "Content-Length: #{ json.bytesize }\r\n\r\n" << json
    @io.flush
  end
end