Class: Yoda::Server::Notifier
- Inherits:
-
Object
- Object
- Yoda::Server::Notifier
- Defined in:
- lib/yoda/server/notifier.rb
Instance Method Summary collapse
- #busy(type:, id: nil) ⇒ Object
- #event(**params) ⇒ Object
-
#initialize(writer) ⇒ Notifier
constructor
A new instance of Notifier.
- #log_message(type:, message:) ⇒ Object
- #partial_result(token:, value:) ⇒ Object
- #show_message(type:, message:) ⇒ Object
- #work_done_progress_begin(token:, title:, cancellable: nil, message: nil, percentage: nil) ⇒ Object
- #work_done_progress_end(token:, message: nil) ⇒ Object
- #work_done_progress_report(token:, cancellable: nil, message: nil, percentage: nil) ⇒ Object
Constructor Details
#initialize(writer) ⇒ Notifier
Returns a new instance of Notifier.
5 6 7 |
# File 'lib/yoda/server/notifier.rb', line 5 def initialize(writer) @writer = writer end |
Instance Method Details
#busy(type:, id: nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/yoda/server/notifier.rb', line 10 def busy(type:, id: nil) failed = false event(type: type, phase: :begin, id: id) yield rescue => e Logger.warn(e.) failed = true event(type: type, phage: :failed, id: id) raise e ensure event(type: type, phase: :end, id: id) end |
#event(**params) ⇒ Object
24 25 26 |
# File 'lib/yoda/server/notifier.rb', line 24 def event(**params) write(method: 'telemetry/event', params: params) end |
#log_message(type:, message:) ⇒ Object
113 114 115 116 117 118 119 120 121 |
# File 'lib/yoda/server/notifier.rb', line 113 def (type:, message:) write( method: 'window/logMessage', params: LanguageServer::Protocol::Interface::ShowMessageParams.new( type: (type), message: , ) ) end |
#partial_result(token:, value:) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/yoda/server/notifier.rb', line 89 def partial_result(token:, value:) write( method: '$/progress', params: LanguageServer::Protocol::Interface::ProgressParams.new( token: token, value: value, ), ) end |
#show_message(type:, message:) ⇒ Object
101 102 103 104 105 106 107 108 109 |
# File 'lib/yoda/server/notifier.rb', line 101 def (type:, message:) write( method: 'window/showMessage', params: LanguageServer::Protocol::Interface::ShowMessageParams.new( type: (type), message: , ) ) end |
#work_done_progress_begin(token:, title:, cancellable: nil, message: nil, percentage: nil) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/yoda/server/notifier.rb', line 34 def work_done_progress_begin(token:, title:, cancellable: nil, message: nil, percentage: nil) write( method: '$/progress', params: LanguageServer::Protocol::Interface::ProgressParams.new( token: token, value: LanguageServer::Protocol::Interface::WorkDoneProgressBegin.new( kind: "begin", title: title, cancellable: cancellable, message: , percentage: percentage, ) ), ) end |
#work_done_progress_end(token:, message: nil) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/yoda/server/notifier.rb', line 73 def work_done_progress_end(token:, message: nil) write( method: '$/progress', params: LanguageServer::Protocol::Interface::ProgressParams.new( token: token, value: LanguageServer::Protocol::Interface::WorkDoneProgressEnd.new( kind: "end", message: , ) ), ) end |
#work_done_progress_report(token:, cancellable: nil, message: nil, percentage: nil) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/yoda/server/notifier.rb', line 55 def work_done_progress_report(token:, cancellable: nil, message: nil, percentage: nil) write( method: '$/progress', params: LanguageServer::Protocol::Interface::ProgressParams.new( token: token, value: LanguageServer::Protocol::Interface::WorkDoneProgressReport.new( kind: "report", cancellable: cancellable, message: , percentage: percentage, ) ), ) end |