Sha256: 62970e9a48ce39bf7f3ac197bc50b24f54d55b63979da8a890a8beb32610f268

Contents?: true

Size: 786 Bytes

Versions: 1

Compression:

Stored size: 786 Bytes

Contents

module LanguageServer
  module Protocol
    module Transport
      module Stdio
        class Writer
          def respond(id:, result:)
            write(id: id, result: result)
          end

          def notify(method:, params: {})
            write(method: method, params: params)
          end

          private

          def write(response)
            response_str = response.merge(
              jsonrpc: "2.0"
            ).to_json

            headers = {
              "Content-Length" => response_str.bytesize
            }

            headers.each do |k, v|
              STDOUT.print "#{k}: #{v}\r\n"
            end

            STDOUT.print "\r\n"

            STDOUT.print response_str
            STDOUT.flush
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
language_server-protocol-0.1.0 lib/language_server/protocol/transport/stdio/writer.rb