language_server-protocol 3.14.0.2 → 3.16.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/language_server/protocol/constant.rb +18 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +17 -11
  5. data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
  6. data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
  7. data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
  8. data/lib/language_server/protocol/constant/error_codes.rb +26 -3
  9. data/lib/language_server/protocol/constant/failure_handling_kind.rb +6 -5
  10. data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +20 -0
  11. data/lib/language_server/protocol/constant/initialize_error.rb +2 -1
  12. data/lib/language_server/protocol/constant/insert_text_mode.rb +30 -0
  13. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +13 -0
  14. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +24 -0
  15. data/lib/language_server/protocol/constant/symbol_tag.rb +15 -0
  16. data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
  17. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +2 -1
  18. data/lib/language_server/protocol/constant/token_format.rb +9 -0
  19. data/lib/language_server/protocol/interface.rb +270 -6
  20. data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
  21. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +24 -1
  22. data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +36 -0
  23. data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +43 -0
  24. data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +49 -0
  25. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +100 -0
  26. data/lib/language_server/protocol/interface/call_hierarchy_options.rb +30 -0
  27. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +43 -0
  28. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +49 -0
  29. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +51 -0
  30. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +50 -0
  31. data/lib/language_server/protocol/interface/change_annotation.rb +57 -0
  32. data/lib/language_server/protocol/interface/client_capabilities.rb +20 -2
  33. data/lib/language_server/protocol/interface/code_action.rb +52 -4
  34. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +95 -0
  35. data/lib/language_server/protocol/interface/code_action_context.rb +8 -3
  36. data/lib/language_server/protocol/interface/code_action_options.rb +19 -6
  37. data/lib/language_server/protocol/interface/code_action_params.rb +20 -1
  38. data/lib/language_server/protocol/interface/code_action_registration_options.rb +39 -2
  39. data/lib/language_server/protocol/interface/code_description.rb +36 -0
  40. data/lib/language_server/protocol/interface/code_lens.rb +5 -3
  41. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  42. data/lib/language_server/protocol/interface/code_lens_options.rb +7 -4
  43. data/lib/language_server/protocol/interface/code_lens_params.rb +20 -1
  44. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +17 -2
  45. data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +39 -0
  46. data/lib/language_server/protocol/interface/color_presentation.rb +7 -6
  47. data/lib/language_server/protocol/interface/color_presentation_params.rb +20 -1
  48. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  49. data/lib/language_server/protocol/interface/completion_context.rb +5 -3
  50. data/lib/language_server/protocol/interface/completion_item.rb +71 -29
  51. data/lib/language_server/protocol/interface/completion_list.rb +2 -2
  52. data/lib/language_server/protocol/interface/completion_options.rb +39 -9
  53. data/lib/language_server/protocol/interface/completion_params.rb +39 -3
  54. data/lib/language_server/protocol/interface/completion_registration_options.rb +41 -9
  55. data/lib/language_server/protocol/interface/create_file.rb +10 -1
  56. data/lib/language_server/protocol/interface/create_files_params.rb +37 -0
  57. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  58. data/lib/language_server/protocol/interface/declaration_options.rb +30 -0
  59. data/lib/language_server/protocol/interface/declaration_params.rb +61 -0
  60. data/lib/language_server/protocol/interface/declaration_registration_options.rb +50 -0
  61. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  62. data/lib/language_server/protocol/interface/definition_options.rb +30 -0
  63. data/lib/language_server/protocol/interface/definition_params.rb +61 -0
  64. data/lib/language_server/protocol/interface/definition_registration_options.rb +40 -0
  65. data/lib/language_server/protocol/interface/delete_file.rb +10 -1
  66. data/lib/language_server/protocol/interface/delete_files_params.rb +37 -0
  67. data/lib/language_server/protocol/interface/diagnostic.rb +31 -2
  68. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
  69. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  70. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +13 -3
  71. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  72. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  73. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  74. data/lib/language_server/protocol/interface/document_color_options.rb +30 -0
  75. data/lib/language_server/protocol/interface/document_color_params.rb +52 -0
  76. data/lib/language_server/protocol/interface/document_color_registration_options.rb +50 -0
  77. data/lib/language_server/protocol/interface/document_filter.rb +7 -3
  78. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  79. data/lib/language_server/protocol/interface/document_formatting_options.rb +30 -0
  80. data/lib/language_server/protocol/interface/document_formatting_params.rb +10 -1
  81. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +40 -0
  82. data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
  83. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  84. data/lib/language_server/protocol/interface/document_highlight_options.rb +30 -0
  85. data/lib/language_server/protocol/interface/document_highlight_params.rb +61 -0
  86. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +40 -0
  87. data/lib/language_server/protocol/interface/document_link.rb +17 -3
  88. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  89. data/lib/language_server/protocol/interface/document_link_options.rb +7 -4
  90. data/lib/language_server/protocol/interface/document_link_params.rb +20 -1
  91. data/lib/language_server/protocol/interface/document_link_registration_options.rb +17 -2
  92. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  93. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  94. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +2 -2
  95. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +10 -1
  96. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  97. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +30 -0
  98. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +10 -1
  99. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +40 -0
  100. data/lib/language_server/protocol/interface/document_symbol.rb +108 -0
  101. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +73 -0
  102. data/lib/language_server/protocol/interface/document_symbol_options.rb +40 -0
  103. data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -1
  104. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +50 -0
  105. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  106. data/lib/language_server/protocol/interface/execute_command_options.rb +7 -4
  107. data/lib/language_server/protocol/interface/execute_command_params.rb +10 -1
  108. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +7 -1
  109. data/lib/language_server/protocol/interface/file_create.rb +36 -0
  110. data/lib/language_server/protocol/interface/file_delete.rb +36 -0
  111. data/lib/language_server/protocol/interface/file_operation_filter.rb +46 -0
  112. data/lib/language_server/protocol/interface/file_operation_pattern.rb +67 -0
  113. data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +36 -0
  114. data/lib/language_server/protocol/interface/file_operation_registration_options.rb +36 -0
  115. data/lib/language_server/protocol/interface/file_rename.rb +45 -0
  116. data/lib/language_server/protocol/interface/file_system_watcher.rb +7 -3
  117. data/lib/language_server/protocol/interface/folding_range.rb +17 -8
  118. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +58 -0
  119. data/lib/language_server/protocol/interface/folding_range_options.rb +30 -0
  120. data/lib/language_server/protocol/interface/folding_range_params.rb +20 -1
  121. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +50 -0
  122. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  123. data/lib/language_server/protocol/interface/hover.rb +1 -1
  124. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +44 -0
  125. data/lib/language_server/protocol/interface/hover_options.rb +30 -0
  126. data/lib/language_server/protocol/interface/hover_params.rb +51 -0
  127. data/lib/language_server/protocol/interface/hover_registration_options.rb +40 -0
  128. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  129. data/lib/language_server/protocol/interface/implementation_options.rb +30 -0
  130. data/lib/language_server/protocol/interface/implementation_params.rb +61 -0
  131. data/lib/language_server/protocol/interface/implementation_registration_options.rb +50 -0
  132. data/lib/language_server/protocol/interface/initialize_params.rb +38 -7
  133. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  134. data/lib/language_server/protocol/interface/insert_replace_edit.rb +54 -0
  135. data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +36 -0
  136. data/lib/language_server/protocol/interface/linked_editing_range_options.rb +30 -0
  137. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +51 -0
  138. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +50 -0
  139. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +45 -0
  140. data/lib/language_server/protocol/interface/location_link.rb +11 -6
  141. data/lib/language_server/protocol/interface/log_message_params.rb +1 -1
  142. data/lib/language_server/protocol/interface/log_trace_params.rb +43 -0
  143. data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +45 -0
  144. data/lib/language_server/protocol/interface/markup_content.rb +9 -7
  145. data/lib/language_server/protocol/interface/moniker.rb +64 -0
  146. data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +36 -0
  147. data/lib/language_server/protocol/interface/moniker_options.rb +30 -0
  148. data/lib/language_server/protocol/interface/moniker_params.rb +61 -0
  149. data/lib/language_server/protocol/interface/moniker_registration_options.rb +40 -0
  150. data/lib/language_server/protocol/interface/notification_message.rb +7 -2
  151. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +50 -0
  152. data/lib/language_server/protocol/interface/parameter_information.rb +7 -5
  153. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  154. data/lib/language_server/protocol/interface/position.rb +5 -5
  155. data/lib/language_server/protocol/interface/prepare_rename_params.rb +42 -0
  156. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  157. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +73 -0
  158. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +11 -1
  159. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  160. data/lib/language_server/protocol/interface/reference_options.rb +30 -0
  161. data/lib/language_server/protocol/interface/reference_params.rb +37 -2
  162. data/lib/language_server/protocol/interface/reference_registration_options.rb +40 -0
  163. data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
  164. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +69 -0
  165. data/lib/language_server/protocol/interface/rename_file.rb +10 -1
  166. data/lib/language_server/protocol/interface/rename_files_params.rb +38 -0
  167. data/lib/language_server/protocol/interface/rename_options.rb +7 -4
  168. data/lib/language_server/protocol/interface/rename_params.rb +12 -3
  169. data/lib/language_server/protocol/interface/rename_registration_options.rb +18 -3
  170. data/lib/language_server/protocol/interface/request_message.rb +7 -2
  171. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  172. data/lib/language_server/protocol/interface/response_message.rb +10 -5
  173. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  174. data/lib/language_server/protocol/interface/selection_range.rb +43 -0
  175. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +36 -0
  176. data/lib/language_server/protocol/interface/selection_range_options.rb +30 -0
  177. data/lib/language_server/protocol/interface/selection_range_params.rb +61 -0
  178. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +50 -0
  179. data/lib/language_server/protocol/interface/semantic_tokens.rb +45 -0
  180. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +97 -0
  181. data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +40 -0
  182. data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +62 -0
  183. data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → semantic_tokens_delta_partial_result.rb} +8 -5
  184. data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +51 -0
  185. data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +42 -0
  186. data/lib/language_server/protocol/interface/semantic_tokens_options.rb +58 -0
  187. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +52 -0
  188. data/lib/language_server/protocol/interface/{color_provider_options.rb → semantic_tokens_partial_result.rb} +8 -5
  189. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +61 -0
  190. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +78 -0
  191. data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +39 -0
  192. data/lib/language_server/protocol/interface/server_capabilities.rb +108 -60
  193. data/lib/language_server/protocol/interface/set_trace_params.rb +33 -0
  194. data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +37 -0
  195. data/lib/language_server/protocol/interface/show_document_params.rb +71 -0
  196. data/lib/language_server/protocol/interface/show_document_result.rb +36 -0
  197. data/lib/language_server/protocol/interface/show_message_params.rb +1 -1
  198. data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +36 -0
  199. data/lib/language_server/protocol/interface/show_message_request_params.rb +1 -1
  200. data/lib/language_server/protocol/interface/signature_help.rb +7 -4
  201. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  202. data/lib/language_server/protocol/interface/signature_help_context.rb +74 -0
  203. data/lib/language_server/protocol/interface/signature_help_options.rb +20 -4
  204. data/lib/language_server/protocol/interface/signature_help_params.rb +62 -0
  205. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +30 -2
  206. data/lib/language_server/protocol/interface/signature_information.rb +12 -1
  207. data/lib/language_server/protocol/interface/symbol_information.rb +11 -2
  208. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +11 -2
  209. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +123 -86
  210. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +10 -6
  211. data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
  212. data/lib/language_server/protocol/interface/text_document_registration_options.rb +6 -3
  213. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
  214. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  215. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -8
  216. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  217. data/lib/language_server/protocol/interface/type_definition_options.rb +30 -0
  218. data/lib/language_server/protocol/interface/type_definition_params.rb +61 -0
  219. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +50 -0
  220. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +12 -8
  221. data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
  222. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  223. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  224. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  225. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  226. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  227. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  228. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  229. data/lib/language_server/protocol/interface/workspace_edit.rb +25 -8
  230. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +75 -0
  231. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  232. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  233. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +53 -0
  234. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +30 -0
  235. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +22 -2
  236. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +30 -0
  237. data/lib/language_server/protocol/transport/io/reader.rb +1 -1
  238. data/lib/language_server/protocol/version.rb +1 -1
  239. metadata +154 -15
  240. 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 request is triggered.
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 complete.
27
- # Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
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 [number]
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 `con<cursor position>`
108
- # and a completion item with an `insertText` of `console` is provided it
109
- # will only insert `sole`. Therefore it is recommended to use `textEdit` instead
110
- # since it avoids additional client side interpretation.
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 `insertText` property
119
- # and the `newText` property of a provided `textEdit`.
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
- # An edit which is applied to a document when selecting this completion. When an edit is provided the value of
128
- # `insertText` is ignored.
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 range of the edit must be a single line range and it must contain the position at which completion
131
- # has been requested.
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 insert position)
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 current cursor position
144
- # (for example adding an import statement at the top of the file if the completion item will
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 active will accept it first and
154
- # then type that character. *Note* that all commit characters should have `length=1` and that superfluous
155
- # characters will be ignored.
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. *Note* that
164
- # additional modifications to the current document should be described with the
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
- # An data entry field that is preserved on a completion item between
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 presented
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(resolve_provider: nil, trigger_characters: nil)
8
+ def initialize(work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
9
9
  @attributes = {}
10
10
 
11
- @attributes[:resolveProvider] = resolve_provider if resolve_provider
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 resolve_provider
23
- attributes.fetch(:resolveProvider)
20
+ def work_done_progress
21
+ attributes.fetch(:workDoneProgress)
24
22
  end
25
23
 
26
24
  #
27
- # The characters that trigger completion automatically.
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 < TextDocumentPositionParams
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 `ClientCapabilities.textDocument.completion.contextSupport === true`
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 < TextDocumentRegistrationOptions
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
- # Most tools trigger completion request automatically without explicitly requesting
17
- # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
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
- # If code complete should automatically be trigger on characters not being valid inside
23
- # an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
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