Class: Yoda::Server
- Inherits:
-
Object
show all
- Defined in:
- lib/yoda/server.rb,
lib/yoda/server/session.rb,
lib/yoda/server/notifier.rb,
lib/yoda/server/providers.rb,
lib/yoda/server/file_store.rb,
lib/yoda/server/deserializer.rb,
lib/yoda/server/root_handler.rb,
lib/yoda/server/providers/base.rb,
lib/yoda/server/providers/hover.rb,
lib/yoda/server/concurrent_writer.rb,
lib/yoda/server/lifecycle_handler.rb,
lib/yoda/server/providers/signature.rb,
lib/yoda/server/providers/completion.rb,
lib/yoda/server/providers/definition.rb,
lib/yoda/server/providers/text_document_did_open.rb,
lib/yoda/server/providers/text_document_did_save.rb,
lib/yoda/server/providers/text_document_did_change.rb
Defined Under Namespace
Modules: Providers
Classes: ConcurrentWriter, Deserializer, FileStore, LifecycleHandler, Notifier, RootHandler, Session
Constant Summary
collapse
- NO_RESPONSE =
Use this value as return value for notification handling
:no_response
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(reader: LanguageServer::Protocol::Transport::Stdio::Reader.new, writer: LanguageServer::Protocol::Transport::Stdio::Writer.new, root_handler_class: RootHandler) ⇒ Server
Returns a new instance of Server.
27
28
29
30
31
32
33
34
35
|
# File 'lib/yoda/server.rb', line 27
def initialize(
reader: LanguageServer::Protocol::Transport::Stdio::Reader.new,
writer: LanguageServer::Protocol::Transport::Stdio::Writer.new,
root_handler_class: RootHandler
)
@reader = reader
@writer = ConcurrentWriter.new(writer)
@root_handler = RootHandler.new(writer: @writer)
end
|
Instance Attribute Details
#reader ⇒ ::LanguageServer::Protocol::Transport::Stdio::Reader
16
17
18
|
# File 'lib/yoda/server.rb', line 16
def reader
@reader
end
|
22
23
24
|
# File 'lib/yoda/server.rb', line 22
def root_handler
@root_handler
end
|
19
20
21
|
# File 'lib/yoda/server.rb', line 19
def writer
@writer
end
|
Instance Method Details
#deserialize(hash) ⇒ Object
#run ⇒ Object
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/yoda/server.rb', line 37
def run
reader.read do |request|
begin
root_handler.handle(id: request[:id], method: request[:method].to_sym, params: deserialize(request[:params]))
rescue StandardError => ex
Logger.warn ex
Logger.warn ex.backtrace
end
end
end
|