Module: LanguageServer
- Defined in:
- lib/language_server.rb,
lib/language_server/project.rb,
lib/language_server/version.rb,
lib/language_server/file_store.rb,
lib/language_server/project/node.rb,
lib/language_server/linter/ruby_wc.rb,
lib/language_server/project/parser.rb,
lib/language_server/protocol/stdio/reader.rb,
lib/language_server/protocol/stdio/writer.rb,
lib/language_server/protocol/interfaces/hover.rb,
lib/language_server/protocol/interfaces/range.rb,
lib/language_server/completion_provider/ad_hoc.rb,
lib/language_server/protocol/interfaces/command.rb,
lib/language_server/protocol/interfaces/message.rb,
lib/language_server/protocol/interfaces/location.rb,
lib/language_server/protocol/interfaces/position.rb,
lib/language_server/protocol/interfaces/code_lens.rb,
lib/language_server/protocol/interfaces/text_edit.rb,
lib/language_server/completion_provider/rcodetools.rb,
lib/language_server/protocol/constants/error_codes.rb,
lib/language_server/protocol/constants/symbol_kind.rb,
lib/language_server/protocol/interfaces/diagnostic.rb,
lib/language_server/protocol/interfaces/file_event.rb,
lib/language_server/protocol/constants/message_type.rb,
lib/language_server/protocol/interfaces/registration.rb,
lib/language_server/protocol/interfaces/save_options.rb,
lib/language_server/protocol/interfaces/cancel_params.rb,
lib/language_server/protocol/interfaces/document_link.rb,
lib/language_server/protocol/interfaces/rename_params.rb,
lib/language_server/protocol/interfaces/response_error.rb,
lib/language_server/protocol/interfaces/signature_help.rb,
lib/language_server/protocol/interfaces/unregistration.rb,
lib/language_server/protocol/interfaces/workspace_edit.rb,
lib/language_server/protocol/constants/file_change_type.rb,
lib/language_server/protocol/constants/initialize_error.rb,
lib/language_server/protocol/interfaces/completion_item.rb,
lib/language_server/protocol/interfaces/completion_list.rb,
lib/language_server/protocol/interfaces/document_filter.rb,
lib/language_server/protocol/interfaces/request_message.rb,
lib/language_server/protocol/interfaces/code_lens_params.rb,
lib/language_server/protocol/interfaces/initialize_error.rb,
lib/language_server/protocol/interfaces/reference_params.rb,
lib/language_server/protocol/interfaces/response_message.rb,
lib/language_server/protocol/constants/insert_text_format.rb,
lib/language_server/protocol/interfaces/code_lens_options.rb,
lib/language_server/protocol/interfaces/initialize_params.rb,
lib/language_server/protocol/interfaces/initialize_result.rb,
lib/language_server/protocol/interfaces/reference_context.rb,
lib/language_server/protocol/constants/diagnostic_severity.rb,
lib/language_server/protocol/interfaces/code_action_params.rb,
lib/language_server/protocol/interfaces/completion_options.rb,
lib/language_server/protocol/interfaces/document_highlight.rb,
lib/language_server/protocol/interfaces/formatting_options.rb,
lib/language_server/protocol/interfaces/log_message_params.rb,
lib/language_server/protocol/interfaces/symbol_information.rb,
lib/language_server/protocol/interfaces/text_document_edit.rb,
lib/language_server/protocol/interfaces/text_document_item.rb,
lib/language_server/protocol/constants/completion_item_kind.rb,
lib/language_server/protocol/interfaces/client_capabilities.rb,
lib/language_server/protocol/interfaces/code_action_context.rb,
lib/language_server/protocol/interfaces/message_action_item.rb,
lib/language_server/protocol/interfaces/registration_params.rb,
lib/language_server/protocol/interfaces/server_capabilities.rb,
lib/language_server/protocol/interfaces/show_message_params.rb,
lib/language_server/protocol/interfaces/document_link_params.rb,
lib/language_server/protocol/interfaces/notification_message.rb,
lib/language_server/protocol/interfaces/document_link_options.rb,
lib/language_server/protocol/interfaces/parameter_information.rb,
lib/language_server/protocol/interfaces/signature_information.rb,
lib/language_server/protocol/interfaces/unregistration_params.rb,
lib/language_server/protocol/constants/document_highlight_kind.rb,
lib/language_server/protocol/constants/text_document_sync_kind.rb,
lib/language_server/protocol/interfaces/document_symbol_params.rb,
lib/language_server/protocol/interfaces/execute_command_params.rb,
lib/language_server/protocol/interfaces/signature_help_options.rb,
lib/language_server/protocol/interfaces/execute_command_options.rb,
lib/language_server/protocol/interfaces/workspace_symbol_params.rb,
lib/language_server/protocol/constants/text_document_save_reason.rb,
lib/language_server/protocol/interfaces/text_document_identifier.rb,
lib/language_server/protocol/interfaces/document_formatting_params.rb,
lib/language_server/protocol/interfaces/publish_diagnostics_params.rb,
lib/language_server/protocol/interfaces/text_document_sync_options.rb,
lib/language_server/protocol/interfaces/apply_workspace_edit_params.rb,
lib/language_server/protocol/interfaces/show_message_request_params.rb,
lib/language_server/protocol/interfaces/workspace_client_capabilites.rb,
lib/language_server/protocol/interfaces/apply_workspace_edit_response.rb,
lib/language_server/protocol/interfaces/did_open_text_document_params.rb,
lib/language_server/protocol/interfaces/did_save_text_document_params.rb,
lib/language_server/protocol/interfaces/text_document_position_params.rb,
lib/language_server/protocol/interfaces/code_lens_registration_options.rb,
lib/language_server/protocol/interfaces/did_close_text_document_params.rb,
lib/language_server/protocol/interfaces/will_save_text_document_params.rb,
lib/language_server/protocol/interfaces/completion_registration_options.rb,
lib/language_server/protocol/interfaces/did_change_configuration_params.rb,
lib/language_server/protocol/interfaces/did_change_text_document_params.rb,
lib/language_server/protocol/interfaces/did_change_watched_files_params.rb,
lib/language_server/protocol/interfaces/document_range_formatting_params.rb,
lib/language_server/protocol/interfaces/text_document_client_capabilities.rb,
lib/language_server/protocol/interfaces/document_link_registration_options.rb,
lib/language_server/protocol/interfaces/document_on_type_formatting_params.rb,
lib/language_server/protocol/interfaces/text_document_content_change_event.rb,
lib/language_server/protocol/interfaces/text_document_registration_options.rb,
lib/language_server/protocol/interfaces/versioned_text_document_identifier.rb,
lib/language_server/protocol/interfaces/document_on_type_formatting_options.rb,
lib/language_server/protocol/interfaces/signature_help_registration_options.rb,
lib/language_server/protocol/interfaces/execute_command_registration_options.rb,
lib/language_server/protocol/interfaces/text_document_save_registration_options.rb,
lib/language_server/protocol/interfaces/text_document_change_registration_options.rb,
lib/language_server/protocol/interfaces/document_on_type_formatting_registration_options.rb
Defined Under Namespace
Modules: CompletionProvider, Linter, Protocol
Classes: FileStore, Project
Constant Summary
collapse
- VERSION =
"0.4.0"
Class Method Summary
collapse
Class Method Details
.logger ⇒ Object
16
17
18
|
# File 'lib/language_server.rb', line 16
def logger
@logger ||= Logger.new(STDERR)
end
|
.on(method, &callback) ⇒ Object
55
56
57
|
# File 'lib/language_server.rb', line 55
def on(method, &callback)
subscribers[method] = callback
end
|
.run ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/language_server.rb', line 20
def run
writer = Protocol::Stdio::Writer.new
reader = Protocol::Stdio::Reader.new
variables = {}
reader.read do |request|
method = request[:method].to_sym
logger.debug("Method: #{method} called")
_, subscriber = subscribers.find {|k, _|
k === method
}
if subscriber
keys = subscriber.parameters.map(&:last)
result = subscriber.call(
{
request: request, notifier: writer.method(:notify), variables: variables
}.merge(variables).select {|k, _| keys.include?(k) }
)
if request[:id]
writer.respond(id: request[:id], result: result)
end
else
logger.debug("Ignore: #{method}")
end
end
end
|
.subscribers ⇒ Object
51
52
53
|
# File 'lib/language_server.rb', line 51
def subscribers
@subscribers ||= {}
end
|