Module: LanguageServer
- Defined in:
- lib/language_server.rb,
lib/language_server/version.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: Protocol
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
Class Method Details
.logger ⇒ Object
82 83 84 |
# File 'lib/language_server.rb', line 82 def logger @logger ||= Logger.new(STDERR) end |
.on(method, &callback) ⇒ Object
115 116 117 |
# File 'lib/language_server.rb', line 115 def on(method, &callback) subscribers[method] = callback end |
.run ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/language_server.rb', line 86 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
111 112 113 |
# File 'lib/language_server.rb', line 111 def subscribers @subscribers ||= {} end |