Module: LanguageServer
- Defined in:
- lib/language_server.rb,
lib/language_server/version.rb,
lib/language_server/linter/ruby_wc.rb,
lib/language_server/protocol/interfaces/hover.rb,
lib/language_server/protocol/interfaces/range.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/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: Linter, Protocol
Constant Summary
collapse
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.logger ⇒ Object
83
84
85
|
# File 'lib/language_server.rb', line 83
def logger
@logger ||= Logger.new(STDERR)
end
|
.on(method, &callback) ⇒ Object
116
117
118
|
# File 'lib/language_server.rb', line 116
def on(method, &callback)
subscribers[method] = callback
end
|
.run ⇒ Object
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/language_server.rb', line 87
def run
writer = Protocol::Stdio::Writer.new
reader = Protocol::Stdio::Reader.new
reader.read do |request|
method = request[:method].to_sym
logger.debug("Method: #{method} called")
_, subscriber = subscribers.find {|k, _|
k === method
}
if subscriber
result = subscriber.call(request, writer.method(:notify))
if request[:id]
writer.respond(id: request[:id], result: result)
end
else
logger.debug("Ignore: #{method}")
end
end
end
|
.subscribers ⇒ Object
112
113
114
|
# File 'lib/language_server.rb', line 112
def subscribers
@subscribers ||= {}
end
|