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

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

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.

Parameters:

  • kind: ("report")
  • cancellable: (Boolean) (defaults to: nil)
  • message: (String) (defaults to: nil)
  • percentage: (Integer) (defaults to: nil)


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

#attributesHash[Symbol, untyped] (readonly)

Returns the value of attribute attributes.

Returns:

  • (Hash[Symbol, untyped])


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

def attributes
  @attributes
end

Instance Method Details

#cancellableboolean

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)


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

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)


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

def message
  attributes.fetch(:message)
end

#percentageuinteger

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)


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

def percentage
  attributes.fetch(:percentage)
end

#to_hashHash[Symbol, untyped]

Returns:

  • (Hash[Symbol, untyped])


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

def to_hash
  attributes
end

#to_json(*args) ⇒ String

Parameters:

  • (Object)

Returns:

  • (String)


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