language_server-protocol 3.12.0.0 → 3.15.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/constant.rb +12 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +12 -8
  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 +174 -8
  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 +14 -1
  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 +5 -1
  18. data/lib/language_server/protocol/interface/code_action_options.rb +3 -5
  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 +3 -1
  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 +16 -5
  28. data/lib/language_server/protocol/interface/completion_options.rb +33 -11
  29. data/lib/language_server/protocol/interface/completion_params.rb +3 -2
  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/{folding_range_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 +1 -1
  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_request_param.rb → folding_range_params.rb} +3 -2
  89. data/lib/language_server/protocol/interface/{color_provider_options.rb → folding_range_registration_options.rb} +3 -5
  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 +3 -5
  118. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  119. data/lib/language_server/protocol/interface/rename_registration_options.rb +3 -10
  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 +66 -56
  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 +90 -79
  139. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -4
  140. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
  141. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  142. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  143. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
  144. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  145. data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
  146. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  147. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  148. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +5 -1
  149. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  150. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  151. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  152. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  153. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  154. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  155. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  156. data/lib/language_server/protocol/interface/workspace_edit.rb +11 -5
  157. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
  158. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  159. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  160. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
  161. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
  162. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  163. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
  164. data/lib/language_server/protocol/transport.rb +1 -0
  165. data/lib/language_server/protocol/transport/io.rb +2 -0
  166. data/lib/language_server/protocol/transport/io/reader.rb +47 -0
  167. data/lib/language_server/protocol/transport/io/writer.rb +34 -0
  168. data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
  169. data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
  170. data/lib/language_server/protocol/version.rb +1 -1
  171. metadata +98 -30
  172. data/.gitignore +0 -10
  173. data/.travis.yml +0 -5
  174. data/CHANGELOG.md +0 -17
  175. data/CODE_OF_CONDUCT.md +0 -74
  176. data/Dockerfile-node.development +0 -6
  177. data/Dockerfile.development +0 -24
  178. data/Gemfile +0 -6
  179. data/Rakefile +0 -10
  180. data/bin/console +0 -14
  181. data/bin/generate_files +0 -5
  182. data/bin/m +0 -17
  183. data/bin/setup +0 -6
  184. data/circle.yml +0 -28
  185. data/docker-compose.ci.yml +0 -16
  186. data/docker-compose.override.yml +0 -15
  187. data/docker-compose.yml +0 -37
  188. data/language_server-protocol.gemspec +0 -31
  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 -320
  193. data/yarn.lock +0 -293
@@ -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
@@ -0,0 +1,71 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Additional information about the context in which a signature help request was triggered.
6
+ #
7
+ class SignatureHelpContext
8
+ def initialize(trigger_kind:, trigger_character: nil, is_retrigger:, active_signature_help: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:triggerKind] = trigger_kind
12
+ @attributes[:triggerCharacter] = trigger_character if trigger_character
13
+ @attributes[:isRetrigger] = is_retrigger
14
+ @attributes[:activeSignatureHelp] = active_signature_help if active_signature_help
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # Action that caused signature help to be triggered.
21
+ #
22
+ # @return [CompletionTriggerKind]
23
+ def trigger_kind
24
+ attributes.fetch(:triggerKind)
25
+ end
26
+
27
+ #
28
+ # Character that caused signature help to be triggered.
29
+ #
30
+ # This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
31
+ #
32
+ # @return [string]
33
+ def trigger_character
34
+ attributes.fetch(:triggerCharacter)
35
+ end
36
+
37
+ #
38
+ # `true` if signature help was already showing when it was triggered.
39
+ #
40
+ # Retriggers occur when the signature help is already active and can be caused by actions such as
41
+ # typing a trigger character, a cursor move, or document content changes.
42
+ #
43
+ # @return [boolean]
44
+ def is_retrigger
45
+ attributes.fetch(:isRetrigger)
46
+ end
47
+
48
+ #
49
+ # The currently active `SignatureHelp`.
50
+ #
51
+ # The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
52
+ # the user navigating through available signatures.
53
+ #
54
+ # @return [SignatureHelp]
55
+ def active_signature_help
56
+ attributes.fetch(:activeSignatureHelp)
57
+ end
58
+
59
+ attr_reader :attributes
60
+
61
+ def to_hash
62
+ attributes
63
+ end
64
+
65
+ def to_json(*args)
66
+ to_hash.to_json(*args)
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -1,14 +1,13 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Signature help options.
6
- #
7
- class SignatureHelpOptions
8
- def initialize(trigger_characters: nil)
4
+ class SignatureHelpOptions < WorkDoneProgressOptions
5
+ def initialize(work_done_progress: nil, trigger_characters: nil, retrigger_characters: nil)
9
6
  @attributes = {}
