language_server-protocol 3.15.0.2 → 3.16.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/lib/language_server/protocol/constant/code_action_kind.rb +6 -4
- data/lib/language_server/protocol/constant/completion_item_tag.rb +2 -2
- data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
- data/lib/language_server/protocol/constant/diagnostic_tag.rb +2 -2
- data/lib/language_server/protocol/constant/error_codes.rb +26 -3
- data/lib/language_server/protocol/constant/failure_handling_kind.rb +6 -5
- data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +20 -0
- data/lib/language_server/protocol/constant/initialize_error.rb +2 -1
- data/lib/language_server/protocol/constant/insert_text_mode.rb +30 -0
- data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +13 -0
- data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +2 -1
- data/lib/language_server/protocol/constant/symbol_tag.rb +15 -0
- data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
- data/lib/language_server/protocol/constant/text_document_sync_kind.rb +2 -2
- data/lib/language_server/protocol/constant/token_format.rb +9 -0
- data/lib/language_server/protocol/constant.rb +10 -0
- data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
- data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +15 -4
- data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +36 -0
- data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +43 -0
- data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +49 -0
- data/lib/language_server/protocol/interface/call_hierarchy_item.rb +100 -0
- data/lib/language_server/protocol/interface/call_hierarchy_options.rb +30 -0
- data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +43 -0
- data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +49 -0
- data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +51 -0
- data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/change_annotation.rb +57 -0
- data/lib/language_server/protocol/interface/client_capabilities.rb +12 -3
- data/lib/language_server/protocol/interface/code_action.rb +43 -8
- data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +44 -1
- data/lib/language_server/protocol/interface/code_action_context.rb +7 -6
- data/lib/language_server/protocol/interface/code_action_options.rb +19 -4
- data/lib/language_server/protocol/interface/code_action_params.rb +20 -2
- data/lib/language_server/protocol/interface/code_action_registration_options.rb +38 -2
- data/lib/language_server/protocol/interface/code_description.rb +36 -0
- data/lib/language_server/protocol/interface/code_lens.rb +5 -3
- data/lib/language_server/protocol/interface/code_lens_options.rb +6 -1
- data/lib/language_server/protocol/interface/code_lens_params.rb +20 -2
- data/lib/language_server/protocol/interface/code_lens_registration_options.rb +25 -2
- data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +39 -0
- data/lib/language_server/protocol/interface/color_presentation.rb +7 -6
- data/lib/language_server/protocol/interface/color_presentation_params.rb +20 -2
- data/lib/language_server/protocol/interface/completion_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/completion_context.rb +5 -3
- data/lib/language_server/protocol/interface/completion_item.rb +60 -29
- data/lib/language_server/protocol/interface/completion_list.rb +2 -2
- data/lib/language_server/protocol/interface/completion_options.rb +21 -13
- data/lib/language_server/protocol/interface/completion_params.rb +40 -3
- data/lib/language_server/protocol/interface/completion_registration_options.rb +57 -2
- data/lib/language_server/protocol/interface/create_file.rb +10 -1
- data/lib/language_server/protocol/interface/create_files_params.rb +37 -0
- data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +3 -3
- data/lib/language_server/protocol/interface/declaration_options.rb +6 -1
- data/lib/language_server/protocol/interface/declaration_params.rb +38 -2
- data/lib/language_server/protocol/interface/declaration_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/definition_options.rb +6 -1
- data/lib/language_server/protocol/interface/definition_params.rb +38 -2
- data/lib/language_server/protocol/interface/definition_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/delete_file.rb +10 -1
- data/lib/language_server/protocol/interface/delete_files_params.rb +37 -0
- data/lib/language_server/protocol/interface/diagnostic.rb +21 -1
- data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
- data/lib/language_server/protocol/interface/did_change_text_document_params.rb +11 -9
- data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +3 -3
- data/lib/language_server/protocol/interface/document_color_options.rb +6 -1
- data/lib/language_server/protocol/interface/document_color_params.rb +20 -2
- data/lib/language_server/protocol/interface/document_color_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/document_filter.rb +7 -3
- data/lib/language_server/protocol/interface/document_formatting_options.rb +6 -1
- data/lib/language_server/protocol/interface/document_formatting_params.rb +9 -1
- data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
- data/lib/language_server/protocol/interface/document_highlight_options.rb +6 -1
- data/lib/language_server/protocol/interface/document_highlight_params.rb +38 -2
- data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/document_link.rb +6 -5
- data/lib/language_server/protocol/interface/document_link_options.rb +6 -1
- data/lib/language_server/protocol/interface/document_link_params.rb +20 -2
- data/lib/language_server/protocol/interface/document_link_registration_options.rb +25 -2
- data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +17 -1
- data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +28 -2
- data/lib/language_server/protocol/interface/document_range_formatting_options.rb +6 -1
- data/lib/language_server/protocol/interface/document_range_formatting_params.rb +9 -1
- data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/document_symbol.rb +23 -11
- data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +24 -2
- data/lib/language_server/protocol/interface/document_symbol_options.rb +17 -2
- data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -2
- data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/execute_command_options.rb +6 -1
- data/lib/language_server/protocol/interface/execute_command_params.rb +9 -1
- data/lib/language_server/protocol/interface/execute_command_registration_options.rb +14 -1
- data/lib/language_server/protocol/interface/file_create.rb +36 -0
- data/lib/language_server/protocol/interface/file_delete.rb +36 -0
- data/lib/language_server/protocol/interface/file_operation_filter.rb +46 -0
- data/lib/language_server/protocol/interface/file_operation_pattern.rb +67 -0
- data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +36 -0
- data/lib/language_server/protocol/interface/file_operation_registration_options.rb +36 -0
- data/lib/language_server/protocol/interface/file_rename.rb +45 -0
- data/lib/language_server/protocol/interface/file_system_watcher.rb +7 -3
- data/lib/language_server/protocol/interface/folding_range.rb +17 -8
- data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +10 -7
- data/lib/language_server/protocol/interface/folding_range_options.rb +6 -1
- data/lib/language_server/protocol/interface/folding_range_params.rb +20 -2
- data/lib/language_server/protocol/interface/folding_range_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/hover.rb +1 -1
- data/lib/language_server/protocol/interface/hover_client_capabilities.rb +3 -2
- data/lib/language_server/protocol/interface/hover_options.rb +6 -1
- data/lib/language_server/protocol/interface/hover_params.rb +28 -2
- data/lib/language_server/protocol/interface/hover_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +3 -3
- data/lib/language_server/protocol/interface/implementation_options.rb +6 -1
- data/lib/language_server/protocol/interface/implementation_params.rb +38 -2
- data/lib/language_server/protocol/interface/implementation_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/initialize_params.rb +29 -6
- data/lib/language_server/protocol/interface/insert_replace_edit.rb +54 -0
- data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +36 -0
- data/lib/language_server/protocol/interface/linked_editing_range_options.rb +30 -0
- data/lib/language_server/protocol/interface/linked_editing_range_params.rb +51 -0
- data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/linked_editing_ranges.rb +45 -0
- data/lib/language_server/protocol/interface/location_link.rb +9 -7
- data/lib/language_server/protocol/interface/log_message_params.rb +1 -1
- data/lib/language_server/protocol/interface/log_trace_params.rb +43 -0
- data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +45 -0
- data/lib/language_server/protocol/interface/markup_content.rb +9 -7
- data/lib/language_server/protocol/interface/moniker.rb +64 -0
- data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +36 -0
- data/lib/language_server/protocol/interface/moniker_options.rb +30 -0
- data/lib/language_server/protocol/interface/moniker_params.rb +61 -0
- data/lib/language_server/protocol/interface/moniker_registration_options.rb +40 -0
- data/lib/language_server/protocol/interface/notification_message.rb +6 -1
- data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +50 -0
- data/lib/language_server/protocol/interface/parameter_information.rb +7 -5
- data/lib/language_server/protocol/interface/partial_result_params.rb +3 -3
- data/lib/language_server/protocol/interface/position.rb +5 -5
- data/lib/language_server/protocol/interface/prepare_rename_params.rb +17 -1
- data/lib/language_server/protocol/interface/progress_params.rb +1 -1
- data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +21 -1
- data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +2 -1
- data/lib/language_server/protocol/interface/reference_options.rb +6 -1
- data/lib/language_server/protocol/interface/reference_params.rb +38 -2
- data/lib/language_server/protocol/interface/reference_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
- data/lib/language_server/protocol/interface/rename_client_capabilities.rb +27 -1
- data/lib/language_server/protocol/interface/rename_file.rb +10 -1
- data/lib/language_server/protocol/interface/rename_files_params.rb +38 -0
- data/lib/language_server/protocol/interface/rename_options.rb +6 -1
- data/lib/language_server/protocol/interface/rename_params.rb +28 -2
- data/lib/language_server/protocol/interface/rename_registration_options.rb +25 -2
- data/lib/language_server/protocol/interface/request_message.rb +6 -1
- data/lib/language_server/protocol/interface/response_message.rb +6 -1
- data/lib/language_server/protocol/interface/selection_range.rb +2 -1
- data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +4 -3
- data/lib/language_server/protocol/interface/selection_range_options.rb +6 -1
- data/lib/language_server/protocol/interface/selection_range_params.rb +20 -2
- data/lib/language_server/protocol/interface/selection_range_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/semantic_tokens.rb +45 -0
- data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +97 -0
- data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +40 -0
- data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +62 -0
- data/lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb +30 -0
- data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +51 -0
- data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +42 -0
- data/lib/language_server/protocol/interface/semantic_tokens_options.rb +58 -0
- data/lib/language_server/protocol/interface/semantic_tokens_params.rb +52 -0
- data/lib/language_server/protocol/interface/semantic_tokens_partial_result.rb +30 -0
- data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +61 -0
- data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +78 -0
- data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +39 -0
- data/lib/language_server/protocol/interface/server_capabilities.rb +47 -9
- data/lib/language_server/protocol/interface/set_trace_params.rb +33 -0
- data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +37 -0
- data/lib/language_server/protocol/interface/show_document_params.rb +71 -0
- data/lib/language_server/protocol/interface/show_document_result.rb +36 -0
- data/lib/language_server/protocol/interface/show_message_params.rb +1 -1
- data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +36 -0
- data/lib/language_server/protocol/interface/show_message_request_params.rb +1 -1
- data/lib/language_server/protocol/interface/signature_help.rb +3 -3
- data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/signature_help_context.rb +10 -7
- data/lib/language_server/protocol/interface/signature_help_options.rb +9 -3
- data/lib/language_server/protocol/interface/signature_help_params.rb +31 -4
- data/lib/language_server/protocol/interface/signature_help_registration_options.rb +38 -2
- data/lib/language_server/protocol/interface/signature_information.rb +12 -1
- data/lib/language_server/protocol/interface/symbol_information.rb +10 -1
- data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +11 -2
- data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +39 -2
- data/lib/language_server/protocol/interface/text_document_content_change_event.rb +2 -2
- data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
- data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -3
- data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
- data/lib/language_server/protocol/interface/text_document_sync_options.rb +13 -15
- data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +3 -3
- data/lib/language_server/protocol/interface/type_definition_options.rb +6 -1
- data/lib/language_server/protocol/interface/type_definition_params.rb +38 -2
- data/lib/language_server/protocol/interface/type_definition_registration_options.rb +27 -2
- data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +12 -8
- data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
- data/lib/language_server/protocol/interface/work_done_progress_begin.rb +3 -3
- data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +1 -1
- data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +1 -1
- data/lib/language_server/protocol/interface/work_done_progress_params.rb +1 -1
- data/lib/language_server/protocol/interface/work_done_progress_report.rb +5 -5
- data/lib/language_server/protocol/interface/workspace_edit.rb +24 -7
- data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +23 -1
- data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +13 -2
- data/lib/language_server/protocol/interface/workspace_symbol_options.rb +6 -1
- data/lib/language_server/protocol/interface/workspace_symbol_params.rb +20 -2
- data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +6 -1
- data/lib/language_server/protocol/interface.rb +112 -0
- data/lib/language_server/protocol/transport/io/reader.rb +8 -24
- data/lib/language_server/protocol/transport/io/writer.rb +1 -0
- data/lib/language_server/protocol/version.rb +1 -1
- metadata +68 -21
@@ -0,0 +1,42 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensLegend
|
5
|
+
def initialize(token_types:, token_modifiers:)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:tokenTypes] = token_types
|
9
|
+
@attributes[:tokenModifiers] = token_modifiers
|
10
|
+
|
11
|
+
@attributes.freeze
|
12
|
+
end
|
13
|
+
|
14
|
+
#
|
15
|
+
# The token types a server uses.
|
16
|
+
#
|
17
|
+
# @return [string[]]
|
18
|
+
def token_types
|
19
|
+
attributes.fetch(:tokenTypes)
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
# The token modifiers a server uses.
|
24
|
+
#
|
25
|
+
# @return [string[]]
|
26
|
+
def token_modifiers
|
27
|
+
attributes.fetch(:tokenModifiers)
|
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,58 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensOptions
|
5
|
+
def initialize(work_done_progress: nil, legend:, range: nil, full: nil)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
9
|
+
@attributes[:legend] = legend
|
10
|
+
@attributes[:range] = range if range
|
11
|
+
@attributes[:full] = full if full
|
12
|
+
|
13
|
+
@attributes.freeze
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [boolean]
|
17
|
+
def work_done_progress
|
18
|
+
attributes.fetch(:workDoneProgress)
|
19
|
+
end
|
20
|
+
|
21
|
+
#
|
22
|
+
# The legend used by the server
|
23
|
+
#
|
24
|
+
# @return [SemanticTokensLegend]
|
25
|
+
def legend
|
26
|
+
attributes.fetch(:legend)
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
# Server supports providing semantic tokens for a specific range
|
31
|
+
# of a document.
|
32
|
+
#
|
33
|
+
# @return [boolean | {}]
|
34
|
+
def range
|
35
|
+
attributes.fetch(:range)
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# Server supports providing semantic tokens for a full document.
|
40
|
+
#
|
41
|
+
# @return [boolean | { delta?: boolean; }]
|
42
|
+
def full
|
43
|
+
attributes.fetch(:full)
|
44
|
+
end
|
45
|
+
|
46
|
+
attr_reader :attributes
|
47
|
+
|
48
|
+
def to_hash
|
49
|
+
attributes
|
50
|
+
end
|
51
|
+
|
52
|
+
def to_json(*args)
|
53
|
+
to_hash.to_json(*args)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensParams
|
5
|
+
def initialize(work_done_token: nil, partial_result_token: nil, text_document:)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:workDoneToken] = work_done_token if work_done_token
|
9
|
+
@attributes[:partialResultToken] = partial_result_token if partial_result_token
|
10
|
+
@attributes[:textDocument] = text_document
|
11
|
+
|
12
|
+
@attributes.freeze
|
13
|
+
end
|
14
|
+
|
15
|
+
#
|
16
|
+
# An optional token that a server can use to report work done progress.
|
17
|
+
#
|
18
|
+
# @return [ProgressToken]
|
19
|
+
def work_done_token
|
20
|
+
attributes.fetch(:workDoneToken)
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# An optional token that a server can use to report partial results (e.g.
|
25
|
+
# streaming) to the client.
|
26
|
+
#
|
27
|
+
# @return [ProgressToken]
|
28
|
+
def partial_result_token
|
29
|
+
attributes.fetch(:partialResultToken)
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# The text document.
|
34
|
+
#
|
35
|
+
# @return [TextDocumentIdentifier]
|
36
|
+
def text_document
|
37
|
+
attributes.fetch(:textDocument)
|
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,30 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensPartialResult
|
5
|
+
def initialize(data:)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:data] = data
|
9
|
+
|
10
|
+
@attributes.freeze
|
11
|
+
end
|
12
|
+
|
13
|
+
# @return [number[]]
|
14
|
+
def data
|
15
|
+
attributes.fetch(:data)
|
16
|
+
end
|
17
|
+
|
18
|
+
attr_reader :attributes
|
19
|
+
|
20
|
+
def to_hash
|
21
|
+
attributes
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_json(*args)
|
25
|
+
to_hash.to_json(*args)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensRangeParams
|
5
|
+
def initialize(work_done_token: nil, partial_result_token: nil, text_document:, range:)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:workDoneToken] = work_done_token if work_done_token
|
9
|
+
@attributes[:partialResultToken] = partial_result_token if partial_result_token
|
10
|
+
@attributes[:textDocument] = text_document
|
11
|
+
@attributes[:range] = range
|
12
|
+
|
13
|
+
@attributes.freeze
|
14
|
+
end
|
15
|
+
|
16
|
+
#
|
17
|
+
# An optional token that a server can use to report work done progress.
|
18
|
+
#
|
19
|
+
# @return [ProgressToken]
|
20
|
+
def work_done_token
|
21
|
+
attributes.fetch(:workDoneToken)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# An optional token that a server can use to report partial results (e.g.
|
26
|
+
# streaming) to the client.
|
27
|
+
#
|
28
|
+
# @return [ProgressToken]
|
29
|
+
def partial_result_token
|
30
|
+
attributes.fetch(:partialResultToken)
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# The text document.
|
35
|
+
#
|
36
|
+
# @return [TextDocumentIdentifier]
|
37
|
+
def text_document
|
38
|
+
attributes.fetch(:textDocument)
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# The range the semantic tokens are requested for.
|
43
|
+
#
|
44
|
+
# @return [Range]
|
45
|
+
def range
|
46
|
+
attributes.fetch(:range)
|
47
|
+
end
|
48
|
+
|
49
|
+
attr_reader :attributes
|
50
|
+
|
51
|
+
def to_hash
|
52
|
+
attributes
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_json(*args)
|
56
|
+
to_hash.to_json(*args)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensRegistrationOptions
|
5
|
+
def initialize(document_selector:, work_done_progress: nil, legend:, range: nil, full: nil, id: nil)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:documentSelector] = document_selector
|
9
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
10
|
+
@attributes[:legend] = legend
|
11
|
+
@attributes[:range] = range if range
|
12
|
+
@attributes[:full] = full if full
|
13
|
+
@attributes[:id] = id if id
|
14
|
+
|
15
|
+
@attributes.freeze
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
# A document selector to identify the scope of the registration. If set to
|
20
|
+
# null the document selector provided on the client side will be used.
|
21
|
+
#
|
22
|
+
# @return [DocumentSelector]
|
23
|
+
def document_selector
|
24
|
+
attributes.fetch(:documentSelector)
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [boolean]
|
28
|
+
def work_done_progress
|
29
|
+
attributes.fetch(:workDoneProgress)
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# The legend used by the server
|
34
|
+
#
|
35
|
+
# @return [SemanticTokensLegend]
|
36
|
+
def legend
|
37
|
+
attributes.fetch(:legend)
|
38
|
+
end
|
39
|
+
|
40
|
+
#
|
41
|
+
# Server supports providing semantic tokens for a specific range
|
42
|
+
# of a document.
|
43
|
+
#
|
44
|
+
# @return [boolean | {}]
|
45
|
+
def range
|
46
|
+
attributes.fetch(:range)
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# Server supports providing semantic tokens for a full document.
|
51
|
+
#
|
52
|
+
# @return [boolean | { delta?: boolean; }]
|
53
|
+
def full
|
54
|
+
attributes.fetch(:full)
|
55
|
+
end
|
56
|
+
|
57
|
+
#
|
58
|
+
# The id used to register the request. The id can be used to deregister
|
59
|
+
# the request again. See also Registration#id.
|
60
|
+
#
|
61
|
+
# @return [string]
|
62
|
+
def id
|
63
|
+
attributes.fetch(:id)
|
64
|
+
end
|
65
|
+
|
66
|
+
attr_reader :attributes
|
67
|
+
|
68
|
+
def to_hash
|
69
|
+
attributes
|
70
|
+
end
|
71
|
+
|
72
|
+
def to_json(*args)
|
73
|
+
to_hash.to_json(*args)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
class SemanticTokensWorkspaceClientCapabilities
|
5
|
+
def initialize(refresh_support: nil)
|
6
|
+
@attributes = {}
|
7
|
+
|
8
|
+
@attributes[:refreshSupport] = refresh_support if refresh_support
|
9
|
+
|
10
|
+
@attributes.freeze
|
11
|
+
end
|
12
|
+
|
13
|
+
#
|
14
|
+
# Whether the client implementation supports a refresh request sent from
|
15
|
+
# the server to the client.
|
16
|
+
#
|
17
|
+
# Note that this event is global and will force the client to refresh all
|
18
|
+
# semantic tokens currently shown. It should be used with absolute care
|
19
|
+
# and is useful for situation where a server for example detect a project
|
20
|
+
# wide change that requires such a calculation.
|
21
|
+
#
|
22
|
+
# @return [boolean]
|
23
|
+
def refresh_support
|
24
|
+
attributes.fetch(:refreshSupport)
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_reader :attributes
|
28
|
+
|
29
|
+
def to_hash
|
30
|
+
attributes
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_json(*args)
|
34
|
+
to_hash.to_json(*args)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -2,7 +2,7 @@ module LanguageServer
|
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
4
|
class ServerCapabilities
|
5
|
-
def initialize(text_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil)
|
5
|
+
def initialize(text_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, linked_editing_range_provider: nil, call_hierarchy_provider: nil, semantic_tokens_provider: nil, moniker_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil)
|
6
6
|
@attributes = {}
|
7
7
|
|
8
8
|
@attributes[:textDocumentSync] = text_document_sync if text_document_sync
|
@@ -27,6 +27,10 @@ module LanguageServer
|
|
27
27
|
@attributes[:foldingRangeProvider] = folding_range_provider if folding_range_provider
|
28
28
|
@attributes[:executeCommandProvider] = execute_command_provider if execute_command_provider
|
29
29
|
@attributes[:selectionRangeProvider] = selection_range_provider if selection_range_provider
|
30
|
+
@attributes[:linkedEditingRangeProvider] = linked_editing_range_provider if linked_editing_range_provider
|
31
|
+
@attributes[:callHierarchyProvider] = call_hierarchy_provider if call_hierarchy_provider
|
32
|
+
@attributes[:semanticTokensProvider] = semantic_tokens_provider if semantic_tokens_provider
|
33
|
+
@attributes[:monikerProvider] = moniker_provider if moniker_provider
|
30
34
|
@attributes[:workspaceSymbolProvider] = workspace_symbol_provider if workspace_symbol_provider
|
31
35
|
@attributes[:workspace] = workspace if workspace
|
32
36
|
@attributes[:experimental] = experimental if experimental
|
@@ -35,10 +39,12 @@ module LanguageServer
|
|
35
39
|
end
|
36
40
|
|
37
41
|
#
|
38
|
-
# Defines how text documents are synced. Is either a detailed structure
|
39
|
-
# for backwards compatibility the
|
42
|
+
# Defines how text documents are synced. Is either a detailed structure
|
43
|
+
# defining each notification or for backwards compatibility the
|
44
|
+
# TextDocumentSyncKind number. If omitted it defaults to
|
45
|
+
# `TextDocumentSyncKind.None`.
|
40
46
|
#
|
41
|
-
# @return [
|
47
|
+
# @return [TextDocumentSyncOptions | TextDocumentSyncKind]
|
42
48
|
def text_document_sync
|
43
49
|
attributes.fetch(:textDocumentSync)
|
44
50
|
end
|
@@ -124,9 +130,9 @@ module LanguageServer
|
|
124
130
|
end
|
125
131
|
|
126
132
|
#
|
127
|
-
# The server provides code actions. The `CodeActionOptions` return type is
|
128
|
-
# valid if the client signals code action literal support via the
|
129
|
-
# `textDocument.codeAction.codeActionLiteralSupport`.
|
133
|
+
# The server provides code actions. The `CodeActionOptions` return type is
|
134
|
+
# only valid if the client signals code action literal support via the
|
135
|
+
# property `textDocument.codeAction.codeActionLiteralSupport`.
|
130
136
|
#
|
131
137
|
# @return [boolean | CodeActionOptions]
|
132
138
|
def code_action_provider
|
@@ -215,10 +221,42 @@ module LanguageServer
|
|
215
221
|
attributes.fetch(:selectionRangeProvider)
|
216
222
|
end
|
217
223
|
|
224
|
+
#
|
225
|
+
# The server provides linked editing range support.
|
226
|
+
#
|
227
|
+
# @return [boolean | LinkedEditingRangeOptions | LinkedEditingRangeRegistrationOptions]
|
228
|
+
def linked_editing_range_provider
|
229
|
+
attributes.fetch(:linkedEditingRangeProvider)
|
230
|
+
end
|
231
|
+
|
232
|
+
#
|
233
|
+
# The server provides call hierarchy support.
|
234
|
+
#
|
235
|
+
# @return [boolean | CallHierarchyOptions | CallHierarchyRegistrationOptions]
|
236
|
+
def call_hierarchy_provider
|
237
|
+
attributes.fetch(:callHierarchyProvider)
|
238
|
+
end
|
239
|
+
|
240
|
+
#
|
241
|
+
# The server provides semantic tokens support.
|
242
|
+
#
|
243
|
+
# @return [SemanticTokensOptions | SemanticTokensRegistrationOptions]
|
244
|
+
def semantic_tokens_provider
|
245
|
+
attributes.fetch(:semanticTokensProvider)
|
246
|
+
end
|
247
|
+
|
248
|
+
#
|
249
|
+
# Whether server provides moniker support.
|
250
|
+
#
|
251
|
+
# @return [boolean | MonikerOptions | MonikerRegistrationOptions]
|
252
|
+
def moniker_provider
|
253
|
+
attributes.fetch(:monikerProvider)
|
254
|
+
end
|
255
|
+
|
218
256
|
#
|
219
257
|
# The server provides workspace symbol support.
|
220
258
|
#
|
221
|
-
# @return [boolean]
|
259
|
+
# @return [boolean | WorkspaceSymbolOptions]
|
222
260
|
def workspace_symbol_provider
|
223
261
|
attributes.fetch(:workspaceSymbolProvider)
|
224
262
|
end
|
@@ -226,7 +264,7 @@ module LanguageServer
|
|
226
264
|
#
|
227
265
|
# Workspace specific server capabilities
|
228
266
|
#
|
229
|
-
# @return [{ workspaceFolders?: WorkspaceFoldersServerCapabilities; }]
|
267
|
+
# @return [{ workspaceFolders?: WorkspaceFoldersServerCapabilities; fileOperations?: { didCreate?: FileOperationRegistrationOptions; ... 4 more ...; willDelete?: FileOperationRegistrationOptions; }; }]
|
230
268
|
def workspace
|
231
269
|
attributes.fetch(:workspace)
|
232
270
|
end
|