Sha256: d37935b2df14e62b90f9f50bf3d1b2b3cb54a39cefebffeed6de43ec6ba0167c

Contents?: true

Size: 1.82 KB

Versions: 10

Compression:

Stored size: 1.82 KB

Contents

# typed: strict
# frozen_string_literal: true

module RubyLsp
  # Used to indicate that a request shouldn't return a response
  VOID = T.let(Object.new.freeze, Object)

  # This freeze is not redundant since the interpolated string is mutable
  WORKSPACE_URI = T.let(URI("file://#{Dir.pwd}".freeze), URI::Generic)

  # A notification to be sent to the client
  class Message
    extend T::Sig
    extend T::Helpers

    abstract!

    sig { returns(String) }
    attr_reader :message

    sig { returns(Object) }
    attr_reader :params

    sig { params(message: String, params: Object).void }
    def initialize(message:, params:)
      @message = message
      @params = params
    end
  end

  class Notification < Message; end
  class Request < Message; end

  # The final result of running a request before its IO is finalized
  class Result
    extend T::Sig

    sig { returns(T.untyped) }
    attr_reader :response

    sig { returns(T.nilable(Exception)) }
    attr_reader :error

    sig { returns(T.nilable(Float)) }
    attr_reader :request_time

    sig do
      params(
        response: T.untyped,
        error: T.nilable(Exception),
        request_time: T.nilable(Float),
      ).void
    end
    def initialize(response:, error: nil, request_time: nil)
      @response = response
      @error = error
      @request_time = request_time
    end
  end

  # A request that will sit in the queue until it's executed
  class Job
    extend T::Sig

    sig { returns(T::Hash[Symbol, T.untyped]) }
    attr_reader :request

    sig { returns(T::Boolean) }
    attr_reader :cancelled

    sig { params(request: T::Hash[Symbol, T.untyped], cancelled: T::Boolean).void }
    def initialize(request:, cancelled:)
      @request = request
      @cancelled = cancelled
    end

    sig { void }
    def cancel
      @cancelled = true
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ruby-lsp-0.7.6 lib/ruby_lsp/utils.rb
ruby-lsp-0.7.5 lib/ruby_lsp/utils.rb
ruby-lsp-0.7.4 lib/ruby_lsp/utils.rb
ruby-lsp-0.7.3 lib/ruby_lsp/utils.rb
ruby-lsp-0.7.2 lib/ruby_lsp/utils.rb
ruby-lsp-0.7.1 lib/ruby_lsp/utils.rb
ruby-lsp-0.7.0 lib/ruby_lsp/utils.rb
ruby-lsp-0.6.2 lib/ruby_lsp/utils.rb
ruby-lsp-0.6.1 lib/ruby_lsp/utils.rb
ruby-lsp-0.6.0 lib/ruby_lsp/utils.rb