10
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
11
9
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
10
+ @attributes[:retriggerCharacters] = retrigger_characters if retrigger_characters
12
11
 
13
12
  @attributes.freeze
14
13
  end
@@ -22,6 +21,17 @@ module LanguageServer
22
21
  attributes.fetch(:triggerCharacters)
23
22
  end
24
23
 
24
+ #
25
+ # List of characters that re-trigger signature help.
26
+ #
27
+ # These trigger characters are only active when signature help is already showing. All trigger characters
28
+ # are also counted as re-trigger characters.
29
+ #
30
+ # @return [string[]]
31
+ def retrigger_characters
32
+ attributes.fetch(:retriggerCharacters)
33
+ end
34
+
25
35
  attr_reader :attributes
26
36
 
27
37
  def to_hash
@@ -0,0 +1,35 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SignatureHelpParams < WorkDoneProgressParams
5
+ def initialize(work_done_token: nil, context: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+ @attributes[:context] = context if context
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The signature help context. This is only available if the client specifies
16
+ # to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
17
+ #
18
+ # @return [SignatureHelpContext]
19
+ def context
20
+ attributes.fetch(:context)
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
@@ -1,24 +1,17 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class SignatureHelpRegistrationOptions < TextDocumentRegistrationOptions
5
- def initialize(document_selector:, trigger_characters: nil)
4
+ class SignatureHelpRegistrationOptions < SignatureHelpOptions
5
+ def initialize(work_done_progress: nil, trigger_characters: nil, retrigger_characters: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
8
9
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
10
+ @attributes[:retriggerCharacters] = retrigger_characters if retrigger_characters
9
11
 
10
12
  @attributes.freeze
11
13
  end
12
14
 
13
- #
14
- # The characters that trigger signature help
15
- # automatically.
16
- #
17
- # @return [string[]]
18
- def trigger_characters
19
- attributes.fetch(:triggerCharacters)
20
- end
21
-
22
15
  attr_reader :attributes
23
16
 
24
17
  def to_hash
@@ -29,7 +29,7 @@ module LanguageServer
29
29
  #
30
30
  # The kind of this symbol.
31
31
  #
32
- # @return [number]
32
+ # @return [any]
33
33
  def kind
34
34
  attributes.fetch(:kind)
35
35
  end
@@ -8,6 +8,7 @@ module LanguageServer
8
8
  def initialize(document_selector:, sync_kind:)
9
9
  @attributes = {}
10
10
 
11
+ @attributes[:documentSelector] = document_selector
11
12
  @attributes[:syncKind] = sync_kind
12
13
 
13
14
  @attributes.freeze
@@ -17,7 +18,7 @@ module LanguageServer
17
18
  # How documents are synced to the server. See TextDocumentSyncKind.Full
18
19
  # and TextDocumentSyncKind.Incremental.
19
20
  #
20
- # @return [number]
21
+ # @return [any]
21
22
  def sync_kind
22
23
  attributes.fetch(:syncKind)
23
24
  end
@@ -5,158 +5,140 @@ module LanguageServer
5
5
  # Text document specific client capabilities.
6
6
  #
7
7
  class TextDocumentClientCapabilities
8
- def initialize(synchronization: nil, completion: nil, hover: nil, signature_help: nil, references: nil, document_highlight: nil, document_symbol: nil, formatting: nil, range_formatting: nil, on_type_formatting: nil, definition: nil, type_definition: nil, implementation: nil, code_action: nil, code_lens: nil, document_link: nil, color_provider: nil, rename: nil, publish_diagnostics: nil, folding_range: nil)
8
+ def initialize(synchronization: nil, completion: nil, hover: nil, signature_help: nil, declaration: nil, definition: nil, type_definition: nil, implementation: nil, references: nil, document_highlight: nil, document_symbol: nil, code_action: nil, code_lens: nil, document_link: nil, color_provider: nil, formatting: nil, range_formatting: nil, on_type_formatting: nil, rename: nil, publish_diagnostics: nil, folding_range: nil, selection_range: nil)
9
9
  @attributes = {}
10
10
 
11
11
  @attributes[:synchronization] = synchronization if synchronization
12
12
  @attributes[:completion] = completion if completion
13
13
  @attributes[:hover] = hover if hover
14
14
  @attributes[:signatureHelp] = signature_help if signature_help
15
- @attributes[:references] = references if references
16
- @attributes[:documentHighlight] = document_highlight if document_highlight
17
- @attributes[:documentSymbol] = document_symbol if document_symbol
18
- @attributes[:formatting] = formatting if formatting
19
- @attributes[:rangeFormatting] = range_formatting if range_formatting
20
- @attributes[:onTypeFormatting] = on_type_formatting if on_type_formatting
15
+ @attributes[:declaration] = declaration if declaration
21
16
  @attributes[:definition] = definition if definition
22
17
  @attributes[:typeDefinition] = type_definition if type_definition
23
18
  @attributes[:implementation] = implementation if implementation
19
+ @attributes[:references] = references if references
20
+ @attributes[:documentHighlight] = document_highlight if document_highlight
21
+ @attributes[:documentSymbol] = document_symbol if document_symbol
24
22
  @attributes[:codeAction] = code_action if code_action
25
23
  @attributes[:codeLens] = code_lens if code_lens
26
24
  @attributes[:documentLink] = document_link if document_link
27
25
  @attributes[:colorProvider] = color_provider if color_provider
26
+ @attributes[:formatting] = formatting if formatting
27
+ @attributes[:rangeFormatting] = range_formatting if range_formatting
28
+ @attributes[:onTypeFormatting] = on_type_formatting if on_type_formatting
28
29
  @attributes[:rename] = rename if rename
29
30
  @attributes[:publishDiagnostics] = publish_diagnostics if publish_diagnostics
30
31
  @attributes[:foldingRange] = folding_range if folding_range
32
+ @attributes[:selectionRange] = selection_range if selection_range
31
33
 
32
34
  @attributes.freeze
33
35
  end
34
36
 
35
- # @return [{ dynamicRegistration?: boolean; willSave?: boolean; willSaveWaitUntil?: boolean; didSave?: boole...]
37
+ # @return [TextDocumentSyncClientCapabilities]
36
38
  def synchronization
37
39
  attributes.fetch(:synchronization)
38
40
  end
39
41
 
40
42
  #
41
- # Capabilities specific to the `textDocument/completion`
43
+ # Capabilities specific to the `textDocument/completion` request.
42
44
  #
43
- # @return [{ dynamicRegistration?: boolean; completionItem?: { snippetSupport?: boolean; commitCharactersSup...]
45
+ # @return [CompletionClientCapabilities]
44
46
  def completion
45
47
  attributes.fetch(:completion)
46
48
  end
47
49
 
48
50
  #
49
- # Capabilities specific to the `textDocument/hover`
51
+ # Capabilities specific to the `textDocument/hover` request.
50
52
  #
51
- # @return [{ dynamicRegistration?: boolean; contentFormat?: MarkupKind[]; }]
53
+ # @return [HoverClientCapabilities]
52
54
  def hover
53
55
  attributes.fetch(:hover)
54
56
  end
55
57
 
56
58
  #
57
- # Capabilities specific to the `textDocument/signatureHelp`
59
+ # Capabilities specific to the `textDocument/signatureHelp` request.
58
60
  #
59
- # @return [{ dynamicRegistration?: boolean; signatureInformation?: { documentationFormat?: MarkupKind[]; }; }]
61
+ # @return [SignatureHelpClientCapabilities]
60
62
  def signature_help
61
63
  attributes.fetch(:signatureHelp)
62
64
  end
63
65
 
64
66
  #
65
- # Capabilities specific to the `textDocument/references`
66
- #
67
- # @return [{ dynamicRegistration?: boolean; }]
68
- def references
69
- attributes.fetch(:references)
70
- end
71
-
72
- #
73
- # Capabilities specific to the `textDocument/documentHighlight`
74
- #
75
- # @return [{ dynamicRegistration?: boolean; }]
76
- def document_highlight
77
- attributes.fetch(:documentHighlight)
78
- end
79
-
80
- #
81
- # Capabilities specific to the `textDocument/documentSymbol`
67
+ # Capabilities specific to the `textDocument/declaration` request.
82
68
  #
83
- # @return [{ dynamicRegistration?: boolean; symbolKind?: { valueSet?: any[]; }; hierarchicalDocumentSymbolSu...]
84
- def document_symbol
85
- attributes.fetch(:documentSymbol)
69
+ # @return [DeclarationClientCapabilities]
70
+ def declaration
71
+ attributes.fetch(:declaration)
86
72
  end
87
73
 
88
74
  #
89
- # Capabilities specific to the `textDocument/formatting`
75
+ # Capabilities specific to the `textDocument/definition` request.
90
76
  #
91
- # @return [{ dynamicRegistration?: boolean; }]
92
- def formatting
93
- attributes.fetch(:formatting)
77
+ # @return [DefinitionClientCapabilities]
78
+ def definition
79
+ attributes.fetch(:definition)
94
80
  end
95
81
 
96
82
  #
97
- # Capabilities specific to the `textDocument/rangeFormatting`
83
+ # Capabilities specific to the `textDocument/typeDefinition` request.
98
84
  #
99
- # @return [{ dynamicRegistration?: boolean; }]
100
- def range_formatting
101
- attributes.fetch(:rangeFormatting)
85
+ # @return [TypeDefinitionClientCapabilities]
86
+ def type_definition
87
+ attributes.fetch(:typeDefinition)
102
88
  end
103
89
 
104
90
  #
105
- # Capabilities specific to the `textDocument/onTypeFormatting`
91
+ # Capabilities specific to the `textDocument/implementation` request.
106
92
  #
107
- # @return [{ dynamicRegistration?: boolean; }]
108
- def on_type_formatting
109
- attributes.fetch(:onTypeFormatting)
93
+ # @return [ImplementationClientCapabilities]
94
+ def implementation
95
+ attributes.fetch(:implementation)
110
96
  end
111
97
 
112
98
  #
113
- # Capabilities specific to the `textDocument/definition`
99
+ # Capabilities specific to the `textDocument/references` request.
114
100
  #
115
- # @return [{ dynamicRegistration?: boolean; }]
116
- def definition
117
- attributes.fetch(:definition)
101
+ # @return [ReferenceClientCapabilities]
102
+ def references
103
+ attributes.fetch(:references)
118
104
  end
119
105
 
120
106
  #
121
- # Capabilities specific to the `textDocument/typeDefinition`
122
- #
123
- # Since 3.6.0
107
+ # Capabilities specific to the `textDocument/documentHighlight` request.
124
108
  #
125
- # @return [{ dynamicRegistration?: boolean; }]
126
- def type_definition
127
- attributes.fetch(:typeDefinition)
109
+ # @return [DocumentHighlightClientCapabilities]
110
+ def document_highlight
111
+ attributes.fetch(:documentHighlight)
128
112
  end
129
113
 
130
114
  #
131
- # Capabilities specific to the `textDocument/implementation`.
132
- #
133
- # Since 3.6.0
115
+ # Capabilities specific to the `textDocument/documentSymbol` request.
134
116
  #
135
- # @return [{ dynamicRegistration?: boolean; }]
136
- def implementation
137
- attributes.fetch(:implementation)
117
+ # @return [DocumentSymbolClientCapabilities]
118
+ def document_symbol
119
+ attributes.fetch(:documentSymbol)
138
120
  end
139
121
 
140
122
  #
141
- # Capabilities specific to the `textDocument/codeAction`
123
+ # Capabilities specific to the `textDocument/codeAction` request.
142
124
  #
143
- # @return [{ dynamicRegistration?: boolean; codeActionLiteralSupport?: { codeActionKind: { valueSet: string[...]
125
+ # @return [CodeActionClientCapabilities]
144
126
  def code_action
145
127
  attributes.fetch(:codeAction)
146
128
  end
147
129
 
148
130
  #
149
- # Capabilities specific to the `textDocument/codeLens`
131
+ # Capabilities specific to the `textDocument/codeLens` request.
150
132
  #
151
- # @return [{ dynamicRegistration?: boolean; }]
133
+ # @return [CodeLensClientCapabilities]
152
134
  def code_lens
153
135
  attributes.fetch(:codeLens)
154
136
  end
155
137
 
156
138
  #
157
- # Capabilities specific to the `textDocument/documentLink`
139
+ # Capabilities specific to the `textDocument/documentLink` request.
158
140
  #
159
- # @return [{ dynamicRegistration?: boolean; }]
141
+ # @return [DocumentLinkClientCapabilities]
160
142
  def document_link
161
143
  attributes.fetch(:documentLink)
162
144
  end
@@ -165,39 +147,68 @@ module LanguageServer
165
147
  # Capabilities specific to the `textDocument/documentColor` and the
166
148
  # `textDocument/colorPresentation` request.
167
149
  #
168
- # Since 3.6.0
169
- #
170
- # @return [{ dynamicRegistration?: boolean; }]
150
+ # @return [DocumentColorClientCapabilities]
171
151
  def color_provider
172
152
  attributes.fetch(:colorProvider)
173
153
  end
174
154
 
175
155
  #
176
- # Capabilities specific to the `textDocument/rename`
156
+ # Capabilities specific to the `textDocument/formatting` request.
157
+ #
158
+ # @return [DocumentFormattingClientCapabilities]
159
+ def formatting
160
+ attributes.fetch(:formatting)
161
+ end
162
+
163
+ #
164
+ # Capabilities specific to the `textDocument/rangeFormatting` request.
165
+ #
166
+ # @return [DocumentRangeFormattingClientCapabilities]
167
+ def range_formatting
168
+ attributes.fetch(:rangeFormatting)
169
+ end
170
+
171
+ #
172
+ # request.
173
+ # Capabilities specific to the `textDocument/onTypeFormatting` request.
177
174
  #
178
- # @return [{ dynamicRegistration?: boolean; prepareSupport?: boolean; }]
175
+ # @return [DocumentOnTypeFormattingClientCapabilities]
176
+ def on_type_formatting
177
+ attributes.fetch(:onTypeFormatting)
178
+ end
179
+
180
+ #
181
+ # Capabilities specific to the `textDocument/rename` request.
182
+ #
183
+ # @return [RenameClientCapabilities]
179
184
  def rename
180
185
  attributes.fetch(:rename)
181
186
  end
182
187
 
183
188
  #
184
- # Capabilities specific to `textDocument/publishDiagnostics`.
189
+ # Capabilities specific to the `textDocument/publishDiagnostics` notification.
185
190
  #
186
- # @return [{ relatedInformation?: boolean; }]
191
+ # @return [PublishDiagnosticsClientCapabilities]
187
192
  def publish_diagnostics
188
193
  attributes.fetch(:publishDiagnostics)
189
194
  end
190
195
 
191
196
  #
192
- # Capabilities specific to `textDocument/foldingRange` requests.
193
- #
194
- # Since 3.10.0
197
+ # Capabilities specific to the `textDocument/foldingRange` request.
195
198
  #
196
- # @return [{ dynamicRegistration?: boolean; rangeLimit?: number; lineFoldingOnly?: boolean; }]
199
+ # @return [FoldingRangeClientCapabilities]
197
200
  def folding_range
198
201
  attributes.fetch(:foldingRange)
199
202
  end
200
203
 
204
+ #
205
+ # Capabilities specific to the `textDocument/selectionRange` request.
206
+ #
207
+ # @return [SelectionRangeClientCapabilities]
208
+ def selection_range
209
+ attributes.fetch(:selectionRange)
210
+ end
211
+
201
212
  attr_reader :attributes
202
213
 
203
214
  def to_hash