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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
module LanguageServer
module Protocol
module Interface
#
# An inlay hint label part allows for interactive and composite labels
# of inlay hints.
#
class InlayHintLabelPart
def initialize(value:, tooltip: nil, location: nil, command: nil)
@attributes = {}
@attributes[:value] = value
@attributes[:tooltip] = tooltip if tooltip
@attributes[:location] = location if location
@attributes[:command] = command if command
@attributes.freeze
end
#
# The value of this label part.
#
# @return [string]
def value
attributes.fetch(:value)
end
#
# The tooltip text when you hover over this label part. Depending on
# the client capability `inlayHint.resolveSupport` clients might resolve
# this property late using the resolve request.
#
# @return [string | MarkupContent]
def tooltip
attributes.fetch(:tooltip)
end
#
# An optional source code location that represents this
# label part.
#
# The editor will use this location for the hover and for code navigation
# features: This part will become a clickable link that resolves to the
# definition of the symbol at the given location (not necessarily the
# location itself), it shows the hover that shows at the given location,
# and it shows a context menu with further code navigation commands.
#
# Depending on the client capability `inlayHint.resolveSupport` clients
# might resolve this property late using the resolve request.
#
# @return [Location]
def location
attributes.fetch(:location)
end
#
# An optional command for this label part.
#
# Depending on the client capability `inlayHint.resolveSupport` clients
# might resolve this property late using the resolve request.
#
# @return [Command]
def command
attributes.fetch(:command)
end
attr_reader :attributes
def to_hash
attributes
end
def to_json(*args)
to_hash.to_json(*args)
end
end
end
end
end
|