class Yoda::Server::Notifier

Attributes

server[R]

@return [Server]

Public Class Methods

new(writer) click to toggle source

@param writer [ConcurrentWriter]

# File lib/yoda/server/notifier.rb, line 5
def initialize(writer)
  @writer = writer
end

Public Instance Methods

busy(type:, id: nil) { || ... } click to toggle source

@param type [Symbol]

# File lib/yoda/server/notifier.rb, line 10
def busy(type:, id: nil)
  event(type: type, phase: :begin, id: id)
  yield
ensure
  event(type: type, phase: :end, id: id)
end
event(params) click to toggle source

@param params [Hash]

# File lib/yoda/server/notifier.rb, line 18
def event(params)
  write(method: 'telemetry/event', params: params)
end
log_message(type:, message:) click to toggle source

@param type [String, Symbol] @param message [String]

# File lib/yoda/server/notifier.rb, line 36
def log_message(type:, message:)
  write(
    method: 'window/logMessage',
    params: LanguageServer::Protocol::Interface::ShowMessageParams.new(
      type: message_type(type),
      message: message,
    )
  )
end
show_message(type:, message:) click to toggle source

@param type [String, Symbol] @param message [String]

# File lib/yoda/server/notifier.rb, line 24
def show_message(type:, message:)
  write(
    method: 'window/showMessage',
    params: LanguageServer::Protocol::Interface::ShowMessageParams.new(
      type: message_type(type),
      message: message,
    )
  )
end

Private Instance Methods

message_type(type) click to toggle source

@param type [String, Symbol]

# File lib/yoda/server/notifier.rb, line 53
def message_type(type)
  case type.to_sym
  when :error
    LanguageServer::Protocol::Constant::MessageType::ERROR
  when :warning
    LanguageServer::Protocol::Constant::MessageType::WARNING
  when :info
    LanguageServer::Protocol::Constant::MessageType::INFO
  when :log
    LanguageServer::Protocol::Constant::MessageType::LOG
  else
    Logger.warn("#{type} is not valie message type")
    LanguageServer::Protocol::Constant::MessageType::INFO
  end
end
write(params) click to toggle source
# File lib/yoda/server/notifier.rb, line 48
def write(params)
  @writer.write(params)
end