language_server-protocol 3.16.0.2 → 3.17.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/language_server/protocol/constant/code_action_kind.rb +8 -0
- data/lib/language_server/protocol/constant/code_action_trigger_kind.rb +22 -0
- data/lib/language_server/protocol/constant/document_diagnostic_report_kind.rb +21 -0
- data/lib/language_server/protocol/constant/error_codes.rb +33 -2
- data/lib/language_server/protocol/constant/folding_range_kind.rb +24 -0
- data/lib/language_server/protocol/constant/{initialize_error.rb → initialize_error_codes.rb} +4 -4
- data/lib/language_server/protocol/constant/inlay_hint_kind.rb +19 -0
- data/lib/language_server/protocol/constant/moniker_kind.rb +24 -0
- data/lib/language_server/protocol/constant/notebook_cell_kind.rb +19 -0
- data/lib/language_server/protocol/constant/position_encoding_kind.rb +32 -0
- data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +1 -1
- data/lib/language_server/protocol/constant/semantic_token_modifiers.rb +18 -0
- data/lib/language_server/protocol/constant/semantic_token_types.rb +35 -0
- data/lib/language_server/protocol/constant/uniqueness_level.rb +31 -0
- data/lib/language_server/protocol/constant.rb +22 -2
- data/lib/language_server/protocol/interface/{apply_workspace_edit_response.rb → apply_workspace_edit_result.rb} +2 -2
- data/lib/language_server/protocol/interface/call_hierarchy_item.rb +1 -1
- data/lib/language_server/protocol/interface/client_capabilities.rb +13 -4
- data/lib/language_server/protocol/interface/code_action.rb +1 -1
- data/lib/language_server/protocol/interface/code_action_context.rb +10 -1
- data/lib/language_server/protocol/interface/code_lens.rb +1 -1
- data/lib/language_server/protocol/interface/color_presentation.rb +1 -1
- data/lib/language_server/protocol/interface/command.rb +1 -1
- data/lib/language_server/protocol/interface/completion_client_capabilities.rb +23 -3
- data/lib/language_server/protocol/interface/completion_item.rb +41 -9
- data/lib/language_server/protocol/interface/completion_item_label_details.rb +49 -0
- data/lib/language_server/protocol/interface/completion_list.rb +24 -2
- data/lib/language_server/protocol/interface/completion_options.rb +11 -1
- data/lib/language_server/protocol/interface/completion_registration_options.rb +11 -1
- data/lib/language_server/protocol/interface/create_file.rb +1 -1
- data/lib/language_server/protocol/interface/delete_file.rb +1 -1
- data/lib/language_server/protocol/interface/diagnostic_client_capabilities.rb +49 -0
- data/lib/language_server/protocol/interface/diagnostic_options.rb +64 -0
- data/lib/language_server/protocol/interface/diagnostic_registration_options.rb +84 -0
- data/lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb +33 -0
- data/lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/did_change_configuration_params.rb +1 -1
- data/lib/language_server/protocol/interface/did_change_notebook_document_params.rb +56 -0
- data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +11 -1
- data/lib/language_server/protocol/interface/did_close_notebook_document_params.rb +46 -0
- data/lib/language_server/protocol/interface/did_open_notebook_document_params.rb +46 -0
- data/lib/language_server/protocol/interface/did_save_notebook_document_params.rb +36 -0
- data/lib/language_server/protocol/interface/document_diagnostic_params.rb +73 -0
- data/lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb +33 -0
- data/lib/language_server/protocol/interface/document_link.rb +1 -1
- data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +1 -1
- data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +9 -4
- data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +1 -1
- data/lib/language_server/protocol/interface/document_symbol.rb +1 -1
- data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/execute_command_params.rb +1 -1
- data/lib/language_server/protocol/interface/execution_summary.rb +45 -0
- data/lib/language_server/protocol/interface/file_system_watcher.rb +3 -14
- data/lib/language_server/protocol/interface/folding_range.rb +12 -1
- data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +19 -1
- data/lib/language_server/protocol/interface/full_document_diagnostic_report.rb +56 -0
- data/lib/language_server/protocol/interface/hover_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/hover_result.rb +30 -0
- data/lib/language_server/protocol/interface/initialize_error.rb +0 -3
- data/lib/language_server/protocol/interface/initialize_params.rb +1 -1
- data/lib/language_server/protocol/interface/inlay_hint.rb +122 -0
- data/lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb +46 -0
- data/lib/language_server/protocol/interface/inlay_hint_label_part.rb +79 -0
- data/lib/language_server/protocol/interface/inlay_hint_options.rb +43 -0
- data/lib/language_server/protocol/interface/inlay_hint_params.rb +54 -0
- data/lib/language_server/protocol/interface/inlay_hint_registration_options.rb +63 -0
- data/lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/inline_value_client_capabilities.rb +37 -0
- data/lib/language_server/protocol/interface/inline_value_context.rb +44 -0
- data/lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb +52 -0
- data/lib/language_server/protocol/interface/inline_value_options.rb +33 -0
- data/lib/language_server/protocol/interface/inline_value_params.rb +64 -0
- data/lib/language_server/protocol/interface/inline_value_registration_options.rb +53 -0
- data/lib/language_server/protocol/interface/inline_value_text.rb +45 -0
- data/lib/language_server/protocol/interface/inline_value_variable_lookup.rb +61 -0
- data/lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/linked_editing_ranges.rb +5 -4
- data/lib/language_server/protocol/interface/location_link.rb +1 -1
- data/lib/language_server/protocol/interface/notebook_cell.rb +69 -0
- data/lib/language_server/protocol/interface/notebook_cell_array_change.rb +55 -0
- data/lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb +52 -0
- data/lib/language_server/protocol/interface/notebook_document.rb +74 -0
- data/lib/language_server/protocol/interface/notebook_document_change_event.rb +45 -0
- data/lib/language_server/protocol/interface/notebook_document_client_capabilities.rb +36 -0
- data/lib/language_server/protocol/interface/notebook_document_filter.rb +79 -0
- data/lib/language_server/protocol/interface/notebook_document_identifier.rb +36 -0
- data/lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb +48 -0
- data/lib/language_server/protocol/interface/notebook_document_sync_options.rb +56 -0
- data/lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb +56 -0
- data/lib/language_server/protocol/interface/position.rb +2 -3
- data/lib/language_server/protocol/interface/prepare_rename_params.rb +10 -1
- data/lib/language_server/protocol/interface/previous_result_id.rb +46 -0
- data/lib/language_server/protocol/interface/registration.rb +1 -1
- data/lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb +69 -0
- data/lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb +62 -0
- data/lib/language_server/protocol/interface/relative_pattern.rb +48 -0
- data/lib/language_server/protocol/interface/rename_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/rename_file.rb +1 -1
- data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +29 -1
- data/lib/language_server/protocol/interface/server_capabilities.rb +62 -2
- data/lib/language_server/protocol/interface/signature_help.rb +2 -2
- data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
- data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +37 -1
- data/lib/language_server/protocol/interface/text_document_content_change_event.rb +2 -2
- data/lib/language_server/protocol/interface/text_document_sync_options.rb +2 -0
- data/lib/language_server/protocol/interface/type_hierarchy_item.rb +102 -0
- data/lib/language_server/protocol/interface/type_hierarchy_options.rb +30 -0
- data/lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb +51 -0
- data/lib/language_server/protocol/interface/type_hierarchy_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb +49 -0
- data/lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb +49 -0
- data/lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb +50 -0
- data/lib/language_server/protocol/interface/{markdown_client_capabilities.rb → versioned_notebook_document_identifier.rb} +12 -12
- data/lib/language_server/protocol/interface/work_done_progress_report.rb +1 -1
- data/lib/language_server/protocol/interface/workspace_diagnostic_params.rb +65 -0
- data/lib/language_server/protocol/interface/workspace_diagnostic_report.rb +33 -0
- data/lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb +33 -0
- data/lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb +75 -0
- data/lib/language_server/protocol/interface/workspace_symbol.rb +89 -0
- data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +14 -3
- data/lib/language_server/protocol/interface/workspace_symbol_options.rb +11 -1
- data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +11 -1
- data/lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb +68 -0
- data/lib/language_server/protocol/interface.rb +124 -4
- data/lib/language_server/protocol/transport/io/reader.rb +7 -24
- data/lib/language_server/protocol/version.rb +1 -1
- metadata +75 -20
@@ -0,0 +1,122 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Inlay hint information.
|
6
|
+
#
|
7
|
+
class InlayHint
|
8
|
+
def initialize(position:, label:, kind: nil, text_edits: nil, tooltip: nil, padding_left: nil, padding_right: nil, data: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:position] = position
|
12
|
+
@attributes[:label] = label
|
13
|
+
@attributes[:kind] = kind if kind
|
14
|
+
@attributes[:textEdits] = text_edits if text_edits
|
15
|
+
@attributes[:tooltip] = tooltip if tooltip
|
16
|
+
@attributes[:paddingLeft] = padding_left if padding_left
|
17
|
+
@attributes[:paddingRight] = padding_right if padding_right
|
18
|
+
@attributes[:data] = data if data
|
19
|
+
|
20
|
+
@attributes.freeze
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# The position of this hint.
|
25
|
+
#
|
26
|
+
# @return [Position]
|
27
|
+
def position
|
28
|
+
attributes.fetch(:position)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# The label of this hint. A human readable string or an array of
|
33
|
+
# InlayHintLabelPart label parts.
|
34
|
+
#
|
35
|
+
# *Note* that neither the string nor the label part can be empty.
|
36
|
+
#
|
37
|
+
# @return [string | InlayHintLabelPart[]]
|
38
|
+
def label
|
39
|
+
attributes.fetch(:label)
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# The kind of this hint. Can be omitted in which case the client
|
44
|
+
# should fall back to a reasonable default.
|
45
|
+
#
|
46
|
+
# @return [InlayHintKind]
|
47
|
+
def kind
|
48
|
+
attributes.fetch(:kind)
|
49
|
+
end
|
50
|
+
|
51
|
+
#
|
52
|
+
# Optional text edits that are performed when accepting this inlay hint.
|
53
|
+
#
|
54
|
+
# *Note* that edits are expected to change the document so that the inlay
|
55
|
+
# hint (or its nearest variant) is now part of the document and the inlay
|
56
|
+
# hint itself is now obsolete.
|
57
|
+
#
|
58
|
+
# Depending on the client capability `inlayHint.resolveSupport` clients
|
59
|
+
# might resolve this property late using the resolve request.
|
60
|
+
#
|
61
|
+
# @return [TextEdit[]]
|
62
|
+
def text_edits
|
63
|
+
attributes.fetch(:textEdits)
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# The tooltip text when you hover over this item.
|
68
|
+
#
|
69
|
+
# Depending on the client capability `inlayHint.resolveSupport` clients
|
70
|
+
# might resolve this property late using the resolve request.
|
71
|
+
#
|
72
|
+
# @return [string | MarkupContent]
|
73
|
+
def tooltip
|
74
|
+
attributes.fetch(:tooltip)
|
75
|
+
end
|
76
|
+
|
77
|
+
#
|
78
|
+
# Render padding before the hint.
|
79
|
+
#
|
80
|
+
# Note: Padding should use the editor's background color, not the
|
81
|
+
# background color of the hint itself. That means padding can be used
|
82
|
+
# to visually align/separate an inlay hint.
|
83
|
+
#
|
84
|
+
# @return [boolean]
|
85
|
+
def padding_left
|
86
|
+
attributes.fetch(:paddingLeft)
|
87
|
+
end
|
88
|
+
|
89
|
+
#
|
90
|
+
# Render padding after the hint.
|
91
|
+
#
|
92
|
+
# Note: Padding should use the editor's background color, not the
|
93
|
+
# background color of the hint itself. That means padding can be used
|
94
|
+
# to visually align/separate an inlay hint.
|
95
|
+
#
|
96
|
+
# @return [boolean]
|
97
|
+
def padding_right
|
98
|
+
attributes.fetch(:paddingRight)
|
99
|
+
end
|
100
|
+
|
101
|
+
#
|
102
|
+
# A data entry field that is preserved on a inlay hint between
|
103
|
+
# a `textDocument/inlayHint` and a `inlayHint/resolve` request.
|
104
|
+
#
|
105
|
+
# @return [LSPAny]
|
106
|
+
def data
|
107
|
+
attributes.fetch(:data)
|
108
|
+
end
|
109
|
+
|
110
|
+
attr_reader :attributes
|
111
|
+
|
112
|
+
def to_hash
|
113
|
+
attributes
|
114
|
+
end
|
115
|
+
|
116
|
+
def to_json(*args)
|
117
|
+
to_hash.to_json(*args)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Inlay hint client capabilities.
|
6
|
+
#
|
7
|
+
class InlayHintClientCapabilities
|
8
|
+
def initialize(dynamic_registration: nil, resolve_support: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
|
12
|
+
@attributes[:resolveSupport] = resolve_support if resolve_support
|
13
|
+
|
14
|
+
@attributes.freeze
|
15
|
+
end
|
16
|
+
|
17
|
+
#
|
18
|
+
# Whether inlay hints support dynamic registration.
|
19
|
+
#
|
20
|
+
# @return [boolean]
|
21
|
+
def dynamic_registration
|
22
|
+
attributes.fetch(:dynamicRegistration)
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# Indicates which properties a client can resolve lazily on a inlay
|
27
|
+
# hint.
|
28
|
+
#
|
29
|
+
# @return [{ properties: string[]; }]
|
30
|
+
def resolve_support
|
31
|
+
attributes.fetch(:resolveSupport)
|
32
|
+
end
|
33
|
+
|
34
|
+
attr_reader :attributes
|
35
|
+
|
36
|
+
def to_hash
|
37
|
+
attributes
|
38
|
+
end
|
39
|
+
|
40
|
+
def to_json(*args)
|
41
|
+
to_hash.to_json(*args)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# An inlay hint label part allows for interactive and composite labels
|
6
|
+
# of inlay hints.
|
7
|
+
#
|
8
|
+
class InlayHintLabelPart
|
9
|
+
def initialize(value:, tooltip: nil, location: nil, command: nil)
|
10
|
+
@attributes = {}
|
11
|
+
|
12
|
+
@attributes[:value] = value
|
13
|
+
@attributes[:tooltip] = tooltip if tooltip
|
14
|
+
@attributes[:location] = location if location
|
15
|
+
@attributes[:command] = command if command
|
16
|
+
|
17
|
+
@attributes.freeze
|
18
|
+
end
|
19
|
+
|
20
|
+
#
|
21
|
+
# The value of this label part.
|
22
|
+
#
|
23
|
+
# @return [string]
|
24
|
+
def value
|
25
|
+
attributes.fetch(:value)
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# The tooltip text when you hover over this label part. Depending on
|
30
|
+
# the client capability `inlayHint.resolveSupport` clients might resolve
|
31
|
+
# this property late using the resolve request.
|
32
|
+
#
|
33
|
+
# @return [string | MarkupContent]
|
34
|
+
def tooltip
|
35
|
+
attributes.fetch(:tooltip)
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# An optional source code location that represents this
|
40
|
+
# label part.
|
41
|
+
#
|
42
|
+
# The editor will use this location for the hover and for code navigation
|
43
|
+
# features: This part will become a clickable link that resolves to the
|
44
|
+
# definition of the symbol at the given location (not necessarily the
|
45
|
+
# location itself), it shows the hover that shows at the given location,
|
46
|
+
# and it shows a context menu with further code navigation commands.
|
47
|
+
#
|
48
|
+
# Depending on the client capability `inlayHint.resolveSupport` clients
|
49
|
+
# might resolve this property late using the resolve request.
|
50
|
+
#
|
51
|
+
# @return [Location]
|
52
|
+
def location
|
53
|
+
attributes.fetch(:location)
|
54
|
+
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# An optional command for this label part.
|
58
|
+
#
|
59
|
+
# Depending on the client capability `inlayHint.resolveSupport` clients
|
60
|
+
# might resolve this property late using the resolve request.
|
61
|
+
#
|
62
|
+
# @return [Command]
|
63
|
+
def command
|
64
|
+
attributes.fetch(:command)
|
65
|
+
end
|
66
|
+
|
67
|
+
attr_reader :attributes
|
68
|
+
|
69
|
+
def to_hash
|
70
|
+
attributes
|
71
|
+
end
|
72
|
+
|
73
|
+
def to_json(*args)
|
74
|
+
to_hash.to_json(*args)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Inlay hint options used during static registration.
|
6
|
+
#
|
7
|
+
class InlayHintOptions
|
8
|
+
def initialize(work_done_progress: nil, resolve_provider: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
12
|
+
@attributes[:resolveProvider] = resolve_provider if resolve_provider
|
13
|
+
|
14
|
+
@attributes.freeze
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [boolean]
|
18
|
+
def work_done_progress
|
19
|
+
attributes.fetch(:workDoneProgress)
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
# The server provides support to resolve additional
|
24
|
+
# information for an inlay hint item.
|
25
|
+
#
|
26
|
+
# @return [boolean]
|
27
|
+
def resolve_provider
|
28
|
+
attributes.fetch(:resolveProvider)
|
29
|
+
end
|
30
|
+
|
31
|
+
attr_reader :attributes
|
32
|
+
|
33
|
+
def to_hash
|
34
|
+
attributes
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_json(*args)
|
38
|
+
to_hash.to_json(*args)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# A parameter literal used in inlay hint requests.
|
6
|
+
#
|
7
|
+
class InlayHintParams
|
8
|
+
def initialize(work_done_token: nil, text_document:, range:)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:workDoneToken] = work_done_token if work_done_token
|
12
|
+
@attributes[:textDocument] = text_document
|
13
|
+
@attributes[:range] = range
|
14
|
+
|
15
|
+
@attributes.freeze
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
# An optional token that a server can use to report work done progress.
|
20
|
+
#
|
21
|
+
# @return [ProgressToken]
|
22
|
+
def work_done_token
|
23
|
+
attributes.fetch(:workDoneToken)
|
24
|
+
end
|
25
|
+
|
26
|
+
#
|
27
|
+
# The text document.
|
28
|
+
#
|
29
|
+
# @return [TextDocumentIdentifier]
|
30
|
+
def text_document
|
31
|
+
attributes.fetch(:textDocument)
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# The visible document range for which inlay hints should be computed.
|
36
|
+
#
|
37
|
+
# @return [Range]
|
38
|
+
def range
|
39
|
+
attributes.fetch(:range)
|
40
|
+
end
|
41
|
+
|
42
|
+
attr_reader :attributes
|
43
|
+
|
44
|
+
def to_hash
|
45
|
+
attributes
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_json(*args)
|
49
|
+
to_hash.to_json(*args)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Inlay hint options used during static or dynamic registration.
|
6
|
+
#
|
7
|
+
class InlayHintRegistrationOptions
|
8
|
+
def initialize(work_done_progress: nil, resolve_provider: nil, document_selector:, id: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
12
|
+
@attributes[:resolveProvider] = resolve_provider if resolve_provider
|
13
|
+
@attributes[:documentSelector] = document_selector
|
14
|
+
@attributes[:id] = id if id
|
15
|
+
|
16
|
+
@attributes.freeze
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [boolean]
|
20
|
+
def work_done_progress
|
21
|
+
attributes.fetch(:workDoneProgress)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# The server provides support to resolve additional
|
26
|
+
# information for an inlay hint item.
|
27
|
+
#
|
28
|
+
# @return [boolean]
|
29
|
+
def resolve_provider
|
30
|
+
attributes.fetch(:resolveProvider)
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# A document selector to identify the scope of the registration. If set to
|
35
|
+
# null the document selector provided on the client side will be used.
|
36
|
+
#
|
37
|
+
# @return [DocumentSelector]
|
38
|
+
def document_selector
|
39
|
+
attributes.fetch(:documentSelector)
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# The id used to register the request. The id can be used to deregister
|
44
|
+
# the request again. See also Registration#id.
|
45
|
+
#
|
46
|
+
# @return [string]
|
47
|
+
def id
|
48
|
+
attributes.fetch(:id)
|
49
|
+
end
|
50
|
+
|
51
|
+
attr_reader :attributes
|
52
|
+
|
53
|
+
def to_hash
|
54
|
+
attributes
|
55
|
+
end
|
56
|
+
|
57
|
+
def to_json(*args)
|
58
|
+
to_hash.to_json(*args)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Client workspace capabilities specific to inlay hints.
|
6
|
+
#
|
7
|
+
class InlayHintWorkspaceClientCapabilities
|
8
|
+
def initialize(refresh_support: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:refreshSupport] = refresh_support if refresh_support
|
12
|
+
|
13
|
+
@attributes.freeze
|
14
|
+
end
|
15
|
+
|
16
|
+
#
|
17
|
+
# Whether the client implementation supports a refresh request sent from
|
18
|
+
# the server to the client.
|
19
|
+
#
|
20
|
+
# Note that this event is global and will force the client to refresh all
|
21
|
+
# inlay hints currently shown. It should be used with absolute care and
|
22
|
+
# is useful for situation where a server for example detects a project wide
|
23
|
+
# change that requires such a calculation.
|
24
|
+
#
|
25
|
+
# @return [boolean]
|
26
|
+
def refresh_support
|
27
|
+
attributes.fetch(:refreshSupport)
|
28
|
+
end
|
29
|
+
|
30
|
+
attr_reader :attributes
|
31
|
+
|
32
|
+
def to_hash
|
33
|
+
attributes
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_json(*args)
|
37
|
+
to_hash.to_json(*args)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Client capabilities specific to inline values.
|
6
|
+
#
|
7
|
+
class InlineValueClientCapabilities
|
8
|
+
def initialize(dynamic_registration: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
|
12
|
+
|
13
|
+
@attributes.freeze
|
14
|
+
end
|
15
|
+
|
16
|
+
#
|
17
|
+
# Whether implementation supports dynamic registration for inline
|
18
|
+
# value providers.
|
19
|
+
#
|
20
|
+
# @return [boolean]
|
21
|
+
def dynamic_registration
|
22
|
+
attributes.fetch(:dynamicRegistration)
|
23
|
+
end
|
24
|
+
|
25
|
+
attr_reader :attributes
|
26
|
+
|
27
|
+
def to_hash
|
28
|
+
attributes
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_json(*args)
|
32
|
+
to_hash.to_json(*args)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class InlineValueContext
|
5
|
+
def initialize(frame_id:, stopped_location:)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:frameId] = frame_id
|
9
|
+
@attributes[:stoppedLocation] = stopped_location
|
10
|
+
|
11
|
+
@attributes.freeze
|
12
|
+
end
|
13
|
+
|
14
|
+
#
|
15
|
+
# The stack frame (as a DAP Id) where the execution has stopped.
|
16
|
+
#
|
17
|
+
# @return [number]
|
18
|
+
def frame_id
|
19
|
+
attributes.fetch(:frameId)
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
# The document range where execution has stopped.
|
24
|
+
# Typically the end position of the range denotes the line where the
|
25
|
+
# inline values are shown.
|
26
|
+
#
|
27
|
+
# @return [Range]
|
28
|
+
def stopped_location
|
29
|
+
attributes.fetch(:stoppedLocation)
|
30
|
+
end
|
31
|
+
|
32
|
+
attr_reader :attributes
|
33
|
+
|
34
|
+
def to_hash
|
35
|
+
attributes
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_json(*args)
|
39
|
+
to_hash.to_json(*args)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Provide an inline value through an expression evaluation.
|
6
|
+
#
|
7
|
+
# If only a range is specified, the expression will be extracted from the
|
8
|
+
# underlying document.
|
9
|
+
#
|
10
|
+
# An optional expression can be used to override the extracted expression.
|
11
|
+
#
|
12
|
+
class InlineValueEvaluatableExpression
|
13
|
+
def initialize(range:, expression: nil)
|
14
|
+
@attributes = {}
|
15
|
+
|
16
|
+
@attributes[:range] = range
|
17
|
+
@attributes[:expression] = expression if expression
|
18
|
+
|
19
|
+
@attributes.freeze
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
# The document range for which the inline value applies.
|
24
|
+
# The range is used to extract the evaluatable expression from the
|
25
|
+
# underlying document.
|
26
|
+
#
|
27
|
+
# @return [Range]
|
28
|
+
def range
|
29
|
+
attributes.fetch(:range)
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# If specified the expression overrides the extracted expression.
|
34
|
+
#
|
35
|
+
# @return [string]
|
36
|
+
def expression
|
37
|
+
attributes.fetch(:expression)
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_reader :attributes
|
41
|
+
|
42
|
+
def to_hash
|
43
|
+
attributes
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_json(*args)
|
47
|
+
to_hash.to_json(*args)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Inline value options used during static registration.
|
6
|
+
#
|
7
|
+
class InlineValueOptions
|
8
|
+
def initialize(work_done_progress: nil)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
12
|
+
|
13
|
+
@attributes.freeze
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [boolean]
|
17
|
+
def work_done_progress
|
18
|
+
attributes.fetch(:workDoneProgress)
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_reader :attributes
|
22
|
+
|
23
|
+
def to_hash
|
24
|
+
attributes
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_json(*args)
|
28
|
+
to_hash.to_json(*args)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# A parameter literal used in inline value requests.
|
6
|
+
#
|
7
|
+
class InlineValueParams
|
8
|
+
def initialize(work_done_token: nil, text_document:, range:, context:)
|
9
|
+
@attributes = {}
|
10
|
+
|
11
|
+
@attributes[:workDoneToken] = work_done_token if work_done_token
|
12
|
+
@attributes[:textDocument] = text_document
|
13
|
+
@attributes[:range] = range
|
14
|
+
@attributes[:context] = context
|
15
|
+
|
16
|
+
@attributes.freeze
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# An optional token that a server can use to report work done progress.
|
21
|
+
#
|
22
|
+
# @return [ProgressToken]
|
23
|
+
def work_done_token
|
24
|
+
attributes.fetch(:workDoneToken)
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# The text document.
|
29
|
+
#
|
30
|
+
# @return [TextDocumentIdentifier]
|
31
|
+
def text_document
|
32
|
+
attributes.fetch(:textDocument)
|
33
|
+
end
|
34
|
+
|
35
|
+
#
|
36
|
+
# The document range for which inline values should be computed.
|
37
|
+
#
|
38
|
+
# @return [Range]
|
39
|
+
def range
|
40
|
+
attributes.fetch(:range)
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
# Additional information about the context in which inline values were
|
45
|
+
# requested.
|
46
|
+
#
|
47
|
+
# @return [InlineValueContext]
|
48
|
+
def context
|
49
|
+
attributes.fetch(:context)
|
50
|
+
end
|
51
|
+
|
52
|
+
attr_reader :attributes
|
53
|
+
|
54
|
+
def to_hash
|
55
|
+
attributes
|
56
|
+
end
|
57
|
+
|
58
|
+
def to_json(*args)
|
59
|
+
to_hash.to_json(*args)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|