Class: LanguageServer::Protocol::Interface::WorkDoneProgressReport

Inherits:
Object
  • Object
show all
Defined in:
lib/language_server/protocol/interface/work_done_progress_report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind:, cancellable: nil, message: nil, percentage: nil) ⇒ WorkDoneProgressReport

Returns a new instance of WorkDoneProgressReport.



5
6
7
8
9
10
11
12
13
14
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 5

def initialize(kind:, cancellable: nil, message: nil, percentage: nil)
  @attributes = {}

  @attributes[:kind] = kind
  @attributes[:cancellable] = cancellable if cancellable
  @attributes[:message] = message if message
  @attributes[:percentage] = percentage if percentage

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



58
59
60
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 58

def attributes
  @attributes
end

Instance Method Details

#cancellableboolean

Controls enablement state of a cancel button. This property is only valid if a cancel button got requested in the WorkDoneProgressBegin payload.

Clients that don’t support cancellation or don’t support control the button’s enablement state are allowed to ignore the setting.

Returns:



29
30
31
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 29

def cancellable
  attributes.fetch(:cancellable)
end

#kind"report"

Returns:



17
18
19
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 17

def kind
  attributes.fetch(:kind)
end

#messagestring

Optional, more detailed associated progress message. Contains complementary information to the title.

Examples: “3/25 files”, “project/src/module2”, “node_modules/some_dep”. If unset, the previous progress message (if any) is still valid.

Returns:



41
42
43
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 41

def message
  attributes.fetch(:message)
end

#percentagenumber

Optional progress percentage to display (value 100 is considered 100%). If not provided infinite progress is assumed and clients are allowed to ignore the percentage value in subsequent in report notifications.

The value should be steadily rising. Clients are free to ignore values that are not following this rule. The value range is [0, 100]

Returns:



54
55
56
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 54

def percentage
  attributes.fetch(:percentage)
end

#to_hashObject



60
61
62
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 60

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



64
65
66
# File 'lib/language_server/protocol/interface/work_done_progress_report.rb', line 64

def to_json(*args)
  to_hash.to_json(*args)
end