language_server-protocol 3.14.0.2 → 3.16.0.1
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.rb +18 -0
- data/lib/language_server/protocol/constant/code_action_kind.rb +17 -11
- data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
- data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
- data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
- 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 +24 -0
- 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 -1
- data/lib/language_server/protocol/constant/token_format.rb +9 -0
- data/lib/language_server/protocol/interface.rb +270 -6
- data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
- data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +24 -1
- 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 +20 -2
- data/lib/language_server/protocol/interface/code_action.rb +52 -4
- data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +95 -0
- data/lib/language_server/protocol/interface/code_action_context.rb +8 -3
- data/lib/language_server/protocol/interface/code_action_options.rb +19 -6
- data/lib/language_server/protocol/interface/code_action_params.rb +20 -1
- data/lib/language_server/protocol/interface/code_action_registration_options.rb +39 -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_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/code_lens_options.rb +7 -4
- data/lib/language_server/protocol/interface/code_lens_params.rb +20 -1
- data/lib/language_server/protocol/interface/code_lens_registration_options.rb +17 -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 -1
- data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
- data/lib/language_server/protocol/interface/completion_context.rb +5 -3
- data/lib/language_server/protocol/interface/completion_item.rb +71 -29
- data/lib/language_server/protocol/interface/completion_list.rb +2 -2
- data/lib/language_server/protocol/interface/completion_options.rb +39 -9
- data/lib/language_server/protocol/interface/completion_params.rb +39 -3
- data/lib/language_server/protocol/interface/completion_registration_options.rb +41 -9
- 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 +44 -0
- data/lib/language_server/protocol/interface/declaration_options.rb +30 -0
- data/lib/language_server/protocol/interface/declaration_params.rb +61 -0
- data/lib/language_server/protocol/interface/declaration_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/definition_options.rb +30 -0
- data/lib/language_server/protocol/interface/definition_params.rb +61 -0
- data/lib/language_server/protocol/interface/definition_registration_options.rb +40 -0
- 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 +31 -2
- data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
- data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/did_change_text_document_params.rb +13 -3
- data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
- data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
- data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_color_options.rb +30 -0
- data/lib/language_server/protocol/interface/document_color_params.rb +52 -0
- data/lib/language_server/protocol/interface/document_color_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/document_filter.rb +7 -3
- data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_formatting_options.rb +30 -0
- data/lib/language_server/protocol/interface/document_formatting_params.rb +10 -1
- data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +40 -0
- data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
- data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_highlight_options.rb +30 -0
- data/lib/language_server/protocol/interface/document_highlight_params.rb +61 -0
- data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +40 -0
- data/lib/language_server/protocol/interface/document_link.rb +17 -3
- data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
- data/lib/language_server/protocol/interface/document_link_options.rb +7 -4
- data/lib/language_server/protocol/interface/document_link_params.rb +20 -1
- data/lib/language_server/protocol/interface/document_link_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
- data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +2 -2
- data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +10 -1
- data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/document_range_formatting_options.rb +30 -0
- data/lib/language_server/protocol/interface/document_range_formatting_params.rb +10 -1
- data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +40 -0
- data/lib/language_server/protocol/interface/document_symbol.rb +108 -0
- data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +73 -0
- data/lib/language_server/protocol/interface/document_symbol_options.rb +40 -0
- data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -1
- data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/execute_command_options.rb +7 -4
- data/lib/language_server/protocol/interface/execute_command_params.rb +10 -1
- data/lib/language_server/protocol/interface/execute_command_registration_options.rb +7 -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 +58 -0
- data/lib/language_server/protocol/interface/folding_range_options.rb +30 -0
- data/lib/language_server/protocol/interface/folding_range_params.rb +20 -1
- data/lib/language_server/protocol/interface/folding_range_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
- data/lib/language_server/protocol/interface/hover.rb +1 -1
- data/lib/language_server/protocol/interface/hover_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/hover_options.rb +30 -0
- data/lib/language_server/protocol/interface/hover_params.rb +51 -0
- data/lib/language_server/protocol/interface/hover_registration_options.rb +40 -0
- data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/implementation_options.rb +30 -0
- data/lib/language_server/protocol/interface/implementation_params.rb +61 -0
- data/lib/language_server/protocol/interface/implementation_registration_options.rb +50 -0
- data/lib/language_server/protocol/interface/initialize_params.rb +38 -7
- data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
- 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 +11 -6
- 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 +7 -2
- 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 +34 -0
- data/lib/language_server/protocol/interface/position.rb +5 -5
- data/lib/language_server/protocol/interface/prepare_rename_params.rb +42 -0
- data/lib/language_server/protocol/interface/progress_params.rb +42 -0
- data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +73 -0
- data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +11 -1
- data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
- data/lib/language_server/protocol/interface/reference_options.rb +30 -0
- data/lib/language_server/protocol/interface/reference_params.rb +37 -2
- data/lib/language_server/protocol/interface/reference_registration_options.rb +40 -0
- data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
- data/lib/language_server/protocol/interface/rename_client_capabilities.rb +69 -0
- 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 +7 -4
- data/lib/language_server/protocol/interface/rename_params.rb +12 -3
- data/lib/language_server/protocol/interface/rename_registration_options.rb +18 -3
- data/lib/language_server/protocol/interface/request_message.rb +7 -2
- data/lib/language_server/protocol/interface/response_error.rb +2 -2
- data/lib/language_server/protocol/interface/response_message.rb +10 -5
- data/lib/language_server/protocol/interface/save_options.rb +0 -3
- data/lib/language_server/protocol/interface/selection_range.rb +43 -0
- data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +36 -0
- data/lib/language_server/protocol/interface/selection_range_options.rb +30 -0
- data/lib/language_server/protocol/interface/selection_range_params.rb +61 -0
- data/lib/language_server/protocol/interface/selection_range_registration_options.rb +50 -0
- 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/{folding_range_provider_options.rb → semantic_tokens_delta_partial_result.rb} +8 -5
- 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/{color_provider_options.rb → semantic_tokens_partial_result.rb} +8 -5
- 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 +108 -60
- 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 +7 -4
- data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
- data/lib/language_server/protocol/interface/signature_help_context.rb +74 -0
- data/lib/language_server/protocol/interface/signature_help_options.rb +20 -4
- data/lib/language_server/protocol/interface/signature_help_params.rb +62 -0
- data/lib/language_server/protocol/interface/signature_help_registration_options.rb +30 -2
- data/lib/language_server/protocol/interface/signature_information.rb +12 -1
- data/lib/language_server/protocol/interface/symbol_information.rb +11 -2
- 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 +123 -86
- data/lib/language_server/protocol/interface/text_document_content_change_event.rb +10 -6
- data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
- data/lib/language_server/protocol/interface/text_document_registration_options.rb +6 -3
- data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
- data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
- data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -8
- data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/type_definition_options.rb +30 -0
- data/lib/language_server/protocol/interface/type_definition_params.rb +61 -0
- data/lib/language_server/protocol/interface/type_definition_registration_options.rb +50 -0
- 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 +80 -0
- data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
- data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
- data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
- data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
- data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
- data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
- data/lib/language_server/protocol/interface/workspace_edit.rb +25 -8
- data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +75 -0
- data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
- data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
- data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +53 -0
- data/lib/language_server/protocol/interface/workspace_symbol_options.rb +30 -0
- data/lib/language_server/protocol/interface/workspace_symbol_params.rb +22 -2
- data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +30 -0
- data/lib/language_server/protocol/transport/io/reader.rb +1 -1
- data/lib/language_server/protocol/version.rb +1 -1
- metadata +154 -15
- data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
@@ -2,7 +2,8 @@ module LanguageServer
|
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
4
|
#
|
5
|
-
# Contains additional information about the context in which a completion
|
5
|
+
# Contains additional information about the context in which a completion
|
6
|
+
# request is triggered.
|
6
7
|
#
|
7
8
|
class CompletionContext
|
8
9
|
def initialize(trigger_kind:, trigger_character: nil)
|
@@ -23,8 +24,9 @@ module LanguageServer
|
|
23
24
|
end
|
24
25
|
|
25
26
|
#
|
26
|
-
# The trigger character (a single character) that has trigger code
|
27
|
-
# Is undefined if
|
27
|
+
# The trigger character (a single character) that has trigger code
|
28
|
+
# complete. Is undefined if
|
29
|
+
# `triggerKind !== CompletionTriggerKind.TriggerCharacter`
|
28
30
|
#
|
29
31
|
# @return [string]
|
30
32
|
def trigger_character
|
@@ -2,11 +2,12 @@ module LanguageServer
|
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
4
|
class CompletionItem
|
5
|
-
def initialize(label:, kind: nil, detail: nil, documentation: nil, deprecated: nil, preselect: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, text_edit: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
|
5
|
+
def initialize(label:, kind: nil, tags: nil, detail: nil, documentation: nil, deprecated: nil, preselect: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, insert_text_mode: nil, text_edit: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
|
6
6
|
@attributes = {}
|
7
7
|
|
8
8
|
@attributes[:label] = label
|
9
9
|
@attributes[:kind] = kind if kind
|
10
|
+
@attributes[:tags] = tags if tags
|
10
11
|
@attributes[:detail] = detail if detail
|
11
12
|
@attributes[:documentation] = documentation if documentation
|
12
13
|
@attributes[:deprecated] = deprecated if deprecated
|
@@ -15,6 +16,7 @@ module LanguageServer
|
|
15
16
|
@attributes[:filterText] = filter_text if filter_text
|
16
17
|
@attributes[:insertText] = insert_text if insert_text
|
17
18
|
@attributes[:insertTextFormat] = insert_text_format if insert_text_format
|
19
|
+
@attributes[:insertTextMode] = insert_text_mode if insert_text_mode
|
18
20
|
@attributes[:textEdit] = text_edit if text_edit
|
19
21
|
@attributes[:additionalTextEdits] = additional_text_edits if additional_text_edits
|
20
22
|
@attributes[:commitCharacters] = commit_characters if commit_characters
|
@@ -36,13 +38,22 @@ module LanguageServer
|
|
36
38
|
|
37
39
|
#
|
38
40
|
# The kind of this completion item. Based of the kind
|
39
|
-
# an icon is chosen by the editor.
|
41
|
+
# an icon is chosen by the editor. The standardized set
|
42
|
+
# of available values is defined in `CompletionItemKind`.
|
40
43
|
#
|
41
|
-
# @return [
|
44
|
+
# @return [any]
|
42
45
|
def kind
|
43
46
|
attributes.fetch(:kind)
|
44
47
|
end
|
45
48
|
|
49
|
+
#
|
50
|
+
# Tags for this completion item.
|
51
|
+
#
|
52
|
+
# @return [1[]]
|
53
|
+
def tags
|
54
|
+
attributes.fetch(:tags)
|
55
|
+
end
|
56
|
+
|
46
57
|
#
|
47
58
|
# A human-readable string with additional information
|
48
59
|
# about this item, like type or symbol information.
|
@@ -82,7 +93,8 @@ module LanguageServer
|
|
82
93
|
|
83
94
|
#
|
84
95
|
# A string that should be used when comparing this item
|
85
|
-
# with other items. When `falsy` the label is used
|
96
|
+
# with other items. When `falsy` the label is used
|
97
|
+
# as the sort text for this item.
|
86
98
|
#
|
87
99
|
# @return [string]
|
88
100
|
def sort_text
|
@@ -91,7 +103,8 @@ module LanguageServer
|
|
91
103
|
|
92
104
|
#
|
93
105
|
# A string that should be used when filtering a set of
|
94
|
-
# completion items. When `falsy` the label is used
|
106
|
+
# completion items. When `falsy` the label is used as the
|
107
|
+
# filter text for this item.
|
95
108
|
#
|
96
109
|
# @return [string]
|
97
110
|
def filter_text
|
@@ -100,14 +113,16 @@ module LanguageServer
|
|
100
113
|
|
101
114
|
#
|
102
115
|
# A string that should be inserted into a document when selecting
|
103
|
-
# this completion. When `falsy` the label is used
|
116
|
+
# this completion. When `falsy` the label is used as the insert text
|
117
|
+
# for this item.
|
104
118
|
#
|
105
119
|
# The `insertText` is subject to interpretation by the client side.
|
106
120
|
# Some tools might not take the string literally. For example
|
107
|
-
# VS Code when code complete is requested in this example
|
108
|
-
# and a completion item with an `insertText` of
|
109
|
-
# will only insert `sole`. Therefore it is
|
110
|
-
# since it avoids additional client
|
121
|
+
# VS Code when code complete is requested in this example
|
122
|
+
# `con<cursor position>` and a completion item with an `insertText` of
|
123
|
+
# `console` is provided it will only insert `sole`. Therefore it is
|
124
|
+
# recommended to use `textEdit` instead since it avoids additional client
|
125
|
+
# side interpretation.
|
111
126
|
#
|
112
127
|
# @return [string]
|
113
128
|
def insert_text
|
@@ -115,8 +130,9 @@ module LanguageServer
|
|
115
130
|
end
|
116
131
|
|
117
132
|
#
|
118
|
-
# The format of the insert text. The format applies to both the
|
119
|
-
# and the `newText` property of a provided
|
133
|
+
# The format of the insert text. The format applies to both the
|
134
|
+
# `insertText` property and the `newText` property of a provided
|
135
|
+
# `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
|
120
136
|
#
|
121
137
|
# @return [InsertTextFormat]
|
122
138
|
def insert_text_format
|
@@ -124,25 +140,50 @@ module LanguageServer
|
|
124
140
|
end
|
125
141
|
|
126
142
|
#
|
127
|
-
#
|
128
|
-
#
|
143
|
+
# How whitespace and indentation is handled during completion
|
144
|
+
# item insertion. If not provided the client's default value depends on
|
145
|
+
# the `textDocument.completion.insertTextMode` client capability.
|
146
|
+
#
|
147
|
+
# @return [InsertTextMode]
|
148
|
+
def insert_text_mode
|
149
|
+
attributes.fetch(:insertTextMode)
|
150
|
+
end
|
151
|
+
|
152
|
+
#
|
153
|
+
# An edit which is applied to a document when selecting this completion.
|
154
|
+
# When an edit is provided the value of `insertText` is ignored.
|
155
|
+
#
|
156
|
+
# *Note:* The range of the edit must be a single line range and it must
|
157
|
+
# contain the position at which completion has been requested.
|
158
|
+
#
|
159
|
+
# Most editors support two different operations when accepting a completion
|
160
|
+
# item. One is to insert a completion text and the other is to replace an
|
161
|
+
# existing text with a completion text. Since this can usually not be
|
162
|
+
# predetermined by a server it can report both ranges. Clients need to
|
163
|
+
# signal support for `InsertReplaceEdits` via the
|
164
|
+
# `textDocument.completion.insertReplaceSupport` client capability
|
165
|
+
# property.
|
129
166
|
#
|
130
|
-
# *Note:* The
|
131
|
-
#
|
167
|
+
# *Note 1:* The text edit's range as well as both ranges from an insert
|
168
|
+
# replace edit must be a [single line] and they must contain the position
|
169
|
+
# at which completion has been requested.
|
170
|
+
# *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
|
171
|
+
# must be a prefix of the edit's replace range, that means it must be
|
172
|
+
# contained and starting at the same position.
|
132
173
|
#
|
133
|
-
# @return [TextEdit]
|
174
|
+
# @return [TextEdit | InsertReplaceEdit]
|
134
175
|
def text_edit
|
135
176
|
attributes.fetch(:textEdit)
|
136
177
|
end
|
137
178
|
|
138
179
|
#
|
139
180
|
# An optional array of additional text edits that are applied when
|
140
|
-
# selecting this completion. Edits must not overlap (including the same
|
141
|
-
# with the main edit nor with themselves.
|
181
|
+
# selecting this completion. Edits must not overlap (including the same
|
182
|
+
# insert position) with the main edit nor with themselves.
|
142
183
|
#
|
143
|
-
# Additional text edits should be used to change text unrelated to the
|
144
|
-
# (for example adding an import statement at the
|
145
|
-
# insert an unqualified type).
|
184
|
+
# Additional text edits should be used to change text unrelated to the
|
185
|
+
# current cursor position (for example adding an import statement at the
|
186
|
+
# top of the file if the completion item will insert an unqualified type).
|
146
187
|
#
|
147
188
|
# @return [TextEdit[]]
|
148
189
|
def additional_text_edits
|
@@ -150,9 +191,10 @@ module LanguageServer
|
|
150
191
|
end
|
151
192
|
|
152
193
|
#
|
153
|
-
# An optional set of characters that when pressed while this completion is
|
154
|
-
# then type that character. *Note* that all
|
155
|
-
# characters
|
194
|
+
# An optional set of characters that when pressed while this completion is
|
195
|
+
# active will accept it first and then type that character. *Note* that all
|
196
|
+
# commit characters should have `length=1` and that superfluous characters
|
197
|
+
# will be ignored.
|
156
198
|
#
|
157
199
|
# @return [string[]]
|
158
200
|
def commit_characters
|
@@ -160,9 +202,9 @@ module LanguageServer
|
|
160
202
|
end
|
161
203
|
|
162
204
|
#
|
163
|
-
# An optional command that is executed *after* inserting this completion.
|
164
|
-
# additional modifications to the current document should be
|
165
|
-
# additionalTextEdits-property.
|
205
|
+
# An optional command that is executed *after* inserting this completion.
|
206
|
+
# *Note* that additional modifications to the current document should be
|
207
|
+
# described with the additionalTextEdits-property.
|
166
208
|
#
|
167
209
|
# @return [Command]
|
168
210
|
def command
|
@@ -170,7 +212,7 @@ module LanguageServer
|
|
170
212
|
end
|
171
213
|
|
172
214
|
#
|
173
|
-
#
|
215
|
+
# A data entry field that is preserved on a completion item between
|
174
216
|
# a completion and a completion resolve request.
|
175
217
|
#
|
176
218
|
# @return [any]
|
@@ -2,8 +2,8 @@ module LanguageServer
|
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
4
|
#
|
5
|
-
# Represents a collection of [completion items](#CompletionItem) to be
|
6
|
-
# in the editor.
|
5
|
+
# Represents a collection of [completion items](#CompletionItem) to be
|
6
|
+
# presented in the editor.
|
7
7
|
#
|
8
8
|
class CompletionList
|
9
9
|
def initialize(is_incomplete:, items:)
|
@@ -5,32 +5,62 @@ module LanguageServer
|
|
5
5
|
# Completion options.
|
6
6
|
#
|
7
7
|
class CompletionOptions
|
8
|
-
def initialize(
|
8
|
+
def initialize(work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
|
9
9
|
@attributes = {}
|
10
10
|
|
11
|
-
@attributes[:
|
11
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
12
12
|
@attributes[:triggerCharacters] = trigger_characters if trigger_characters
|
13
|
+
@attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
|
14
|
+
@attributes[:resolveProvider] = resolve_provider if resolve_provider
|
13
15
|
|
14
16
|
@attributes.freeze
|
15
17
|
end
|
16
18
|
|
17
|
-
#
|
18
|
-
# The server provides support to resolve additional
|
19
|
-
# information for a completion item.
|
20
|
-
#
|
21
19
|
# @return [boolean]
|
22
|
-
def
|
23
|
-
attributes.fetch(:
|
20
|
+
def work_done_progress
|
21
|
+
attributes.fetch(:workDoneProgress)
|
24
22
|
end
|
25
23
|
|
26
24
|
#
|
27
|
-
#
|
25
|
+
# Most tools trigger completion request automatically without explicitly
|
26
|
+
# requesting it using a keyboard shortcut (e.g. Ctrl+Space). Typically they
|
27
|
+
# do so when the user starts to type an identifier. For example if the user
|
28
|
+
# types `c` in a JavaScript file code complete will automatically pop up
|
29
|
+
# present `console` besides others as a completion item. Characters that
|
30
|
+
# make up identifiers don't need to be listed here.
|
31
|
+
#
|
32
|
+
# If code complete should automatically be trigger on characters not being
|
33
|
+
# valid inside an identifier (for example `.` in JavaScript) list them in
|
34
|
+
# `triggerCharacters`.
|
28
35
|
#
|
29
36
|
# @return [string[]]
|
30
37
|
def trigger_characters
|
31
38
|
attributes.fetch(:triggerCharacters)
|
32
39
|
end
|
33
40
|
|
41
|
+
#
|
42
|
+
# The list of all possible characters that commit a completion. This field
|
43
|
+
# can be used if clients don't support individual commit characters per
|
44
|
+
# completion item. See client capability
|
45
|
+
# `completion.completionItem.commitCharactersSupport`.
|
46
|
+
#
|
47
|
+
# If a server provides both `allCommitCharacters` and commit characters on
|
48
|
+
# an individual completion item the ones on the completion item win.
|
49
|
+
#
|
50
|
+
# @return [string[]]
|
51
|
+
def all_commit_characters
|
52
|
+
attributes.fetch(:allCommitCharacters)
|
53
|
+
end
|
54
|
+
|
55
|
+
#
|
56
|
+
# The server provides support to resolve additional
|
57
|
+
# information for a completion item.
|
58
|
+
#
|
59
|
+
# @return [boolean]
|
60
|
+
def resolve_provider
|
61
|
+
attributes.fetch(:resolveProvider)
|
62
|
+
end
|
63
|
+
|
34
64
|
attr_reader :attributes
|
35
65
|
|
36
66
|
def to_hash
|
@@ -1,20 +1,56 @@
|
|
1
1
|
module LanguageServer
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
|
-
class CompletionParams
|
5
|
-
def initialize(text_document:, position:, context: nil)
|
4
|
+
class CompletionParams
|
5
|
+
def initialize(text_document:, position:, work_done_token: nil, partial_result_token: nil, context: nil)
|
6
6
|
@attributes = {}
|
7
7
|
|
8
8
|
@attributes[:textDocument] = text_document
|
9
9
|
@attributes[:position] = position
|
10
|
+
@attributes[:workDoneToken] = work_done_token if work_done_token
|
11
|
+
@attributes[:partialResultToken] = partial_result_token if partial_result_token
|
10
12
|
@attributes[:context] = context if context
|
11
13
|
|
12
14
|
@attributes.freeze
|
13
15
|
end
|
14
16
|
|
17
|
+
#
|
18
|
+
# The text document.
|
19
|
+
#
|
20
|
+
# @return [TextDocumentIdentifier]
|
21
|
+
def text_document
|
22
|
+
attributes.fetch(:textDocument)
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# The position inside the text document.
|
27
|
+
#
|
28
|
+
# @return [Position]
|
29
|
+
def position
|
30
|
+
attributes.fetch(:position)
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# An optional token that a server can use to report work done progress.
|
35
|
+
#
|
36
|
+
# @return [ProgressToken]
|
37
|
+
def work_done_token
|
38
|
+
attributes.fetch(:workDoneToken)
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# An optional token that a server can use to report partial results (e.g.
|
43
|
+
# streaming) to the client.
|
44
|
+
#
|
45
|
+
# @return [ProgressToken]
|
46
|
+
def partial_result_token
|
47
|
+
attributes.fetch(:partialResultToken)
|
48
|
+
end
|
49
|
+
|
15
50
|
#
|
16
51
|
# The completion context. This is only available if the client specifies
|
17
|
-
# to send this using
|
52
|
+
# to send this using the client capability
|
53
|
+
# `completion.contextSupport === true`
|
18
54
|
#
|
19
55
|
# @return [CompletionContext]
|
20
56
|
def context
|
@@ -1,32 +1,64 @@
|
|
1
1
|
module LanguageServer
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
|
-
class CompletionRegistrationOptions
|
5
|
-
def initialize(document_selector:, trigger_characters: nil, resolve_provider: nil)
|
4
|
+
class CompletionRegistrationOptions
|
5
|
+
def initialize(document_selector:, work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
|
6
6
|
@attributes = {}
|
7
7
|
|
8
8
|
@attributes[:documentSelector] = document_selector
|
9
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
9
10
|
@attributes[:triggerCharacters] = trigger_characters if trigger_characters
|
11
|
+
@attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
|
10
12
|
@attributes[:resolveProvider] = resolve_provider if resolve_provider
|
11
13
|
|
12
14
|
@attributes.freeze
|
13
15
|
end
|
14
16
|
|
15
17
|
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
# starts to type an identifier. For example if the user types `c` in a JavaScript file
|
19
|
-
# code complete will automatically pop up present `console` besides others as a
|
20
|
-
# completion item. Characters that make up identifiers don't need to be listed here.
|
18
|
+
# A document selector to identify the scope of the registration. If set to
|
19
|
+
# null the document selector provided on the client side will be used.
|
21
20
|
#
|
22
|
-
#
|
23
|
-
|
21
|
+
# @return [DocumentSelector]
|
22
|
+
def document_selector
|
23
|
+
attributes.fetch(:documentSelector)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [boolean]
|
27
|
+
def work_done_progress
|
28
|
+
attributes.fetch(:workDoneProgress)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# Most tools trigger completion request automatically without explicitly
|
33
|
+
# requesting it using a keyboard shortcut (e.g. Ctrl+Space). Typically they
|
34
|
+
# do so when the user starts to type an identifier. For example if the user
|
35
|
+
# types `c` in a JavaScript file code complete will automatically pop up
|
36
|
+
# present `console` besides others as a completion item. Characters that
|
37
|
+
# make up identifiers don't need to be listed here.
|
38
|
+
#
|
39
|
+
# If code complete should automatically be trigger on characters not being
|
40
|
+
# valid inside an identifier (for example `.` in JavaScript) list them in
|
41
|
+
# `triggerCharacters`.
|
24
42
|
#
|
25
43
|
# @return [string[]]
|
26
44
|
def trigger_characters
|
27
45
|
attributes.fetch(:triggerCharacters)
|
28
46
|
end
|
29
47
|
|
48
|
+
#
|
49
|
+
# The list of all possible characters that commit a completion. This field
|
50
|
+
# can be used if clients don't support individual commit characters per
|
51
|
+
# completion item. See client capability
|
52
|
+
# `completion.completionItem.commitCharactersSupport`.
|
53
|
+
#
|
54
|
+
# If a server provides both `allCommitCharacters` and commit characters on
|
55
|
+
# an individual completion item the ones on the completion item win.
|
56
|
+
#
|
57
|
+
# @return [string[]]
|
58
|
+
def all_commit_characters
|
59
|
+
attributes.fetch(:allCommitCharacters)
|
60
|
+
end
|
61
|
+
|
30
62
|
#
|
31
63
|
# The server provides support to resolve additional
|
32
64
|
# information for a completion item.
|
@@ -5,12 +5,13 @@ module LanguageServer
|
|
5
5
|
# Create file operation
|
6
6
|
#
|
7
7
|
class CreateFile
|
8
|
-
def initialize(kind:, uri:, options: nil)
|
8
|
+
def initialize(kind:, uri:, options: nil, annotation_id: nil)
|
9
9
|
@attributes = {}
|
10
10
|
|
11
11
|
@attributes[:kind] = kind
|
12
12
|
@attributes[:uri] = uri
|
13
13
|
@attributes[:options] = options if options
|
14
|
+
@attributes[:annotationId] = annotation_id if annotation_id
|
14
15
|
|
15
16
|
@attributes.freeze
|
16
17
|
end
|
@@ -39,6 +40,14 @@ module LanguageServer
|
|
39
40
|
attributes.fetch(:options)
|
40
41
|
end
|
41
42
|
|
43
|
+
#
|
44
|
+
# An optional annotation identifer describing the operation.
|
45
|
+
#
|
46
|
+
# @return [string]
|
47
|
+
def annotation_id
|
48
|
+
attributes.fetch(:annotationId)
|
49
|
+
end
|
50
|
+
|
42
51
|
attr_reader :attributes
|
43
52
|
|
44
53
|
def to_hash
|