lib/theme_check/language_server/server.rb in theme-check-1.8.0 vs lib/theme_check/language_server/server.rb in theme-check-1.9.0
- old
+ new
@@ -53,13 +53,13 @@
def start_json_rpc_thread
@json_rpc_thread = Thread.new do
loop do
message = @bridge.read_message
- if message['method'] == 'initialize'
+ if message[:method] == 'initialize'
handle_message(message)
- elsif message.key?('result')
+ elsif message.key?(:result)
# Responses are handled on the main thread to prevent
# a potential deadlock caused by all handlers waiting
# for a responses.
handle_response(message)
else
@@ -99,14 +99,14 @@
end
private
def handle_message(message)
- id = message['id']
- method_name = message['method']
+ id = message[:id]
+ method_name = message[:method]
method_name &&= "on_#{to_snake_case(method_name)}"
- params = message['params']
+ params = message[:params]
if @handler.respond_to?(method_name)
@handler.send(method_name, id, params)
end
@@ -115,15 +115,16 @@
rescue StandardError => e
is_request = id
raise e unless is_request
# Errors obtained in request handlers should be sent
# back as internal errors instead of closing the program.
+ @bridge.log("#{e.class}: #{e.message}\n#{e.backtrace.join("\n")}")
@bridge.send_internal_error(id, e)
end
def handle_response(message)
- id = message['id']
- result = message['result']
+ id = message[:id]
+ result = message[:result]
@bridge.receive_response(id, result)
end
def to_snake_case(method_name)
StringHelpers.underscore(method_name.gsub(/[^\w]/, '_'))