1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
module LanguageServer
module Protocol
module Interface
#
# Represents a parameter of a callable-signature. A parameter can
# have a label and a doc-comment.
#
class ParameterInformation
def initialize(label:, documentation: nil)
@attributes = {}
@attributes[:label] = label
@attributes[:documentation] = documentation if documentation
@attributes.freeze
end
#
# The label of this parameter information.
#
# Either a string or an inclusive start and exclusive end offsets within
# its containing signature label. (see SignatureInformation.label). The
# offsets are based on a UTF-16 string representation as `Position` and
# `Range` does.
#
# *Note*: a label of type string should be a substring of its containing
# signature label. Its intended use case is to highlight the parameter
# label part in the `SignatureInformation.label`.
#
# @return [string | [number, number]]
def label
attributes.fetch(:label)
end
#
# The human-readable doc-comment of this parameter. Will be shown
# in the UI but can be omitted.
#
# @return [string | MarkupContent]
def documentation
attributes.fetch(:documentation)
end
attr_reader :attributes
def to_hash
attributes
end
def to_json(*args)
to_hash.to_json(*args)
end
end
end
end
end
|