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.



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

def attributes
  @attributes
end

Instance Method Details

#cancellableboolean | nil

Controls enablement state of a cancel button.

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

Returns:

  • (boolean | nil)


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

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 | nil

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 | nil)


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

def message
  attributes.fetch(:message)
end

#percentageuinteger | nil

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:

  • (uinteger | nil)


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

def percentage
  attributes.fetch(:percentage)
end

#to_hashObject



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

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



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

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