language_server-protocol 3.7.0.0 → 3.15.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 (193) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/constant.rb +14 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +75 -0
  5. data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
  6. data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
  7. data/lib/language_server/protocol/constant/error_codes.rb +1 -0
  8. data/lib/language_server/protocol/constant/failure_handling_kind.rb +29 -0
  9. data/lib/language_server/protocol/constant/resource_operation_kind.rb +23 -0
  10. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +23 -0
  11. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +1 -0
  12. data/lib/language_server/protocol/interface.rb +186 -6
  13. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +13 -1
  14. data/lib/language_server/protocol/interface/client_capabilities.rb +11 -2
  15. data/lib/language_server/protocol/interface/code_action.rb +92 -0
  16. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +52 -0
  17. data/lib/language_server/protocol/interface/code_action_context.rb +18 -2
  18. data/lib/language_server/protocol/interface/code_action_options.rb +37 -0
  19. data/lib/language_server/protocol/interface/code_action_params.rb +3 -2
  20. data/lib/language_server/protocol/interface/code_action_registration_options.rb +26 -0
  21. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  22. data/lib/language_server/protocol/interface/code_lens_options.rb +3 -5
  23. data/lib/language_server/protocol/interface/code_lens_params.rb +3 -2
  24. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +3 -10
  25. data/lib/language_server/protocol/interface/color_presentation_params.rb +3 -2
  26. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  27. data/lib/language_server/protocol/interface/completion_item.rb +29 -5
  28. data/lib/language_server/protocol/interface/completion_options.rb +33 -11
  29. data/lib/language_server/protocol/interface/completion_params.rb +4 -3
  30. data/lib/language_server/protocol/interface/completion_registration_options.rb +4 -26
  31. data/lib/language_server/protocol/interface/create_file.rb +54 -0
  32. data/lib/language_server/protocol/interface/create_file_options.rb +45 -0
  33. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  34. data/lib/language_server/protocol/interface/declaration_options.rb +25 -0
  35. data/lib/language_server/protocol/interface/declaration_params.rb +25 -0
  36. data/lib/language_server/protocol/interface/{color_provider_options.rb → declaration_registration_options.rb} +3 -5
  37. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  38. data/lib/language_server/protocol/interface/definition_options.rb +25 -0
  39. data/lib/language_server/protocol/interface/definition_params.rb +25 -0
  40. data/lib/language_server/protocol/interface/definition_registration_options.rb +25 -0
  41. data/lib/language_server/protocol/interface/delete_file.rb +54 -0
  42. data/lib/language_server/protocol/interface/delete_file_options.rb +45 -0
  43. data/lib/language_server/protocol/interface/diagnostic.rb +11 -2
  44. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +1 -1
  45. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  46. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +10 -2
  47. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  48. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  49. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  50. data/lib/language_server/protocol/interface/document_color_options.rb +25 -0
  51. data/lib/language_server/protocol/interface/document_color_params.rb +34 -0
  52. data/lib/language_server/protocol/interface/document_color_registration_options.rb +25 -0
  53. data/lib/language_server/protocol/interface/document_filter.rb +8 -0
  54. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  55. data/lib/language_server/protocol/interface/document_formatting_options.rb +25 -0
  56. data/lib/language_server/protocol/interface/document_formatting_params.rb +3 -2
  57. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +25 -0
  58. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  59. data/lib/language_server/protocol/interface/document_highlight_options.rb +25 -0
  60. data/lib/language_server/protocol/interface/document_highlight_params.rb +25 -0
  61. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +25 -0
  62. data/lib/language_server/protocol/interface/document_link.rb +14 -1
  63. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  64. data/lib/language_server/protocol/interface/document_link_options.rb +3 -5
  65. data/lib/language_server/protocol/interface/document_link_params.rb +3 -2
  66. data/lib/language_server/protocol/interface/document_link_registration_options.rb +3 -10
  67. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  68. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  69. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +1 -17
  70. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +2 -18
  71. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  72. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +25 -0
  73. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +3 -2
  74. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +25 -0
  75. data/lib/language_server/protocol/interface/document_symbol.rb +96 -0
  76. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +51 -0
  77. data/lib/language_server/protocol/interface/document_symbol_options.rb +25 -0
  78. data/lib/language_server/protocol/interface/document_symbol_params.rb +3 -2
  79. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +25 -0
  80. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  81. data/lib/language_server/protocol/interface/execute_command_options.rb +3 -5
  82. data/lib/language_server/protocol/interface/execute_command_params.rb +3 -2
  83. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +3 -10
  84. data/lib/language_server/protocol/interface/file_system_watcher.rb +9 -1
  85. data/lib/language_server/protocol/interface/folding_range.rb +74 -0
  86. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +55 -0
  87. data/lib/language_server/protocol/interface/folding_range_options.rb +25 -0
  88. data/lib/language_server/protocol/interface/folding_range_params.rb +34 -0
  89. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +25 -0
  90. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  91. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +43 -0
  92. data/lib/language_server/protocol/interface/hover_options.rb +25 -0
  93. data/lib/language_server/protocol/interface/hover_params.rb +25 -0
  94. data/lib/language_server/protocol/interface/hover_registration_options.rb +25 -0
  95. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  96. data/lib/language_server/protocol/interface/implementation_options.rb +25 -0
  97. data/lib/language_server/protocol/interface/implementation_params.rb +25 -0
  98. data/lib/language_server/protocol/interface/implementation_registration_options.rb +25 -0
  99. data/lib/language_server/protocol/interface/initialize_params.rb +12 -4
  100. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  101. data/lib/language_server/protocol/interface/location_link.rb +66 -0
  102. data/lib/language_server/protocol/interface/markup_content.rb +1 -1
  103. data/lib/language_server/protocol/interface/notification_message.rb +2 -1
  104. data/lib/language_server/protocol/interface/parameter_information.rb +9 -3
  105. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  106. data/lib/language_server/protocol/interface/prepare_rename_params.rb +26 -0
  107. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  108. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +53 -0
  109. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +10 -1
  110. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  111. data/lib/language_server/protocol/interface/reference_options.rb +25 -0
  112. data/lib/language_server/protocol/interface/reference_params.rb +3 -2
  113. data/lib/language_server/protocol/interface/reference_registration_options.rb +25 -0
  114. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +43 -0
  115. data/lib/language_server/protocol/interface/rename_file.rb +63 -0
  116. data/lib/language_server/protocol/interface/rename_file_options.rb +45 -0
  117. data/lib/language_server/protocol/interface/rename_options.rb +34 -0
  118. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  119. data/lib/language_server/protocol/interface/rename_registration_options.rb +26 -0
  120. data/lib/language_server/protocol/interface/request_message.rb +2 -1
  121. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  122. data/lib/language_server/protocol/interface/response_message.rb +5 -4
  123. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  124. data/lib/language_server/protocol/interface/selection_range.rb +42 -0
  125. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +35 -0
  126. data/lib/language_server/protocol/interface/selection_range_options.rb +25 -0
  127. data/lib/language_server/protocol/interface/selection_range_params.rb +43 -0
  128. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +25 -0
  129. data/lib/language_server/protocol/interface/server_capabilities.rb +78 -53
  130. data/lib/language_server/protocol/interface/signature_help.rb +8 -5
  131. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  132. data/lib/language_server/protocol/interface/signature_help_context.rb +71 -0
  133. data/lib/language_server/protocol/interface/signature_help_options.rb +15 -5
  134. data/lib/language_server/protocol/interface/signature_help_params.rb +35 -0
  135. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +4 -11
  136. data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
  137. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +2 -1
  138. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +97 -75
  139. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
  140. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  141. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  142. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
  143. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  144. data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
  145. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  146. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  147. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +5 -1
  148. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  149. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  150. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  151. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  152. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  153. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  154. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  155. data/lib/language_server/protocol/interface/workspace_edit.rb +11 -5
  156. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
  157. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  158. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  159. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
  160. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
  161. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  162. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
  163. data/lib/language_server/protocol/transport.rb +1 -0
  164. data/lib/language_server/protocol/transport/io.rb +2 -0
  165. data/lib/language_server/protocol/transport/io/reader.rb +47 -0
  166. data/lib/language_server/protocol/transport/io/writer.rb +34 -0
  167. data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
  168. data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
  169. data/lib/language_server/protocol/version.rb +1 -1
  170. metadata +105 -29
  171. data/.gitignore +0 -10
  172. data/.travis.yml +0 -5
  173. data/CHANGELOG.md +0 -13
  174. data/CODE_OF_CONDUCT.md +0 -74
  175. data/Dockerfile-node.development +0 -6
  176. data/Dockerfile.development +0 -24
  177. data/Gemfile +0 -6
  178. data/Rakefile +0 -10
  179. data/bin/console +0 -14
  180. data/bin/generate_files +0 -5
  181. data/bin/m +0 -17
  182. data/bin/setup +0 -6
  183. data/circle.yml +0 -27
  184. data/docker-compose.ci.yml +0 -14
  185. data/docker-compose.override.yml +0 -15
  186. data/docker-compose.yml +0 -31
  187. data/language_server-protocol.gemspec +0 -31
  188. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +0 -55
  189. data/lib/language_server/protocol/interface/workspace_client_capabilites.rb +0 -82
  190. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
  191. data/package.json +0 -10
  192. data/scripts/generateFiles.ts +0 -252
  193. data/yarn.lock +0 -293
