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:

  • (boolean)


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:

  • ("report")


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:

  • (string)


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:

  • (number)


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