Class: LanguageServer::Protocol::Interface::SignatureHelp

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

Overview

Signature help represents the signature of something callable. There can be multiple signature but only one active and only one active parameter.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(signatures:, active_signature: nil, active_parameter: nil) ⇒ SignatureHelp

Returns a new instance of SignatureHelp.



10
11
12
13
14
15
16
17
18
# File 'lib/language_server/protocol/interface/signature_help.rb', line 10

def initialize(signatures:, active_signature: nil, active_parameter: nil)
  @attributes = {}

  @attributes[:signatures] = signatures
  @attributes[:activeSignature] = active_signature if active_signature
  @attributes[:activeParameter] = active_parameter if active_parameter

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



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

def attributes
  @attributes
end

Instance Method Details

#active_parameternumber

The active parameter of the active signature. If omitted or the value lies outside the range of ‘signatures.parameters` defaults to 0 if the active signature has parameters. If the active signature has no parameters it is ignored. In future version of the protocol this property might become mandatory to better express the active parameter if the active signature does have any.

Returns:

  • (number)


55
56
57
# File 'lib/language_server/protocol/interface/signature_help.rb', line 55

def active_parameter
  attributes.fetch(:activeParameter)
end

#active_signaturenumber

The active signature. If omitted or the value lies outside the range of ‘signatures` the value defaults to zero or is ignore if the `SignatureHelp` as no signatures.

Whenever possible implementors should make an active decision about the active signature and shouldn’t rely on a default value.

In future version of the protocol this property might become mandatory to better express this.

Returns:

  • (number)


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

def active_signature
  attributes.fetch(:activeSignature)
end

#signaturesSignatureInformation[]

One or more signatures. If no signatures are available the signature help request should return ‘null`.

Returns:



25
26
27
# File 'lib/language_server/protocol/interface/signature_help.rb', line 25

def signatures
  attributes.fetch(:signatures)
end

#to_hashObject



61
62
63
# File 'lib/language_server/protocol/interface/signature_help.rb', line 61

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



65
66
67
# File 'lib/language_server/protocol/interface/signature_help.rb', line 65

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