@@ -0,0 +1,35 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SelectionRangeClientCapabilities
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 implementation supports dynamic registration for selection range providers. If this is set to `true`
15
+ # the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
16
+ # capability as well.
17
+ #
18
+ # @return [boolean]
19
+ def dynamic_registration
20
+ attributes.fetch(:dynamicRegistration)
21
+ end
22
+
23
+ attr_reader :attributes
24
+
25
+ def to_hash
26
+ attributes
27
+ end
28
+
29
+ def to_json(*args)
30
+ to_hash.to_json(*args)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SelectionRangeOptions < WorkDoneProgressOptions
5
+ def initialize(work_done_progress: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ attr_reader :attributes
14
+
15
+ def to_hash
16
+ attributes
17
+ end
18
+
19
+ def to_json(*args)
20
+ to_hash.to_json(*args)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,43 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SelectionRangeParams < PartialResultParams
5
+ def initialize(partial_result_token: nil, text_document:, positions:)
6
+ @attributes = {}
7
+
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
9
+ @attributes[:textDocument] = text_document
10
+ @attributes[:positions] = positions
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The text document.
17
+ #
18
+ # @return [TextDocumentIdentifier]
19
+ def text_document
20
+ attributes.fetch(:textDocument)
21
+ end
22
+
23
+ #
24
+ # The positions inside the text document.
25
+ #
26
+ # @return [Position[]]
27
+ def positions
28
+ attributes.fetch(:positions)
29
+ end
30
+
31
+ attr_reader :attributes
32
+
33
+ def to_hash
34
+ attributes
35
+ end
36
+
37
+ def to_json(*args)
38
+ to_hash.to_json(*args)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SelectionRangeRegistrationOptions < StaticRegistrationOptions
5
+ def initialize(id: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:id] = id if id
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ attr_reader :attributes
14
+
15
+ def to_hash
16
+ attributes
17
+ end
18
+
19
+ def to_json(*args)
20
+ to_hash.to_json(*args)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -2,29 +2,32 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class ServerCapabilities
5
- def initialize(text_document_sync: nil, hover_provider: nil, completion_provider: nil, signature_help_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, workspace_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, document_link_provider: nil, color_provider: nil, execute_command_provider: nil, workspace: nil, experimental: nil)
5
+ def initialize(text_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:textDocumentSync] = text_document_sync if text_document_sync
9
- @attributes[:hoverProvider] = hover_provider if hover_provider
10
9
  @attributes[:completionProvider] = completion_provider if completion_provider
10
+ @attributes[:hoverProvider] = hover_provider if hover_provider
11
11
  @attributes[:signatureHelpProvider] = signature_help_provider if signature_help_provider
12
+ @attributes[:declarationProvider] = declaration_provider if declaration_provider
12
13
  @attributes[:definitionProvider] = definition_provider if definition_provider
13
14
  @attributes[:typeDefinitionProvider] = type_definition_provider if type_definition_provider
14
15
  @attributes[:implementationProvider] = implementation_provider if implementation_provider
15
16
  @attributes[:referencesProvider] = references_provider if references_provider
16
17
  @attributes[:documentHighlightProvider] = document_highlight_provider if document_highlight_provider
17
18
  @attributes[:documentSymbolProvider] = document_symbol_provider if document_symbol_provider
18
- @attributes[:workspaceSymbolProvider] = workspace_symbol_provider if workspace_symbol_provider
19
19
  @attributes[:codeActionProvider] = code_action_provider if code_action_provider
20
20
  @attributes[:codeLensProvider] = code_lens_provider if code_lens_provider
21
+ @attributes[:documentLinkProvider] = document_link_provider if document_link_provider
22
+ @attributes[:colorProvider] = color_provider if color_provider
21
23
  @attributes[:documentFormattingProvider] = document_formatting_provider if document_formatting_provider
22
24
  @attributes[:documentRangeFormattingProvider] = document_range_formatting_provider if document_range_formatting_provider
23
25
  @attributes[:documentOnTypeFormattingProvider] = document_on_type_formatting_provider if document_on_type_formatting_provider
24
26
  @attributes[:renameProvider] = rename_provider if rename_provider
25
- @attributes[:documentLinkProvider] = document_link_provider if document_link_provider
26
- @attributes[:colorProvider] = color_provider if color_provider
27
+ @attributes[:foldingRangeProvider] = folding_range_provider if folding_range_provider
27
28
  @attributes[:executeCommandProvider] = execute_command_provider if execute_command_provider
29
+ @attributes[:selectionRangeProvider] = selection_range_provider if selection_range_provider
30
+ @attributes[:workspaceSymbolProvider] = workspace_symbol_provider if workspace_symbol_provider
28
31
  @attributes[:workspace] = workspace if workspace
29
32
  @attributes[:experimental] = experimental if experimental
30
33
 
@@ -40,14 +43,6 @@ module LanguageServer
40
43
  attributes.fetch(:textDocumentSync)
41
44
  end
42
45
 
43
- #
44
- # The server provides hover support.
45
- #
46
- # @return [boolean]
47
- def hover_provider
48
- attributes.fetch(:hoverProvider)
49
- end
50
-
51
46
  #
52
47
  # The server provides completion support.
53
48
  #
@@ -56,6 +51,14 @@ module LanguageServer
56
51
  attributes.fetch(:completionProvider)
57
52
  end
58
53
 
54
+ #
55
+ # The server provides hover support.
56
+ #
57
+ # @return [boolean | HoverOptions]
58
+ def hover_provider
59
+ attributes.fetch(:hoverProvider)
60
+ end
61
+
59
62
  #
60
63
  # The server provides signature help support.
61
64
  #
@@ -64,30 +67,34 @@ module LanguageServer
64
67
  attributes.fetch(:signatureHelpProvider)
65
68
  end
66
69
 
70
+ #
71
+ # The server provides go to declaration support.
72
+ #
73
+ # @return [boolean | DeclarationOptions | DeclarationRegistrationOptions]
74
+ def declaration_provider
75
+ attributes.fetch(:declarationProvider)
76
+ end
77
+
67
78
  #
68
79
  # The server provides goto definition support.
69
80
  #
70
- # @return [boolean]
81
+ # @return [boolean | DefinitionOptions]
71
82
  def definition_provider
72
83
  attributes.fetch(:definitionProvider)
73
84
  end
74
85
 
75
86
  #
76
- # The server provides Goto Type Definition support.
77
- #
78
- # Since 3.6.0
87
+ # The server provides goto type definition support.
79
88
  #
80
- # @return [boolean | (TextDocumentRegistrationOptions & StaticRegistrationOptions)]
89
+ # @return [boolean | TypeDefinitionOptions | TypeDefinitionRegistrationOptions]
81
90
  def type_definition_provider
82
91
  attributes.fetch(:typeDefinitionProvider)
83
92
  end
84
93
 
85
94
  #
86
- # The server provides Goto Implementation support.
95
+ # The server provides goto implementation support.
87
96
  #
88
- # Since 3.6.0
89
- #
90
- # @return [boolean | (TextDocumentRegistrationOptions & StaticRegistrationOptions)]
97
+ # @return [boolean | ImplementationOptions | ImplementationRegistrationOptions]
91
98
  def implementation_provider
92
99
  attributes.fetch(:implementationProvider)
93
100
  end
@@ -95,7 +102,7 @@ module LanguageServer
95
102
  #
96
103
  # The server provides find references support.
97
104
  #
98
- # @return [boolean]
105
+ # @return [boolean | ReferenceOptions]
99
106
  def references_provider
100
107
  attributes.fetch(:referencesProvider)
101
108
  end
@@ -103,7 +110,7 @@ module LanguageServer
103
110
  #
104
111
  # The server provides document highlight support.
105
112
  #
106
- # @return [boolean]
113
+ # @return [boolean | DocumentHighlightOptions]
107
114
  def document_highlight_provider
108
115
  attributes.fetch(:documentHighlightProvider)
109
116
  end
@@ -111,23 +118,17 @@ module LanguageServer
111
118
  #
112
119
  # The server provides document symbol support.
113
120
  #
114
- # @return [boolean]
121
+ # @return [boolean | DocumentSymbolOptions]
115
122
  def document_symbol_provider
116
123
  attributes.fetch(:documentSymbolProvider)
117
124
  end
118
125
 
119
126
  #
120
- # The server provides workspace symbol support.
121
- #
122
- # @return [boolean]
123
- def workspace_symbol_provider
124
- attributes.fetch(:workspaceSymbolProvider)
125
- end
126
-
127
- #
128
- # The server provides code actions.
127
+ # The server provides code actions. The `CodeActionOptions` return type is only
128
+ # valid if the client signals code action literal support via the property
129
+ # `textDocument.codeAction.codeActionLiteralSupport`.
129
130
  #
130
- # @return [boolean]
131
+ # @return [boolean | CodeActionOptions]
131
132
  def code_action_provider
132
133
  attributes.fetch(:codeActionProvider)
133
134
  end
@@ -140,10 +141,26 @@ module LanguageServer
140
141
  attributes.fetch(:codeLensProvider)
141
142
  end
142
143
 
144
+ #
145
+ # The server provides document link support.
146
+ #
147
+ # @return [DocumentLinkOptions]
148
+ def document_link_provider
149
+ attributes.fetch(:documentLinkProvider)
150
+ end
151
+
152
+ #
153
+ # The server provides color provider support.
154
+ #
155
+ # @return [boolean | DocumentColorOptions | DocumentColorRegistrationOptions]
156
+ def color_provider
157
+ attributes.fetch(:colorProvider)
158
+ end
159
+
143
160
  #
144
161
  # The server provides document formatting.
145
162
  #
146
- # @return [boolean]
163
+ # @return [boolean | DocumentFormattingOptions]
147
164
  def document_formatting_provider
148
165
  attributes.fetch(:documentFormattingProvider)
149
166
  end
@@ -151,7 +168,7 @@ module LanguageServer
151
168
  #
152
169
  # The server provides document range formatting.
153
170
  #
154
- # @return [boolean]
171
+ # @return [boolean | DocumentRangeFormattingOptions]
155
172
  def document_range_formatting_provider
156
173
  attributes.fetch(:documentRangeFormattingProvider)
157
174
  end
@@ -165,43 +182,51 @@ module LanguageServer
165
182
  end
166
183
 
167
184
  #
168
- # The server provides rename support.
185
+ # The server provides rename support. RenameOptions may only be
186
+ # specified if the client states that it supports
187
+ # `prepareSupport` in its initial `initialize` request.
169
188
  #
170
- # @return [boolean]
189
+ # @return [boolean | RenameOptions]
171
190
  def rename_provider
172
191
  attributes.fetch(:renameProvider)
173
192
  end
174
193
 
175
194
  #
176
- # The server provides document link support.
195
+ # The server provides folding provider support.
177
196
  #
178
- # @return [DocumentLinkOptions]
179
- def document_link_provider
180
- attributes.fetch(:documentLinkProvider)
197
+ # @return [boolean | FoldingRangeOptions | FoldingRangeRegistrationOptions]
198
+ def folding_range_provider
199
+ attributes.fetch(:foldingRangeProvider)
181
200
  end
182
201
 
183
202
  #
184
- # The server provides color provider support.
203
+ # The server provides execute command support.
185
204
  #
186
- # Since 3.6.0
205
+ # @return [ExecuteCommandOptions]
206
+ def execute_command_provider
207
+ attributes.fetch(:executeCommandProvider)
208
+ end
209
+
187
210
  #
188
- # @return [boolean | ColorProviderOptions | (ColorProviderOptions & TextDocumentRegistrationOptions & Static...]
189
- def color_provider
190
- attributes.fetch(:colorProvider)
211
+ # The server provides selection range support.
212
+ #
213
+ # @return [boolean | SelectionRangeOptions | SelectionRangeRegistrationOptions]
214
+ def selection_range_provider
215
+ attributes.fetch(:selectionRangeProvider)
191
216
  end
192
217
 
193
218
  #
194
- # The server provides execute command support.
219
+ # The server provides workspace symbol support.
195
220
  #
196
- # @return [ExecuteCommandOptions]
197
- def execute_command_provider
198
- attributes.fetch(:executeCommandProvider)
221
+ # @return [boolean]
222
+ def workspace_symbol_provider
223
+ attributes.fetch(:workspaceSymbolProvider)
199
224
  end
200
225
 
201
226
  #
202
227
  # Workspace specific server capabilities
203
228
  #
204
- # @return [{ workspaceFolders?: { supported?: boolean; changeNotifications?: string | boolean; }; }]
229
+ # @return [{ workspaceFolders?: WorkspaceFoldersServerCapabilities; }]
205
230
  def workspace
206
231
  attributes.fetch(:workspace)
207
232
  end
@@ -18,7 +18,8 @@ module LanguageServer
18
18
  end
19
19
 
20
20
  #
21
- # One or more signatures.
21
+ # One or more signatures. If no signaures are availabe the signature help
22
+ # request should return `null`.
22
23
  #
23
24
  # @return [SignatureInformation[]]
24
25
  def signatures
@@ -27,10 +28,12 @@ module LanguageServer
27
28
 
28
29
  #
29
30
  # The active signature. If omitted or the value lies outside the
30
- # range of `signatures` the value defaults to zero or is ignored if
31
- # `signatures.length === 0`. Whenever possible implementors should
32
- # make an active decision about the active signature and shouldn't
33
- # rely on a default value.
31
+ # range of `signatures` the value defaults to zero or is ignore if
32
+ # the `SignatureHelp` as no signatures.
33
+ #
34
+ # Whenever possible implementors should make an active decision about
35
+ # the active signature and shouldn't rely on a default value.
36
+ #
34
37
  # In future version of the protocol this property might become
35
38
  # mandatory to better express this.
36
39
  #
@@ -0,0 +1,55 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SignatureHelpClientCapabilities
5
+ def initialize(dynamic_registration: nil, signature_information: nil, context_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:signatureInformation] = signature_information if signature_information
10
+ @attributes[:contextSupport] = context_support if context_support
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # Whether signature help supports dynamic registration.
17
+ #
18
+ # @return [boolean]
19
+ def dynamic_registration
20
+ attributes.fetch(:dynamicRegistration)
21
+ end
22
+
23
+ #
24
+ # The client supports the following `SignatureInformation`
25
+ # specific properties.
26
+ #
27
+ # @return [{ documentationFormat?: MarkupKind[]; parameterInformation?: { labelOffsetSupport?: boolean; }; }]
28
+ def signature_information
29
+ attributes.fetch(:signatureInformation)
30
+ end
31
+
32
+ #
33
+ # The client supports to send additional context information for a
34
+ # `textDocument/signatureHelp` request. A client that opts into
35
+ # contextSupport will also support the `retriggerCharacters` on
36
+ # `SignatureHelpOptions`.
37
+ #
38
+ # @return [boolean]
39
+ def context_support
40
+ attributes.fetch(:contextSupport)
41
+ end
42
+
43
+ attr_reader :attributes
44
+
45
+ def to_hash
46
+ attributes
47
+ end
48
+
49
+ def to_json(*args)
50
+ to_hash.to_json(*args)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end