language_server-protocol 3.14.0.1 → 3.16.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.
Files changed (260) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -2
  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 +38 -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 +31 -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 +25 -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 +31 -0
  29. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +25 -0
  30. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +25 -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 +15 -7
  37. data/lib/language_server/protocol/interface/code_action_params.rb +3 -2
  38. data/lib/language_server/protocol/interface/code_action_registration_options.rb +4 -1
  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 +3 -5
  43. data/lib/language_server/protocol/interface/code_lens_params.rb +3 -2
  44. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +3 -10
  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 +3 -2
  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 +36 -11
  53. data/lib/language_server/protocol/interface/completion_params.rb +5 -3
  54. data/lib/language_server/protocol/interface/completion_registration_options.rb +4 -26
  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 +25 -0
  59. data/lib/language_server/protocol/interface/declaration_params.rb +25 -0
  60. data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → declaration_registration_options.rb} +3 -5
  61. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  62. data/lib/language_server/protocol/interface/definition_options.rb +25 -0
  63. data/lib/language_server/protocol/interface/definition_params.rb +25 -0
  64. data/lib/language_server/protocol/interface/definition_registration_options.rb +25 -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 +25 -0
  75. data/lib/language_server/protocol/interface/document_color_params.rb +34 -0
  76. data/lib/language_server/protocol/interface/document_color_registration_options.rb +25 -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 +25 -0
  80. data/lib/language_server/protocol/interface/document_formatting_params.rb +3 -2
  81. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +25 -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 +25 -0
  85. data/lib/language_server/protocol/interface/document_highlight_params.rb +25 -0
  86. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +25 -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 +3 -5
  90. data/lib/language_server/protocol/interface/document_link_params.rb +3 -2
  91. data/lib/language_server/protocol/interface/document_link_registration_options.rb +3 -10
  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 +1 -17
  95. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +2 -18
  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 +25 -0
  98. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +3 -2
  99. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +25 -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 +35 -0
  103. data/lib/language_server/protocol/interface/document_symbol_params.rb +3 -2
  104. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +26 -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 +3 -5
  107. data/lib/language_server/protocol/interface/execute_command_params.rb +3 -2
  108. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +3 -10
  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 +25 -0
  120. data/lib/language_server/protocol/interface/folding_range_params.rb +3 -2
  121. data/lib/language_server/protocol/interface/{color_provider_options.rb → folding_range_registration_options.rb} +3 -5
  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 +25 -0
  126. data/lib/language_server/protocol/interface/hover_params.rb +25 -0
  127. data/lib/language_server/protocol/interface/hover_registration_options.rb +25 -0
  128. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  129. data/lib/language_server/protocol/interface/implementation_options.rb +25 -0
  130. data/lib/language_server/protocol/interface/implementation_params.rb +25 -0
  131. data/lib/language_server/protocol/interface/implementation_registration_options.rb +25 -0
  132. data/lib/language_server/protocol/interface/initialize_params.rb +31 -8
  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 +25 -0
  137. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +25 -0
  138. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +25 -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 +25 -0
  148. data/lib/language_server/protocol/interface/moniker_params.rb +25 -0
  149. data/lib/language_server/protocol/interface/moniker_registration_options.rb +25 -0
  150. data/lib/language_server/protocol/interface/notification_message.rb +2 -1
  151. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +42 -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 +26 -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 +25 -0
  161. data/lib/language_server/protocol/interface/reference_params.rb +3 -2
  162. data/lib/language_server/protocol/interface/reference_registration_options.rb +25 -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 +3 -5
  168. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  169. data/lib/language_server/protocol/interface/rename_registration_options.rb +3 -10
  170. data/lib/language_server/protocol/interface/request_message.rb +2 -1
  171. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  172. data/lib/language_server/protocol/interface/response_message.rb +5 -4
  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 +25 -0
  177. data/lib/language_server/protocol/interface/selection_range_params.rb +43 -0
  178. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +25 -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 +44 -0
  183. data/lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb +30 -0
  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 +53 -0
  187. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +34 -0
  188. data/lib/language_server/protocol/interface/semantic_tokens_partial_result.rb +30 -0
  189. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +43 -0
  190. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +25 -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 +16 -5
  204. data/lib/language_server/protocol/interface/signature_help_params.rb +36 -0
  205. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +4 -11
  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 +2 -1
  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 +1 -0
  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 +25 -0
  218. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  219. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  220. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +4 -7
  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 +25 -0
  235. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  236. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -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 -35
  240. data/.gitignore +0 -10
  241. data/.travis.yml +0 -5
  242. data/CHANGELOG.md +0 -26
  243. data/CODE_OF_CONDUCT.md +0 -74
  244. data/Dockerfile-node.development +0 -6
  245. data/Dockerfile.development +0 -24
  246. data/Gemfile +0 -6
  247. data/Rakefile +0 -10
  248. data/bin/console +0 -14
  249. data/bin/generate_files +0 -5
  250. data/bin/m +0 -17
  251. data/bin/setup +0 -6
  252. data/circle.yml +0 -40
  253. data/docker-compose.ci.yml +0 -14
  254. data/docker-compose.override.yml +0 -16
  255. data/docker-compose.yml +0 -33
  256. data/language_server-protocol.gemspec +0 -33
  257. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
  258. data/package.json +0 -10
  259. data/scripts/generateFiles.ts +0 -320
  260. data/yarn.lock +0 -293
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class CodeLensClientCapabilities
5
+ def initialize(dynamic_registration: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Whether code lens supports dynamic registration.
15
+ #
16
+ # @return [boolean]
17
+ def dynamic_registration
18
+ attributes.fetch(:dynamicRegistration)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_hash
24
+ attributes
25
+ end
26
+
27
+ def to_json(*args)
28
+ to_hash.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,13 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Code Lens options.
6
- #
7
- class CodeLensOptions
8
- def initialize(resolve_provider: nil)
4
+ class CodeLensOptions < WorkDoneProgressOptions
5
+ def initialize(work_done_progress: nil, resolve_provider: nil)
9
6
  @attributes = {}
10
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
11
9
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
12
10
 
13
11
  @attributes.freeze
@@ -1,10 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class CodeLensParams
5
- def initialize(text_document:)
4
+ class CodeLensParams < PartialResultParams
5
+ def initialize(partial_result_token: nil, text_document:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
8
9
  @attributes[:textDocument] = text_document
9
10
 
10
11
  @attributes.freeze
@@ -1,23 +1,16 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class CodeLensRegistrationOptions < TextDocumentRegistrationOptions
5
- def initialize(document_selector:, resolve_provider: nil)
4
+ class CodeLensRegistrationOptions < CodeLensOptions
5
+ def initialize(work_done_progress: nil, resolve_provider: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
8
9
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
9
10
 
10
11
  @attributes.freeze
11
12
  end
12
13
 
13
- #
14
- # Code lens has a resolve provider as well.
15
- #
16
- # @return [boolean]
17
- def resolve_provider
18
- attributes.fetch(:resolveProvider)
19
- end
20
-
21
14
  attr_reader :attributes
22
15
 
23
16
  def to_hash
@@ -0,0 +1,39 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class CodeLensWorkspaceClientCapabilities
5
+ def initialize(refresh_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:refreshSupport] = refresh_support if refresh_support
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Whether the client implementation supports a refresh request sent from the
15
+ # server to the client.
16
+ #
17
+ # Note that this event is global and will force the client to refresh all
18
+ # code lenses currently shown. It should be used with absolute care and is
19
+ # useful for situation where a server for example detect a project wide
20
+ # change that requires such a calculation.
21
+ #
22
+ # @return [boolean]
23
+ def refresh_support
24
+ attributes.fetch(:refreshSupport)
25
+ end
26
+
27
+ attr_reader :attributes
28
+
29
+ def to_hash
30
+ attributes
31
+ end
32
+
33
+ def to_json(*args)
34
+ to_hash.to_json(*args)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -14,8 +14,8 @@ module LanguageServer
14
14
 
15
15
  #
16
16
  # The label of this color presentation. It will be shown on the color
17
- # picker header. By default this is also the text that is inserted when selecting
18
- # this color presentation.
17
+ # picker header. By default this is also the text that is inserted when
18
+ # selecting this color presentation.
19
19
  #
20
20
  # @return [string]
21
21
  def label
@@ -24,8 +24,8 @@ module LanguageServer
24
24
 
25
25
  #
26
26
  # An [edit](#TextEdit) which is applied to a document when selecting
27
- # this presentation for the color. When `falsy` the [label](#ColorPresentation.label)
28
- # is used.
27
+ # this presentation for the color. When `falsy` the
28
+ # [label](#ColorPresentation.label) is used.
29
29
  #
30
30
  # @return [TextEdit]
31
31
  def text_edit
@@ -33,8 +33,9 @@ module LanguageServer
33
33
  end
34
34
 
35
35
  #
36
- # An optional array of additional [text edits](#TextEdit) that are applied when
37
- # selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves.
36
+ # An optional array of additional [text edits](#TextEdit) that are applied
37
+ # when selecting this color presentation. Edits must not overlap with the
38
+ # main [edit](#ColorPresentation.textEdit) nor with themselves.
38
39
  #
39
40
  # @return [TextEdit[]]
40
41
  def additional_text_edits
@@ -1,10 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class ColorPresentationParams
5
- def initialize(text_document:, color:, range:)
4
+ class ColorPresentationParams < PartialResultParams
5
+ def initialize(partial_result_token: nil, text_document:, color:, range:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
8
9
  @attributes[:textDocument] = text_document
9
10
  @attributes[:color] = color
10
11
  @attributes[:range] = range
@@ -0,0 +1,59 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class CompletionClientCapabilities
5
+ def initialize(dynamic_registration: nil, completion_item: nil, completion_item_kind: nil, context_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:completionItem] = completion_item if completion_item
10
+ @attributes[:completionItemKind] = completion_item_kind if completion_item_kind
11
+ @attributes[:contextSupport] = context_support if context_support
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # Whether completion supports dynamic registration.
18
+ #
19
+ # @return [boolean]
20
+ def dynamic_registration
21
+ attributes.fetch(:dynamicRegistration)
22
+ end
23
+
24
+ #
25
+ # The client supports the following `CompletionItem` specific
26
+ # capabilities.
27
+ #
28
+ # @return [{ snippetSupport?: boolean; commitCharactersSupport?: boolean; documentationFormat?: MarkupKind[]; deprecatedSupport?: boolean; preselectSupport?: boolean; tagSupport?: { valueSet: 1[]; }; insertReplaceSupport?: boolean; resolveSupport?: { ...; }; insertTextModeSupport?: { ...; }; }]
29
+ def completion_item
30
+ attributes.fetch(:completionItem)
31
+ end
32
+
33
+ # @return [{ valueSet?: any[]; }]
34
+ def completion_item_kind
35
+ attributes.fetch(:completionItemKind)
36
+ end
37
+
38
+ #
39
+ # The client supports to send additional context information for a
40
+ # `textDocument/completion` request.
41
+ #
42
+ # @return [boolean]
43
+ def context_support
44
+ attributes.fetch(:contextSupport)
45
+ end
46
+
47
+ attr_reader :attributes
48
+
49
+ def to_hash
50
+ attributes
51
+ end
52
+
53
+ def to_json(*args)
54
+ to_hash.to_json(*args)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -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]