language_server-protocol 3.16.0.1 → 3.17.0.0
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/lib/language_server/protocol/constant/code_action_kind.rb +25 -24
- data/lib/language_server/protocol/constant/code_action_trigger_kind.rb +24 -0
- data/lib/language_server/protocol/constant/completion_item_tag.rb +4 -2
- data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -3
- data/lib/language_server/protocol/constant/diagnostic_severity.rb +3 -0
- data/lib/language_server/protocol/constant/diagnostic_tag.rb +4 -2
- data/lib/language_server/protocol/constant/error_codes.rb +19 -14
- data/lib/language_server/protocol/constant/failure_handling_kind.rb +9 -10
- data/lib/language_server/protocol/constant/file_change_type.rb +1 -1
- data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +4 -2
- data/lib/language_server/protocol/constant/folding_range_kind.rb +23 -0
- data/lib/language_server/protocol/constant/inlay_hint_kind.rb +21 -0
- data/lib/language_server/protocol/constant/insert_text_format.rb +2 -0
- data/lib/language_server/protocol/constant/insert_text_mode.rb +2 -0
- data/lib/language_server/protocol/constant/lsp_error_codes.rb +55 -0
- data/lib/language_server/protocol/constant/markup_kind.rb +2 -2
- data/lib/language_server/protocol/constant/message_type.rb +3 -0
- data/lib/language_server/protocol/constant/moniker_kind.rb +26 -0
- data/lib/language_server/protocol/constant/notebook_cell_kind.rb +21 -0
- data/lib/language_server/protocol/constant/position_encoding_kind.rb +32 -0
- data/lib/language_server/protocol/constant/resource_operation_kind.rb +3 -6
- data/lib/language_server/protocol/constant/semantic_token_modifiers.rb +25 -0
- data/lib/language_server/protocol/constant/semantic_token_types.rb +45 -0
- data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +3 -2
- data/lib/language_server/protocol/constant/symbol_tag.rb +2 -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 +3 -3
- data/lib/language_server/protocol/constant/token_format.rb +1 -1
- data/lib/language_server/protocol/constant/trace_values.rb +20 -0
- data/lib/language_server/protocol/constant/uniqueness_level.rb +33 -0
- data/lib/language_server/protocol/constant.rb +22 -4
- data/lib/language_server/protocol/interface/annotated_text_edit.rb +12 -10
- data/lib/language_server/protocol/interface/apply_workspace_edit_params.rb +4 -1
- data/lib/language_server/protocol/interface/{apply_workspace_edit_response.rb → apply_workspace_edit_result.rb} +11 -7
- data/lib/language_server/protocol/interface/base_symbol_information.rb +68 -0
- data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +7 -5
- data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +5 -0
- data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +16 -11
- data/lib/language_server/protocol/interface/call_hierarchy_item.rb +14 -10
- data/lib/language_server/protocol/interface/call_hierarchy_options.rb +6 -1
- data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +8 -2
- data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +16 -11
- data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +6 -1
- data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +10 -5
- data/lib/language_server/protocol/interface/cancel_params.rb +1 -1
- data/lib/language_server/protocol/interface/change_annotation.rb +4 -2
- data/lib/language_server/protocol/interface/client_capabilities.rb +22 -6
- data/lib/language_server/protocol/interface/code_action.rb +28 -26
- data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +25 -9
- data/lib/language_server/protocol/interface/code_action_context.rb +20 -10
- data/lib/language_server/protocol/interface/code_action_options.rb +16 -11
- data/lib/language_server/protocol/interface/code_action_params.rb +21 -21
- data/lib/language_server/protocol/interface/code_action_registration_options.rb +19 -14
- data/lib/language_server/protocol/interface/code_description.rb +3 -1
- data/lib/language_server/protocol/interface/code_lens.rb +8 -9
- data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/code_lens_options.rb +11 -8
- data/lib/language_server/protocol/interface/code_lens_params.rb +17 -14
- data/lib/language_server/protocol/interface/code_lens_registration_options.rb +14 -11
- data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/color.rb +4 -4
- data/lib/language_server/protocol/interface/color_information.rb +3 -0
- data/lib/language_server/protocol/interface/color_presentation.rb +8 -9
- data/lib/language_server/protocol/interface/color_presentation_params.rb +24 -21
- data/lib/language_server/protocol/interface/command.rb +7 -1
- data/lib/language_server/protocol/interface/completion_client_capabilities.rb +33 -5
- data/lib/language_server/protocol/interface/completion_context.rb +4 -6
- data/lib/language_server/protocol/interface/completion_item.rb +92 -49
- data/lib/language_server/protocol/interface/completion_item_label_details.rb +49 -0
- data/lib/language_server/protocol/interface/completion_list.rb +28 -5
- data/lib/language_server/protocol/interface/completion_options.rb +36 -25
- data/lib/language_server/protocol/interface/completion_params.rb +18 -16
- data/lib/language_server/protocol/interface/completion_registration_options.rb +42 -28
- data/lib/language_server/protocol/interface/configuration_item.rb +2 -2
- data/lib/language_server/protocol/interface/configuration_params.rb +3 -0
- data/lib/language_server/protocol/interface/create_file.rb +7 -5
- data/lib/language_server/protocol/interface/create_file_options.rb +2 -2
- data/lib/language_server/protocol/interface/create_files_params.rb +4 -2
- data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +8 -5
- data/lib/language_server/protocol/interface/declaration_options.rb +1 -1
- data/lib/language_server/protocol/interface/declaration_params.rb +4 -4
- data/lib/language_server/protocol/interface/declaration_registration_options.rb +5 -5
- data/lib/language_server/protocol/interface/definition_client_capabilities.rb +7 -2
- data/lib/language_server/protocol/interface/definition_options.rb +4 -1
- data/lib/language_server/protocol/interface/definition_params.rb +7 -4
- data/lib/language_server/protocol/interface/definition_registration_options.rb +7 -4
- data/lib/language_server/protocol/interface/delete_file.rb +6 -4
- data/lib/language_server/protocol/interface/delete_file_options.rb +2 -2
- data/lib/language_server/protocol/interface/delete_files_params.rb +4 -2
- data/lib/language_server/protocol/interface/diagnostic.rb +25 -14
- data/lib/language_server/protocol/interface/diagnostic_client_capabilities.rb +49 -0
- data/lib/language_server/protocol/interface/diagnostic_options.rb +66 -0
- data/lib/language_server/protocol/interface/diagnostic_registration_options.rb +86 -0
- data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
- data/lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb +35 -0
- data/lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/did_change_configuration_params.rb +4 -1
- data/lib/language_server/protocol/interface/did_change_configuration_registration_options.rb +30 -0
- data/lib/language_server/protocol/interface/did_change_notebook_document_params.rb +62 -0
- data/lib/language_server/protocol/interface/did_change_text_document_params.rb +12 -11
- data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +17 -5
- data/lib/language_server/protocol/interface/did_change_watched_files_params.rb +3 -0
- data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
- data/lib/language_server/protocol/interface/did_change_workspace_folders_params.rb +3 -0
- data/lib/language_server/protocol/interface/did_close_notebook_document_params.rb +48 -0
- data/lib/language_server/protocol/interface/did_close_text_document_params.rb +3 -0
- data/lib/language_server/protocol/interface/did_open_notebook_document_params.rb +48 -0
- data/lib/language_server/protocol/interface/did_open_text_document_params.rb +3 -0
- data/lib/language_server/protocol/interface/did_save_notebook_document_params.rb +38 -0
- data/lib/language_server/protocol/interface/did_save_text_document_params.rb +4 -1
- data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +4 -2
- data/lib/language_server/protocol/interface/document_color_options.rb +1 -1
- data/lib/language_server/protocol/interface/document_color_params.rb +17 -14
- data/lib/language_server/protocol/interface/document_color_registration_options.rb +11 -11
- data/lib/language_server/protocol/interface/document_diagnostic_params.rb +75 -0
- data/lib/language_server/protocol/interface/document_diagnostic_report.rb +77 -0
- data/lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb +35 -0
- data/lib/language_server/protocol/interface/document_filter.rb +25 -19
- data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/document_formatting_options.rb +4 -1
- data/lib/language_server/protocol/interface/document_formatting_params.rb +13 -10
- data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +7 -4
- data/lib/language_server/protocol/interface/document_highlight.rb +2 -2
- data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/document_highlight_options.rb +4 -1
- data/lib/language_server/protocol/interface/document_highlight_params.rb +7 -4
- data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +7 -4
- data/lib/language_server/protocol/interface/document_link.rb +10 -9
- data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +7 -2
- data/lib/language_server/protocol/interface/document_link_options.rb +11 -8
- data/lib/language_server/protocol/interface/document_link_params.rb +17 -14
- data/lib/language_server/protocol/interface/document_link_registration_options.rb +14 -11
- data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +5 -2
- data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +12 -4
- data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +8 -5
- data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +5 -2
- data/lib/language_server/protocol/interface/document_range_formatting_options.rb +4 -1
- data/lib/language_server/protocol/interface/document_range_formatting_params.rb +13 -10
- data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +7 -4
- data/lib/language_server/protocol/interface/document_symbol.rb +18 -16
- data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +12 -5
- data/lib/language_server/protocol/interface/document_symbol_options.rb +13 -8
- data/lib/language_server/protocol/interface/document_symbol_params.rb +17 -14
- data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +16 -11
- data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/execute_command_options.rb +10 -7
- data/lib/language_server/protocol/interface/execute_command_params.rb +14 -11
- data/lib/language_server/protocol/interface/execute_command_registration_options.rb +8 -8
- data/lib/language_server/protocol/interface/execution_summary.rb +45 -0
- data/lib/language_server/protocol/interface/file_create.rb +2 -0
- data/lib/language_server/protocol/interface/file_delete.rb +2 -0
- data/lib/language_server/protocol/interface/file_event.rb +3 -3
- data/lib/language_server/protocol/interface/file_operation_client_capabilities.rb +95 -0
- data/lib/language_server/protocol/interface/file_operation_filter.rb +5 -3
- data/lib/language_server/protocol/interface/file_operation_options.rb +83 -0
- data/lib/language_server/protocol/interface/file_operation_pattern.rb +8 -10
- data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +3 -1
- data/lib/language_server/protocol/interface/file_operation_registration_options.rb +2 -0
- data/lib/language_server/protocol/interface/file_rename.rb +2 -0
- data/lib/language_server/protocol/interface/file_system_watcher.rb +4 -14
- data/lib/language_server/protocol/interface/folding_range.rb +30 -23
- data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +26 -4
- data/lib/language_server/protocol/interface/folding_range_options.rb +1 -1
- data/lib/language_server/protocol/interface/folding_range_params.rb +17 -14
- data/lib/language_server/protocol/interface/folding_range_registration_options.rb +5 -5
- data/lib/language_server/protocol/interface/formatting_options.rb +10 -4
- data/lib/language_server/protocol/interface/full_document_diagnostic_report.rb +58 -0
- data/lib/language_server/protocol/interface/general_client_capabilities.rb +91 -0
- data/lib/language_server/protocol/interface/glob_pattern.rb +48 -0
- data/lib/language_server/protocol/interface/hover.rb +3 -3
- data/lib/language_server/protocol/interface/hover_client_capabilities.rb +4 -5
- data/lib/language_server/protocol/interface/hover_options.rb +4 -1
- data/lib/language_server/protocol/interface/hover_params.rb +4 -1
- data/lib/language_server/protocol/interface/hover_registration_options.rb +7 -4
- data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +10 -5
- data/lib/language_server/protocol/interface/implementation_options.rb +1 -1
- data/lib/language_server/protocol/interface/implementation_params.rb +4 -4
- data/lib/language_server/protocol/interface/implementation_registration_options.rb +5 -5
- data/lib/language_server/protocol/interface/initialize_error.rb +2 -1
- data/lib/language_server/protocol/interface/initialize_params.rb +41 -29
- data/lib/language_server/protocol/interface/initialize_result.rb +6 -1
- data/lib/language_server/protocol/interface/inlay_hint.rb +118 -0
- data/lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb +48 -0
- data/lib/language_server/protocol/interface/inlay_hint_label_part.rb +81 -0
- data/lib/language_server/protocol/interface/inlay_hint_options.rb +45 -0
- data/lib/language_server/protocol/interface/inlay_hint_params.rb +56 -0
- data/lib/language_server/protocol/interface/inlay_hint_registration_options.rb +65 -0
- data/lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/inline_value.rb +78 -0
- data/lib/language_server/protocol/interface/inline_value_client_capabilities.rb +38 -0
- data/lib/language_server/protocol/interface/inline_value_context.rb +46 -0
- data/lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb +50 -0
- data/lib/language_server/protocol/interface/inline_value_options.rb +35 -0
- data/lib/language_server/protocol/interface/inline_value_params.rb +66 -0
- data/lib/language_server/protocol/interface/inline_value_registration_options.rb +55 -0
- data/lib/language_server/protocol/interface/inline_value_text.rb +47 -0
- data/lib/language_server/protocol/interface/inline_value_variable_lookup.rb +59 -0
- data/lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb +44 -0
- data/lib/language_server/protocol/interface/insert_replace_edit.rb +2 -0
- data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +8 -4
- data/lib/language_server/protocol/interface/linked_editing_range_options.rb +1 -1
- data/lib/language_server/protocol/interface/linked_editing_range_params.rb +1 -1
- data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +5 -5
- data/lib/language_server/protocol/interface/linked_editing_ranges.rb +7 -2
- data/lib/language_server/protocol/interface/location.rb +5 -1
- data/lib/language_server/protocol/interface/location_link.rb +13 -11
- data/lib/language_server/protocol/interface/log_message_params.rb +4 -1
- data/lib/language_server/protocol/interface/log_trace_params.rb +1 -8
- data/lib/language_server/protocol/interface/{message.rb → lsp_object.rb} +6 -8
- data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +16 -2
- data/lib/language_server/protocol/interface/markup_content.rb +16 -18
- data/lib/language_server/protocol/interface/moniker.rb +3 -1
- data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +9 -5
- data/lib/language_server/protocol/interface/moniker_options.rb +1 -1
- data/lib/language_server/protocol/interface/moniker_params.rb +4 -4
- data/lib/language_server/protocol/interface/moniker_registration_options.rb +4 -4
- data/lib/language_server/protocol/interface/notebook_cell.rb +73 -0
- data/lib/language_server/protocol/interface/notebook_cell_array_change.rb +57 -0
- data/lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb +54 -0
- data/lib/language_server/protocol/interface/notebook_document.rb +78 -0
- data/lib/language_server/protocol/interface/notebook_document_change_event.rb +49 -0
- data/lib/language_server/protocol/interface/notebook_document_client_capabilities.rb +40 -0
- data/lib/language_server/protocol/interface/notebook_document_filter.rb +58 -0
- data/lib/language_server/protocol/interface/notebook_document_identifier.rb +38 -0
- data/lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb +50 -0
- data/lib/language_server/protocol/interface/notebook_document_sync_options.rb +58 -0
- data/lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb +58 -0
- data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +17 -18
- data/lib/language_server/protocol/interface/parameter_information.rb +7 -9
- data/lib/language_server/protocol/interface/partial_result_params.rb +3 -3
- data/lib/language_server/protocol/interface/position.rb +40 -7
- data/lib/language_server/protocol/interface/prepare_rename_params.rb +10 -1
- data/lib/language_server/protocol/interface/prepare_rename_result.rb +60 -0
- data/lib/language_server/protocol/interface/previous_result_id.rb +48 -0
- data/lib/language_server/protocol/interface/progress_params.rb +1 -1
- data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +16 -5
- data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +8 -4
- data/lib/language_server/protocol/interface/range.rb +13 -0
- data/lib/language_server/protocol/interface/reference_client_capabilities.rb +4 -1
- data/lib/language_server/protocol/interface/reference_context.rb +4 -0
- data/lib/language_server/protocol/interface/reference_options.rb +4 -1
- data/lib/language_server/protocol/interface/reference_params.rb +14 -11
- data/lib/language_server/protocol/interface/reference_registration_options.rb +7 -4
- data/lib/language_server/protocol/interface/registration.rb +2 -2
- data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +3 -1
- data/lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb +73 -0
- data/lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb +66 -0
- data/lib/language_server/protocol/interface/relative_pattern.rb +50 -0
- data/lib/language_server/protocol/interface/rename_client_capabilities.rb +12 -7
- data/lib/language_server/protocol/interface/rename_file.rb +7 -5
- data/lib/language_server/protocol/interface/rename_file_options.rb +2 -2
- data/lib/language_server/protocol/interface/rename_files_params.rb +6 -4
- data/lib/language_server/protocol/interface/rename_options.rb +13 -8
- data/lib/language_server/protocol/interface/rename_params.rb +15 -12
- data/lib/language_server/protocol/interface/rename_registration_options.rb +16 -11
- data/lib/language_server/protocol/interface/resource_operation.rb +47 -0
- data/lib/language_server/protocol/interface/save_options.rb +4 -1
- data/lib/language_server/protocol/interface/selection_range.rb +6 -3
- data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +4 -5
- data/lib/language_server/protocol/interface/selection_range_options.rb +1 -1
- data/lib/language_server/protocol/interface/selection_range_params.rb +23 -20
- data/lib/language_server/protocol/interface/selection_range_registration_options.rb +5 -5
- data/lib/language_server/protocol/interface/semantic_tokens.rb +5 -2
- data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +45 -11
- data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +5 -3
- data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +24 -21
- data/lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb +3 -0
- data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +6 -3
- data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +3 -0
- data/lib/language_server/protocol/interface/semantic_tokens_options.rb +12 -9
- data/lib/language_server/protocol/interface/semantic_tokens_params.rb +17 -14
- data/lib/language_server/protocol/interface/semantic_tokens_partial_result.rb +4 -1
- data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +23 -20
- data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +16 -13
- data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +5 -2
- data/lib/language_server/protocol/interface/server_capabilities.rb +139 -56
- data/lib/language_server/protocol/interface/set_trace_params.rb +1 -4
- data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +4 -2
- data/lib/language_server/protocol/interface/show_document_params.rb +6 -4
- data/lib/language_server/protocol/interface/show_document_result.rb +3 -1
- data/lib/language_server/protocol/interface/show_message_params.rb +4 -1
- data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +1 -1
- data/lib/language_server/protocol/interface/show_message_request_params.rb +2 -2
- data/lib/language_server/protocol/interface/signature_help.rb +3 -4
- data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +8 -3
- data/lib/language_server/protocol/interface/signature_help_context.rb +10 -11
- data/lib/language_server/protocol/interface/signature_help_options.rb +17 -14
- data/lib/language_server/protocol/interface/signature_help_params.rb +17 -13
- data/lib/language_server/protocol/interface/signature_help_registration_options.rb +20 -17
- data/lib/language_server/protocol/interface/signature_information.rb +5 -3
- data/lib/language_server/protocol/interface/static_registration_options.rb +3 -2
- data/lib/language_server/protocol/interface/symbol_information.rb +34 -30
- data/lib/language_server/protocol/interface/t.rb +24 -0
- data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +12 -13
- data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +108 -43
- data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -10
- data/lib/language_server/protocol/interface/text_document_edit.rb +10 -1
- data/lib/language_server/protocol/interface/text_document_filter.rb +69 -0
- data/lib/language_server/protocol/interface/text_document_identifier.rb +5 -2
- data/lib/language_server/protocol/interface/text_document_item.rb +7 -3
- data/lib/language_server/protocol/interface/text_document_position_params.rb +4 -0
- 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 +7 -4
- data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +4 -4
- data/lib/language_server/protocol/interface/text_document_sync_options.rb +15 -17
- data/lib/language_server/protocol/interface/text_edit.rb +3 -0
- data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +10 -5
- data/lib/language_server/protocol/interface/type_definition_options.rb +1 -1
- data/lib/language_server/protocol/interface/type_definition_params.rb +4 -4
- data/lib/language_server/protocol/interface/type_definition_registration_options.rb +5 -5
- data/lib/language_server/protocol/interface/type_hierarchy_client_capabilities.rb +38 -0
- data/lib/language_server/protocol/interface/type_hierarchy_item.rb +105 -0
- data/lib/language_server/protocol/interface/type_hierarchy_options.rb +35 -0
- data/lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb +56 -0
- data/lib/language_server/protocol/interface/type_hierarchy_registration_options.rb +55 -0
- data/lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb +54 -0
- data/lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb +54 -0
- data/lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb +52 -0
- data/lib/language_server/protocol/interface/unregistration.rb +2 -2
- data/lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb +47 -0
- data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +13 -13
- data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
- data/lib/language_server/protocol/interface/window_client_capabilities.rb +63 -0
- data/lib/language_server/protocol/interface/work_done_progress_begin.rb +6 -6
- data/lib/language_server/protocol/interface/work_done_progress_end.rb +1 -1
- data/lib/language_server/protocol/interface/work_done_progress_options.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 +6 -7
- data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +176 -0
- data/lib/language_server/protocol/interface/workspace_diagnostic_params.rb +67 -0
- data/lib/language_server/protocol/interface/workspace_diagnostic_report.rb +35 -0
- data/lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb +35 -0
- data/lib/language_server/protocol/interface/workspace_document_diagnostic_report.rb +77 -0
- data/lib/language_server/protocol/interface/workspace_edit.rb +28 -17
- data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +15 -6
- data/lib/language_server/protocol/interface/workspace_folder.rb +4 -1
- data/lib/language_server/protocol/interface/workspace_folders_initialize_params.rb +39 -0
- data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +3 -3
- data/lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb +77 -0
- data/lib/language_server/protocol/interface/workspace_symbol.rb +95 -0
- data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +23 -6
- data/lib/language_server/protocol/interface/workspace_symbol_options.rb +17 -2
- data/lib/language_server/protocol/interface/workspace_symbol_params.rb +16 -16
- data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +17 -2
- data/lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb +70 -0
- data/lib/language_server/protocol/interface.rb +156 -14
- 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 +92 -24
- data/lib/language_server/protocol/constant/initialize_error.rb +0 -16
- data/lib/language_server/protocol/interface/notification_message.rb +0 -48
- data/lib/language_server/protocol/interface/request_message.rb +0 -57
- data/lib/language_server/protocol/interface/response_error.rb +0 -52
- data/lib/language_server/protocol/interface/response_message.rb +0 -58
@@ -1,11 +1,16 @@
|
|
1
1
|
module LanguageServer
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
|
+
#
|
5
|
+
# A completion item represents a text snippet that is
|
6
|
+
# proposed to complete text that is being typed.
|
7
|
+
#
|
4
8
|
class CompletionItem
|
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)
|
9
|
+
def initialize(label:, label_details: nil, 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, text_edit_text: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
|
6
10
|
@attributes = {}
|
7
11
|
|
8
12
|
@attributes[:label] = label
|
13
|
+
@attributes[:labelDetails] = label_details if label_details
|
9
14
|
@attributes[:kind] = kind if kind
|
10
15
|
@attributes[:tags] = tags if tags
|
11
16
|
@attributes[:detail] = detail if detail
|
@@ -18,6 +23,7 @@ module LanguageServer
|
|
18
23
|
@attributes[:insertTextFormat] = insert_text_format if insert_text_format
|
19
24
|
@attributes[:insertTextMode] = insert_text_mode if insert_text_mode
|
20
25
|
@attributes[:textEdit] = text_edit if text_edit
|
26
|
+
@attributes[:textEditText] = text_edit_text if text_edit_text
|
21
27
|
@attributes[:additionalTextEdits] = additional_text_edits if additional_text_edits
|
22
28
|
@attributes[:commitCharacters] = commit_characters if commit_characters
|
23
29
|
@attributes[:command] = command if command
|
@@ -27,21 +33,34 @@ module LanguageServer
|
|
27
33
|
end
|
28
34
|
|
29
35
|
#
|
30
|
-
# The label of this completion item.
|
31
|
-
#
|
32
|
-
#
|
36
|
+
# The label of this completion item.
|
37
|
+
#
|
38
|
+
# The label property is also by default the text that
|
39
|
+
# is inserted when selecting this completion.
|
40
|
+
#
|
41
|
+
# If label details are provided the label itself should
|
42
|
+
# be an unqualified name of the completion item.
|
33
43
|
#
|
34
44
|
# @return [string]
|
35
45
|
def label
|
36
46
|
attributes.fetch(:label)
|
37
47
|
end
|
38
48
|
|
49
|
+
#
|
50
|
+
# Additional details for the label
|
51
|
+
#
|
52
|
+
# @since 3.17.0
|
53
|
+
#
|
54
|
+
# @return [CompletionItemLabelDetails | nil]
|
55
|
+
def label_details
|
56
|
+
attributes.fetch(:labelDetails)
|
57
|
+
end
|
58
|
+
|
39
59
|
#
|
40
60
|
# The kind of this completion item. Based of the kind
|
41
|
-
# an icon is chosen by the editor.
|
42
|
-
# of available values is defined in `CompletionItemKind`.
|
61
|
+
# an icon is chosen by the editor.
|
43
62
|
#
|
44
|
-
# @return [
|
63
|
+
# @return [CompletionItemKind | nil]
|
45
64
|
def kind
|
46
65
|
attributes.fetch(:kind)
|
47
66
|
end
|
@@ -49,7 +68,9 @@ module LanguageServer
|
|
49
68
|
#
|
50
69
|
# Tags for this completion item.
|
51
70
|
#
|
52
|
-
# @
|
71
|
+
# @since 3.15.0
|
72
|
+
#
|
73
|
+
# @return [CompletionItemTag[] | nil]
|
53
74
|
def tags
|
54
75
|
attributes.fetch(:tags)
|
55
76
|
end
|
@@ -58,7 +79,7 @@ module LanguageServer
|
|
58
79
|
# A human-readable string with additional information
|
59
80
|
# about this item, like type or symbol information.
|
60
81
|
#
|
61
|
-
# @return [string]
|
82
|
+
# @return [string | nil]
|
62
83
|
def detail
|
63
84
|
attributes.fetch(:detail)
|
64
85
|
end
|
@@ -66,15 +87,16 @@ module LanguageServer
|
|
66
87
|
#
|
67
88
|
# A human-readable string that represents a doc-comment.
|
68
89
|
#
|
69
|
-
# @return [string | MarkupContent]
|
90
|
+
# @return [string | MarkupContent | nil]
|
70
91
|
def documentation
|
71
92
|
attributes.fetch(:documentation)
|
72
93
|
end
|
73
94
|
|
74
95
|
#
|
75
96
|
# Indicates if this item is deprecated.
|
97
|
+
# @deprecated Use `tags` instead.
|
76
98
|
#
|
77
|
-
# @return [boolean]
|
99
|
+
# @return [boolean | nil]
|
78
100
|
def deprecated
|
79
101
|
attributes.fetch(:deprecated)
|
80
102
|
end
|
@@ -86,35 +108,35 @@ module LanguageServer
|
|
86
108
|
# tool / client decides which item that is. The rule is that the *first*
|
87
109
|
# item of those that match best is selected.
|
88
110
|
#
|
89
|
-
# @return [boolean]
|
111
|
+
# @return [boolean | nil]
|
90
112
|
def preselect
|
91
113
|
attributes.fetch(:preselect)
|
92
114
|
end
|
93
115
|
|
94
116
|
#
|
95
117
|
# A string that should be used when comparing this item
|
96
|
-
# with other items. When `falsy` the label
|
97
|
-
#
|
118
|
+
# with other items. When `falsy` the [label](#CompletionItem.label)
|
119
|
+
# is used.
|
98
120
|
#
|
99
|
-
# @return [string]
|
121
|
+
# @return [string | nil]
|
100
122
|
def sort_text
|
101
123
|
attributes.fetch(:sortText)
|
102
124
|
end
|
103
125
|
|
104
126
|
#
|
105
127
|
# A string that should be used when filtering a set of
|
106
|
-
# completion items. When `falsy` the label
|
107
|
-
#
|
128
|
+
# completion items. When `falsy` the [label](#CompletionItem.label)
|
129
|
+
# is used.
|
108
130
|
#
|
109
|
-
# @return [string]
|
131
|
+
# @return [string | nil]
|
110
132
|
def filter_text
|
111
133
|
attributes.fetch(:filterText)
|
112
134
|
end
|
113
135
|
|
114
136
|
#
|
115
137
|
# A string that should be inserted into a document when selecting
|
116
|
-
# this completion. When `falsy` the label
|
117
|
-
#
|
138
|
+
# this completion. When `falsy` the [label](#CompletionItem.label)
|
139
|
+
# is used.
|
118
140
|
#
|
119
141
|
# The `insertText` is subject to interpretation by the client side.
|
120
142
|
# Some tools might not take the string literally. For example
|
@@ -124,7 +146,7 @@ module LanguageServer
|
|
124
146
|
# recommended to use `textEdit` instead since it avoids additional client
|
125
147
|
# side interpretation.
|
126
148
|
#
|
127
|
-
# @return [string]
|
149
|
+
# @return [string | nil]
|
128
150
|
def insert_text
|
129
151
|
attributes.fetch(:insertText)
|
130
152
|
end
|
@@ -134,27 +156,30 @@ module LanguageServer
|
|
134
156
|
# `insertText` property and the `newText` property of a provided
|
135
157
|
# `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
|
136
158
|
#
|
137
|
-
#
|
159
|
+
# Please note that the insertTextFormat doesn't apply to
|
160
|
+
# `additionalTextEdits`.
|
161
|
+
#
|
162
|
+
# @return [InsertTextFormat | nil]
|
138
163
|
def insert_text_format
|
139
164
|
attributes.fetch(:insertTextFormat)
|
140
165
|
end
|
141
166
|
|
142
167
|
#
|
143
168
|
# How whitespace and indentation is handled during completion
|
144
|
-
# item insertion. If not provided the
|
169
|
+
# item insertion. If not provided the clients default value depends on
|
145
170
|
# the `textDocument.completion.insertTextMode` client capability.
|
146
171
|
#
|
147
|
-
# @
|
172
|
+
# @since 3.16.0
|
173
|
+
#
|
174
|
+
# @return [InsertTextMode | nil]
|
148
175
|
def insert_text_mode
|
149
176
|
attributes.fetch(:insertTextMode)
|
150
177
|
end
|
151
178
|
|
152
179
|
#
|
153
|
-
# An edit which is applied to a document when selecting
|
154
|
-
# When an edit is provided the value of
|
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.
|
180
|
+
# An [edit](#TextEdit) which is applied to a document when selecting
|
181
|
+
# this completion. When an edit is provided the value of
|
182
|
+
# [insertText](#CompletionItem.insertText) is ignored.
|
158
183
|
#
|
159
184
|
# Most editors support two different operations when accepting a completion
|
160
185
|
# item. One is to insert a completion text and the other is to replace an
|
@@ -171,51 +196,69 @@ module LanguageServer
|
|
171
196
|
# must be a prefix of the edit's replace range, that means it must be
|
172
197
|
# contained and starting at the same position.
|
173
198
|
#
|
174
|
-
# @
|
199
|
+
# @since 3.16.0 additional type `InsertReplaceEdit`
|
200
|
+
#
|
201
|
+
# @return [TextEdit | InsertReplaceEdit | nil]
|
175
202
|
def text_edit
|
176
203
|
attributes.fetch(:textEdit)
|
177
204
|
end
|
178
205
|
|
179
206
|
#
|
180
|
-
#
|
181
|
-
#
|
182
|
-
#
|
207
|
+
# The edit text used if the completion item is part of a CompletionList and
|
208
|
+
# CompletionList defines an item default for the text edit range.
|
209
|
+
#
|
210
|
+
# Clients will only honor this property if they opt into completion list
|
211
|
+
# item defaults using the capability `completionList.itemDefaults`.
|
212
|
+
#
|
213
|
+
# If not provided and a list's default range is provided the label
|
214
|
+
# property is used as a text.
|
215
|
+
#
|
216
|
+
# @since 3.17.0
|
217
|
+
#
|
218
|
+
# @return [string | nil]
|
219
|
+
def text_edit_text
|
220
|
+
attributes.fetch(:textEditText)
|
221
|
+
end
|
222
|
+
|
223
|
+
#
|
224
|
+
# An optional array of additional [text edits](#TextEdit) that are applied when
|
225
|
+
# selecting this completion. Edits must not overlap (including the same insert position)
|
226
|
+
# with the main [edit](#CompletionItem.textEdit) nor with themselves.
|
183
227
|
#
|
184
|
-
# Additional text edits should be used to change text unrelated to the
|
185
|
-
#
|
186
|
-
#
|
228
|
+
# Additional text edits should be used to change text unrelated to the current cursor position
|
229
|
+
# (for example adding an import statement at the top of the file if the completion item will
|
230
|
+
# insert an unqualified type).
|
187
231
|
#
|
188
|
-
# @return [TextEdit[]]
|
232
|
+
# @return [TextEdit[] | nil]
|
189
233
|
def additional_text_edits
|
190
234
|
attributes.fetch(:additionalTextEdits)
|
191
235
|
end
|
192
236
|
|
193
237
|
#
|
194
|
-
# An optional set of characters that when pressed while this completion is
|
195
|
-
#
|
196
|
-
#
|
197
|
-
# will be ignored.
|
238
|
+
# An optional set of characters that when pressed while this completion is active will accept it first and
|
239
|
+
# then type that character. *Note* that all commit characters should have `length=1` and that superfluous
|
240
|
+
# characters will be ignored.
|
198
241
|
#
|
199
|
-
# @return [string[]]
|
242
|
+
# @return [string[] | nil]
|
200
243
|
def commit_characters
|
201
244
|
attributes.fetch(:commitCharacters)
|
202
245
|
end
|
203
246
|
|
204
247
|
#
|
205
|
-
# An optional command that is executed *after* inserting this completion.
|
206
|
-
#
|
207
|
-
#
|
248
|
+
# An optional [command](#Command) that is executed *after* inserting this completion. *Note* that
|
249
|
+
# additional modifications to the current document should be described with the
|
250
|
+
# [additionalTextEdits](#CompletionItem.additionalTextEdits)-property.
|
208
251
|
#
|
209
|
-
# @return [Command]
|
252
|
+
# @return [Command | nil]
|
210
253
|
def command
|
211
254
|
attributes.fetch(:command)
|
212
255
|
end
|
213
256
|
|
214
257
|
#
|
215
|
-
# A data entry field that is preserved on a completion item between
|
216
|
-
#
|
258
|
+
# A data entry field that is preserved on a completion item between a
|
259
|
+
# [CompletionRequest](#CompletionRequest) and a [CompletionResolveRequest](#CompletionResolveRequest).
|
217
260
|
#
|
218
|
-
# @return [
|
261
|
+
# @return [LSPAny | nil]
|
219
262
|
def data
|
220
263
|
attributes.fetch(:data)
|
221
264
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module LanguageServer
|
2
|
+
module Protocol
|
3
|
+
module Interface
|
4
|
+
#
|
5
|
+
# Additional details for a completion item label.
|
6
|
+
#
|
7
|
+
# @since 3.17.0
|
8
|
+
#
|
9
|
+
class CompletionItemLabelDetails
|
10
|
+
def initialize(detail: nil, description: nil)
|
11
|
+
@attributes = {}
|
12
|
+
|
13
|
+
@attributes[:detail] = detail if detail
|
14
|
+
@attributes[:description] = description if description
|
15
|
+
|
16
|
+
@attributes.freeze
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
|
21
|
+
# without any spacing. Should be used for function signatures and type annotations.
|
22
|
+
#
|
23
|
+
# @return [string | nil]
|
24
|
+
def detail
|
25
|
+
attributes.fetch(:detail)
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
|
30
|
+
# for fully qualified names and file paths.
|
31
|
+
#
|
32
|
+
# @return [string | nil]
|
33
|
+
def description
|
34
|
+
attributes.fetch(:description)
|
35
|
+
end
|
36
|
+
|
37
|
+
attr_reader :attributes
|
38
|
+
|
39
|
+
def to_hash
|
40
|
+
attributes
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_json(*args)
|
44
|
+
to_hash.to_json(*args)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -2,28 +2,51 @@ module LanguageServer
|
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
4
|
#
|
5
|
-
# Represents a collection of [completion items](#CompletionItem) to be
|
6
|
-
#
|
5
|
+
# Represents a collection of [completion items](#CompletionItem) to be presented
|
6
|
+
# in the editor.
|
7
7
|
#
|
8
8
|
class CompletionList
|
9
|
-
def initialize(is_incomplete:, items:)
|
9
|
+
def initialize(is_incomplete:, item_defaults: nil, items:)
|
10
10
|
@attributes = {}
|
11
11
|
|
12
12
|
@attributes[:isIncomplete] = is_incomplete
|
13
|
+
@attributes[:itemDefaults] = item_defaults if item_defaults
|
13
14
|
@attributes[:items] = items
|
14
15
|
|
15
16
|
@attributes.freeze
|
16
17
|
end
|
17
18
|
|
18
19
|
#
|
19
|
-
# This list it not complete. Further typing
|
20
|
-
#
|
20
|
+
# This list it not complete. Further typing results in recomputing this list.
|
21
|
+
#
|
22
|
+
# Recomputed lists have all their items replaced (not appended) in the
|
23
|
+
# incomplete completion sessions.
|
21
24
|
#
|
22
25
|
# @return [boolean]
|
23
26
|
def is_incomplete
|
24
27
|
attributes.fetch(:isIncomplete)
|
25
28
|
end
|
26
29
|
|
30
|
+
#
|
31
|
+
# In many cases the items of an actual completion result share the same
|
32
|
+
# value for properties like `commitCharacters` or the range of a text
|
33
|
+
# edit. A completion list can therefore define item defaults which will
|
34
|
+
# be used if a completion item itself doesn't specify the value.
|
35
|
+
#
|
36
|
+
# If a completion list specifies a default value and a completion item
|
37
|
+
# also specifies a corresponding value the one from the item is used.
|
38
|
+
#
|
39
|
+
# Servers are only allowed to return default values if the client
|
40
|
+
# signals support for this via the `completionList.itemDefaults`
|
41
|
+
# capability.
|
42
|
+
#
|
43
|
+
# @since 3.17.0
|
44
|
+
#
|
45
|
+
# @return [{ commitCharacters:string[], editRange:Range | { insert:Range, replace:Range }, insertTextFormat:InsertTextFormat, insertTextMode:InsertTextMode, data:LSPAny } | nil]
|
46
|
+
def item_defaults
|
47
|
+
attributes.fetch(:itemDefaults)
|
48
|
+
end
|
49
|
+
|
27
50
|
#
|
28
51
|
# The completion items.
|
29
52
|
#
|
@@ -5,49 +5,44 @@ module LanguageServer
|
|
5
5
|
# Completion options.
|
6
6
|
#
|
7
7
|
class CompletionOptions
|
8
|
-
def initialize(
|
8
|
+
def initialize(trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil, completion_item: nil, work_done_progress: nil)
|
9
9
|
@attributes = {}
|
10
10
|
|
11
|
-
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
12
11
|
@attributes[:triggerCharacters] = trigger_characters if trigger_characters
|
13
12
|
@attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
|
14
13
|
@attributes[:resolveProvider] = resolve_provider if resolve_provider
|
14
|
+
@attributes[:completionItem] = completion_item if completion_item
|
15
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
15
16
|
|
16
17
|
@attributes.freeze
|
17
18
|
end
|
18
19
|
|
19
|
-
# @return [boolean]
|
20
|
-
def work_done_progress
|
21
|
-
attributes.fetch(:workDoneProgress)
|
22
|
-
end
|
23
|
-
|
24
20
|
#
|
25
|
-
# Most tools trigger completion request automatically without explicitly
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
# make up identifiers don't need to be listed here.
|
21
|
+
# Most tools trigger completion request automatically without explicitly requesting
|
22
|
+
# it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
|
23
|
+
# starts to type an identifier. For example if the user types `c` in a JavaScript file
|
24
|
+
# code complete will automatically pop up present `console` besides others as a
|
25
|
+
# completion item. Characters that make up identifiers don't need to be listed here.
|
31
26
|
#
|
32
|
-
# If code complete should automatically be trigger on characters not being
|
33
|
-
#
|
34
|
-
# `triggerCharacters`.
|
27
|
+
# If code complete should automatically be trigger on characters not being valid inside
|
28
|
+
# an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
|
35
29
|
#
|
36
|
-
# @return [string[]]
|
30
|
+
# @return [string[] | nil]
|
37
31
|
def trigger_characters
|
38
32
|
attributes.fetch(:triggerCharacters)
|
39
33
|
end
|
40
34
|
|
41
35
|
#
|
42
|
-
# The list of all possible characters that commit a completion. This field
|
43
|
-
#
|
44
|
-
# completion
|
45
|
-
# `completion.completionItem.commitCharactersSupport`.
|
36
|
+
# The list of all possible characters that commit a completion. This field can be used
|
37
|
+
# if clients don't support individual commit characters per completion item. See
|
38
|
+
# `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
|
46
39
|
#
|
47
|
-
# If a server provides both `allCommitCharacters` and commit characters on
|
48
|
-
#
|
40
|
+
# If a server provides both `allCommitCharacters` and commit characters on an individual
|
41
|
+
# completion item the ones on the completion item win.
|
49
42
|
#
|
50
|
-
# @
|
43
|
+
# @since 3.2.0
|
44
|
+
#
|
45
|
+
# @return [string[] | nil]
|
51
46
|
def all_commit_characters
|
52
47
|
attributes.fetch(:allCommitCharacters)
|
53
48
|
end
|
@@ -56,11 +51,27 @@ module LanguageServer
|
|
56
51
|
# The server provides support to resolve additional
|
57
52
|
# information for a completion item.
|
58
53
|
#
|
59
|
-
# @return [boolean]
|
54
|
+
# @return [boolean | nil]
|
60
55
|
def resolve_provider
|
61
56
|
attributes.fetch(:resolveProvider)
|
62
57
|
end
|
63
58
|
|
59
|
+
#
|
60
|
+
# The server supports the following `CompletionItem` specific
|
61
|
+
# capabilities.
|
62
|
+
#
|
63
|
+
# @since 3.17.0
|
64
|
+
#
|
65
|
+
# @return [{ labelDetailsSupport:boolean } | nil]
|
66
|
+
def completion_item
|
67
|
+
attributes.fetch(:completionItem)
|
68
|
+
end
|
69
|
+
|
70
|
+
# @return [boolean | nil]
|
71
|
+
def work_done_progress
|
72
|
+
attributes.fetch(:workDoneProgress)
|
73
|
+
end
|
74
|
+
|
64
75
|
attr_reader :attributes
|
65
76
|
|
66
77
|
def to_hash
|
@@ -1,19 +1,31 @@
|
|
1
1
|
module LanguageServer
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
|
+
#
|
5
|
+
# Completion parameters
|
6
|
+
#
|
4
7
|
class CompletionParams
|
5
|
-
def initialize(text_document:, position:, work_done_token: nil, partial_result_token: nil
|
8
|
+
def initialize(context: nil, text_document:, position:, work_done_token: nil, partial_result_token: nil)
|
6
9
|
@attributes = {}
|
7
10
|
|
11
|
+
@attributes[:context] = context if context
|
8
12
|
@attributes[:textDocument] = text_document
|
9
13
|
@attributes[:position] = position
|
10
14
|
@attributes[:workDoneToken] = work_done_token if work_done_token
|
11
15
|
@attributes[:partialResultToken] = partial_result_token if partial_result_token
|
12
|
-
@attributes[:context] = context if context
|
13
16
|
|
14
17
|
@attributes.freeze
|
15
18
|
end
|
16
19
|
|
20
|
+
#
|
21
|
+
# The completion context. This is only available it the client specifies
|
22
|
+
# to send this using the client capability `textDocument.completion.contextSupport === true`
|
23
|
+
#
|
24
|
+
# @return [CompletionContext | nil]
|
25
|
+
def context
|
26
|
+
attributes.fetch(:context)
|
27
|
+
end
|
28
|
+
|
17
29
|
#
|
18
30
|
# The text document.
|
19
31
|
#
|
@@ -33,30 +45,20 @@ module LanguageServer
|
|
33
45
|
#
|
34
46
|
# An optional token that a server can use to report work done progress.
|
35
47
|
#
|
36
|
-
# @return [ProgressToken]
|
48
|
+
# @return [ProgressToken | nil]
|
37
49
|
def work_done_token
|
38
50
|
attributes.fetch(:workDoneToken)
|
39
51
|
end
|
40
52
|
|
41
53
|
#
|
42
|
-
# An optional token that a server can use to report partial results (e.g.
|
43
|
-
#
|
54
|
+
# An optional token that a server can use to report partial results (e.g. streaming) to
|
55
|
+
# the client.
|
44
56
|
#
|
45
|
-
# @return [ProgressToken]
|
57
|
+
# @return [ProgressToken | nil]
|
46
58
|
def partial_result_token
|
47
59
|
attributes.fetch(:partialResultToken)
|
48
60
|
end
|
49
61
|
|
50
|
-
#
|
51
|
-
# The completion context. This is only available if the client specifies
|
52
|
-
# to send this using the client capability
|
53
|
-
# `completion.contextSupport === true`
|
54
|
-
#
|
55
|
-
# @return [CompletionContext]
|
56
|
-
def context
|
57
|
-
attributes.fetch(:context)
|
58
|
-
end
|
59
|
-
|
60
62
|
attr_reader :attributes
|
61
63
|
|
62
64
|
def to_hash
|
@@ -1,60 +1,58 @@
|
|
1
1
|
module LanguageServer
|
2
2
|
module Protocol
|
3
3
|
module Interface
|
4
|
+
#
|
5
|
+
# Registration options for a [CompletionRequest](#CompletionRequest).
|
6
|
+
#
|
4
7
|
class CompletionRegistrationOptions
|
5
|
-
def initialize(document_selector:,
|
8
|
+
def initialize(document_selector:, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil, completion_item: nil, work_done_progress: nil)
|
6
9
|
@attributes = {}
|
7
10
|
|
8
11
|
@attributes[:documentSelector] = document_selector
|
9
|
-
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
10
12
|
@attributes[:triggerCharacters] = trigger_characters if trigger_characters
|
11
13
|
@attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
|
12
14
|
@attributes[:resolveProvider] = resolve_provider if resolve_provider
|
15
|
+
@attributes[:completionItem] = completion_item if completion_item
|
16
|
+
@attributes[:workDoneProgress] = work_done_progress if work_done_progress
|
13
17
|
|
14
18
|
@attributes.freeze
|
15
19
|
end
|
16
20
|
|
17
21
|
#
|
18
|
-
# A document selector to identify the scope of the registration. If set to
|
19
|
-
#
|
22
|
+
# A document selector to identify the scope of the registration. If set to null
|
23
|
+
# the document selector provided on the client side will be used.
|
20
24
|
#
|
21
|
-
# @return [DocumentSelector]
|
25
|
+
# @return [DocumentSelector | null]
|
22
26
|
def document_selector
|
23
27
|
attributes.fetch(:documentSelector)
|
24
28
|
end
|
25
29
|
|
26
|
-
# @return [boolean]
|
27
|
-
def work_done_progress
|
28
|
-
attributes.fetch(:workDoneProgress)
|
29
|
-
end
|
30
|
-
|
31
30
|
#
|
32
|
-
# Most tools trigger completion request automatically without explicitly
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
# make up identifiers don't need to be listed here.
|
31
|
+
# Most tools trigger completion request automatically without explicitly requesting
|
32
|
+
# it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
|
33
|
+
# starts to type an identifier. For example if the user types `c` in a JavaScript file
|
34
|
+
# code complete will automatically pop up present `console` besides others as a
|
35
|
+
# completion item. Characters that make up identifiers don't need to be listed here.
|
38
36
|
#
|
39
|
-
# If code complete should automatically be trigger on characters not being
|
40
|
-
#
|
41
|
-
# `triggerCharacters`.
|
37
|
+
# If code complete should automatically be trigger on characters not being valid inside
|
38
|
+
# an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
|
42
39
|
#
|
43
|
-
# @return [string[]]
|
40
|
+
# @return [string[] | nil]
|
44
41
|
def trigger_characters
|
45
42
|
attributes.fetch(:triggerCharacters)
|
46
43
|
end
|
47
44
|
|
48
45
|
#
|
49
|
-
# The list of all possible characters that commit a completion. This field
|
50
|
-
#
|
51
|
-
# completion
|
52
|
-
# `completion.completionItem.commitCharactersSupport`.
|
46
|
+
# The list of all possible characters that commit a completion. This field can be used
|
47
|
+
# if clients don't support individual commit characters per completion item. See
|
48
|
+
# `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
|
53
49
|
#
|
54
|
-
# If a server provides both `allCommitCharacters` and commit characters on
|
55
|
-
#
|
50
|
+
# If a server provides both `allCommitCharacters` and commit characters on an individual
|
51
|
+
# completion item the ones on the completion item win.
|
56
52
|
#
|
57
|
-
# @
|
53
|
+
# @since 3.2.0
|
54
|
+
#
|
55
|
+
# @return [string[] | nil]
|
58
56
|
def all_commit_characters
|
59
57
|
attributes.fetch(:allCommitCharacters)
|
60
58
|
end
|
@@ -63,11 +61,27 @@ module LanguageServer
|
|
63
61
|
# The server provides support to resolve additional
|
64
62
|
# information for a completion item.
|
65
63
|
#
|
66
|
-
# @return [boolean]
|
64
|
+
# @return [boolean | nil]
|
67
65
|
def resolve_provider
|
68
66
|
attributes.fetch(:resolveProvider)
|
69
67
|
end
|
70
68
|
|
69
|
+
#
|
70
|
+
# The server supports the following `CompletionItem` specific
|
71
|
+
# capabilities.
|
72
|
+
#
|
73
|
+
# @since 3.17.0
|
74
|
+
#
|
75
|
+
# @return [{ labelDetailsSupport:boolean } | nil]
|
76
|
+
def completion_item
|
77
|
+
attributes.fetch(:completionItem)
|
78
|
+
end
|
79
|
+
|
80
|
+
# @return [boolean | nil]
|
81
|
+
def work_done_progress
|
82
|
+
attributes.fetch(:workDoneProgress)
|
83
|
+
end
|
84
|
+
|
71
85
|
attr_reader :attributes
|
72
86
|
|
73
87
|
def to_hash
|