language_server-protocol 3.14.0.0 → 3.15.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/constant.rb +8 -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/signature_help_trigger_kind.rb +23 -0
  8. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +1 -0
  9. data/lib/language_server/protocol/interface.rb +158 -6
  10. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +13 -1
  11. data/lib/language_server/protocol/interface/client_capabilities.rb +11 -2
  12. data/lib/language_server/protocol/interface/code_action.rb +14 -1
  13. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +52 -0
  14. data/lib/language_server/protocol/interface/code_action_context.rb +5 -1
  15. data/lib/language_server/protocol/interface/code_action_options.rb +3 -5
  16. data/lib/language_server/protocol/interface/code_action_params.rb +3 -2
  17. data/lib/language_server/protocol/interface/code_action_registration_options.rb +3 -1
  18. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  19. data/lib/language_server/protocol/interface/code_lens_options.rb +3 -5
  20. data/lib/language_server/protocol/interface/code_lens_params.rb +3 -2
  21. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +3 -10
  22. data/lib/language_server/protocol/interface/color_presentation_params.rb +3 -2
  23. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  24. data/lib/language_server/protocol/interface/completion_item.rb +16 -5
  25. data/lib/language_server/protocol/interface/completion_options.rb +33 -11
  26. data/lib/language_server/protocol/interface/completion_params.rb +3 -2
  27. data/lib/language_server/protocol/interface/completion_registration_options.rb +4 -26
  28. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  29. data/lib/language_server/protocol/interface/declaration_options.rb +25 -0
  30. data/lib/language_server/protocol/interface/declaration_params.rb +25 -0
  31. data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → declaration_registration_options.rb} +3 -5
  32. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  33. data/lib/language_server/protocol/interface/definition_options.rb +25 -0
  34. data/lib/language_server/protocol/interface/definition_params.rb +25 -0
  35. data/lib/language_server/protocol/interface/definition_registration_options.rb +25 -0
  36. data/lib/language_server/protocol/interface/diagnostic.rb +11 -2
  37. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +1 -1
  38. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  39. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +10 -2
  40. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  41. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  42. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  43. data/lib/language_server/protocol/interface/document_color_options.rb +25 -0
  44. data/lib/language_server/protocol/interface/document_color_params.rb +34 -0
  45. data/lib/language_server/protocol/interface/document_color_registration_options.rb +25 -0
  46. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  47. data/lib/language_server/protocol/interface/document_formatting_options.rb +25 -0
  48. data/lib/language_server/protocol/interface/document_formatting_params.rb +3 -2
  49. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +25 -0
  50. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  51. data/lib/language_server/protocol/interface/document_highlight_options.rb +25 -0
  52. data/lib/language_server/protocol/interface/document_highlight_params.rb +25 -0
  53. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +25 -0
  54. data/lib/language_server/protocol/interface/document_link.rb +14 -1
  55. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  56. data/lib/language_server/protocol/interface/document_link_options.rb +3 -5
  57. data/lib/language_server/protocol/interface/document_link_params.rb +3 -2
  58. data/lib/language_server/protocol/interface/document_link_registration_options.rb +3 -10
  59. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  60. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  61. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +1 -17
  62. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +2 -18
  63. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  64. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +25 -0
  65. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +3 -2
  66. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +25 -0
  67. data/lib/language_server/protocol/interface/document_symbol.rb +96 -0
  68. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +51 -0
  69. data/lib/language_server/protocol/interface/document_symbol_options.rb +25 -0
  70. data/lib/language_server/protocol/interface/document_symbol_params.rb +3 -2
  71. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +25 -0
  72. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  73. data/lib/language_server/protocol/interface/execute_command_options.rb +3 -5
  74. data/lib/language_server/protocol/interface/execute_command_params.rb +3 -2
  75. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +3 -10
  76. data/lib/language_server/protocol/interface/folding_range.rb +1 -1
  77. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +55 -0
  78. data/lib/language_server/protocol/interface/folding_range_options.rb +25 -0
  79. data/lib/language_server/protocol/interface/folding_range_params.rb +3 -2
  80. data/lib/language_server/protocol/interface/{color_provider_options.rb → folding_range_registration_options.rb} +3 -5
  81. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  82. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +43 -0
  83. data/lib/language_server/protocol/interface/hover_options.rb +25 -0
  84. data/lib/language_server/protocol/interface/hover_params.rb +25 -0
  85. data/lib/language_server/protocol/interface/hover_registration_options.rb +25 -0
  86. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  87. data/lib/language_server/protocol/interface/implementation_options.rb +25 -0
  88. data/lib/language_server/protocol/interface/implementation_params.rb +25 -0
  89. data/lib/language_server/protocol/interface/implementation_registration_options.rb +25 -0
  90. data/lib/language_server/protocol/interface/initialize_params.rb +12 -4
  91. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  92. data/lib/language_server/protocol/interface/location_link.rb +7 -4
  93. data/lib/language_server/protocol/interface/notification_message.rb +2 -1
  94. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  95. data/lib/language_server/protocol/interface/prepare_rename_params.rb +26 -0
  96. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  97. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +53 -0
  98. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +10 -1
  99. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  100. data/lib/language_server/protocol/interface/reference_options.rb +25 -0
  101. data/lib/language_server/protocol/interface/reference_params.rb +3 -2
  102. data/lib/language_server/protocol/interface/reference_registration_options.rb +25 -0
  103. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +43 -0
  104. data/lib/language_server/protocol/interface/rename_options.rb +3 -5
  105. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  106. data/lib/language_server/protocol/interface/rename_registration_options.rb +3 -10
  107. data/lib/language_server/protocol/interface/request_message.rb +2 -1
  108. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  109. data/lib/language_server/protocol/interface/response_message.rb +5 -4
  110. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  111. data/lib/language_server/protocol/interface/selection_range.rb +42 -0
  112. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +35 -0
  113. data/lib/language_server/protocol/interface/selection_range_options.rb +25 -0
  114. data/lib/language_server/protocol/interface/selection_range_params.rb +43 -0
  115. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +25 -0
  116. data/lib/language_server/protocol/interface/server_capabilities.rb +66 -56
  117. data/lib/language_server/protocol/interface/signature_help.rb +8 -5
  118. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  119. data/lib/language_server/protocol/interface/signature_help_context.rb +71 -0
  120. data/lib/language_server/protocol/interface/signature_help_options.rb +15 -5
  121. data/lib/language_server/protocol/interface/signature_help_params.rb +35 -0
  122. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +4 -11
  123. data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
  124. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +2 -1
  125. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +87 -87
  126. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -4
  127. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
  128. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  129. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  130. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
  131. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  132. data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
  133. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  134. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  135. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +2 -1
  136. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  137. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  138. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  139. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  140. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  141. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  142. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  143. data/lib/language_server/protocol/interface/workspace_edit.rb +1 -1
  144. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
  145. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  146. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  147. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
  148. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
  149. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  150. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
  151. data/lib/language_server/protocol/transport.rb +1 -0
  152. data/lib/language_server/protocol/transport/io.rb +2 -0
  153. data/lib/language_server/protocol/transport/io/reader.rb +47 -0
  154. data/lib/language_server/protocol/transport/io/writer.rb +34 -0
  155. data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
  156. data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
  157. data/lib/language_server/protocol/version.rb +1 -1
  158. metadata +92 -31
  159. data/.gitignore +0 -10
  160. data/.travis.yml +0 -5
  161. data/CHANGELOG.md +0 -21
  162. data/CODE_OF_CONDUCT.md +0 -74
  163. data/Dockerfile-node.development +0 -6
  164. data/Dockerfile.development +0 -24
  165. data/Gemfile +0 -6
  166. data/Rakefile +0 -10
  167. data/bin/console +0 -14
  168. data/bin/generate_files +0 -5
  169. data/bin/m +0 -17
  170. data/bin/setup +0 -6
  171. data/circle.yml +0 -46
  172. data/docker-compose.ci.yml +0 -18
  173. data/docker-compose.override.yml +0 -19
  174. data/docker-compose.yml +0 -45
  175. data/language_server-protocol.gemspec +0 -31
  176. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
  177. data/package.json +0 -10
  178. data/scripts/generateFiles.ts +0 -320
  179. 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,210 +5,210 @@ 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, declaration: 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
21
15
  @attributes[:declaration] = declaration if declaration
22
16
  @attributes[:definition] = definition if definition
23
17
  @attributes[:typeDefinition] = type_definition if type_definition
24
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
25
22
  @attributes[:codeAction] = code_action if code_action
26
23
  @attributes[:codeLens] = code_lens if code_lens
27
24
  @attributes[:documentLink] = document_link if document_link
28
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
29
29
  @attributes[:rename] = rename if rename
30
30
  @attributes[:publishDiagnostics] = publish_diagnostics if publish_diagnostics
31
31
  @attributes[:foldingRange] = folding_range if folding_range
32
+ @attributes[:selectionRange] = selection_range if selection_range
32
33
 
33
34
  @attributes.freeze
34
35
  end
35
36
 
36
- # @return [{ dynamicRegistration?: boolean; willSave?: boolean; willSaveWaitUntil?: boolean; didSave?: boole...]
37
+ # @return [TextDocumentSyncClientCapabilities]
37
38
  def synchronization
38
39
  attributes.fetch(:synchronization)
39
40
  end
40
41
 
41
42
  #
42
- # Capabilities specific to the `textDocument/completion`
43
+ # Capabilities specific to the `textDocument/completion` request.
43
44
  #
44
- # @return [{ dynamicRegistration?: boolean; completionItem?: { snippetSupport?: boolean; commitCharactersSup...]
45
+ # @return [CompletionClientCapabilities]
45
46
  def completion
46
47
  attributes.fetch(:completion)
47
48
  end
48
49
 
49
50
  #
50
- # Capabilities specific to the `textDocument/hover`
51
+ # Capabilities specific to the `textDocument/hover` request.
51
52
  #
52
- # @return [{ dynamicRegistration?: boolean; contentFormat?: MarkupKind[]; }]
53
+ # @return [HoverClientCapabilities]
53
54
  def hover
54
55
  attributes.fetch(:hover)
55
56
  end
56
57
 
57
58
  #
58
- # Capabilities specific to the `textDocument/signatureHelp`
59
+ # Capabilities specific to the `textDocument/signatureHelp` request.
59
60
  #
60
- # @return [{ dynamicRegistration?: boolean; signatureInformation?: { documentationFormat?: MarkupKind[]; par...]
61
+ # @return [SignatureHelpClientCapabilities]
61
62
  def signature_help
62
63
  attributes.fetch(:signatureHelp)
63
64
  end
64
65
 
65
66
  #
66
- # Capabilities specific to the `textDocument/references`
67
+ # Capabilities specific to the `textDocument/declaration` request.
67
68
  #
68
- # @return [{ dynamicRegistration?: boolean; }]
69
- def references
70
- attributes.fetch(:references)
69
+ # @return [DeclarationClientCapabilities]
70
+ def declaration
71
+ attributes.fetch(:declaration)
71
72
  end
72
73
 
73
74
  #
74
- # Capabilities specific to the `textDocument/documentHighlight`
75
+ # Capabilities specific to the `textDocument/definition` request.
75
76
  #
76
- # @return [{ dynamicRegistration?: boolean; }]
77
- def document_highlight
78
- attributes.fetch(:documentHighlight)
77
+ # @return [DefinitionClientCapabilities]
78
+ def definition
79
+ attributes.fetch(:definition)
79
80
  end
80
81
 
81
82
  #
82
- # Capabilities specific to the `textDocument/documentSymbol`
83
+ # Capabilities specific to the `textDocument/typeDefinition` request.
83
84
  #
84
- # @return [{ dynamicRegistration?: boolean; symbolKind?: { valueSet?: any[]; }; hierarchicalDocumentSymbolSu...]
85
- def document_symbol
86
- attributes.fetch(:documentSymbol)
85
+ # @return [TypeDefinitionClientCapabilities]
86
+ def type_definition
87
+ attributes.fetch(:typeDefinition)
87
88
  end
88
89
 
89
90
  #
90
- # Capabilities specific to the `textDocument/formatting`
91
+ # Capabilities specific to the `textDocument/implementation` request.
91
92
  #
92
- # @return [{ dynamicRegistration?: boolean; }]
93
- def formatting
94
- attributes.fetch(:formatting)
93
+ # @return [ImplementationClientCapabilities]
94
+ def implementation
95
+ attributes.fetch(:implementation)
95
96
  end
96
97
 
97
98
  #
98
- # Capabilities specific to the `textDocument/rangeFormatting`
99
+ # Capabilities specific to the `textDocument/references` request.
99
100
  #
100
- # @return [{ dynamicRegistration?: boolean; }]
101
- def range_formatting
102
- attributes.fetch(:rangeFormatting)
101
+ # @return [ReferenceClientCapabilities]
102
+ def references
103
+ attributes.fetch(:references)
103
104
  end
104
105
 
105
106
  #
106
- # Capabilities specific to the `textDocument/onTypeFormatting`
107
+ # Capabilities specific to the `textDocument/documentHighlight` request.
107
108
  #
108
- # @return [{ dynamicRegistration?: boolean; }]
109
- def on_type_formatting
110
- attributes.fetch(:onTypeFormatting)
109
+ # @return [DocumentHighlightClientCapabilities]
110
+ def document_highlight
111
+ attributes.fetch(:documentHighlight)
111
112
  end
112
113
 
113
114
  #
114
- # Capabilities specific to the `textDocument/declaration`
115
+ # Capabilities specific to the `textDocument/documentSymbol` request.
115
116
  #
116
- # @return [{ dynamicRegistration?: boolean; linkSupport?: boolean; }]
117
- def declaration
118
- attributes.fetch(:declaration)
117
+ # @return [DocumentSymbolClientCapabilities]
118
+ def document_symbol
119
+ attributes.fetch(:documentSymbol)
119
120
  end
120
121
 
121
122
  #
122
- # Capabilities specific to the `textDocument/definition`.
123
- #
124
- # Since 3.14.0
123
+ # Capabilities specific to the `textDocument/codeAction` request.
125
124
  #
126
- # @return [{ dynamicRegistration?: boolean; linkSupport?: boolean; }]
127
- def definition
128
- attributes.fetch(:definition)
125
+ # @return [CodeActionClientCapabilities]
126
+ def code_action
127
+ attributes.fetch(:codeAction)
129
128
  end
130
129
 
131
130
  #
132
- # Capabilities specific to the `textDocument/typeDefinition`
133
- #
134
- # Since 3.6.0
131
+ # Capabilities specific to the `textDocument/codeLens` request.
135
132
  #
136
- # @return [{ dynamicRegistration?: boolean; linkSupport?: boolean; }]
137
- def type_definition
138
- attributes.fetch(:typeDefinition)
133
+ # @return [CodeLensClientCapabilities]
134
+ def code_lens
135
+ attributes.fetch(:codeLens)
139
136
  end
140
137
 
141
138
  #
142
- # Capabilities specific to the `textDocument/implementation`.
143
- #
144
- # Since 3.6.0
139
+ # Capabilities specific to the `textDocument/documentLink` request.
145
140
  #
146
- # @return [{ dynamicRegistration?: boolean; linkSupport?: boolean; }]
147
- def implementation
148
- attributes.fetch(:implementation)
141
+ # @return [DocumentLinkClientCapabilities]
142
+ def document_link
143
+ attributes.fetch(:documentLink)
149
144
  end
150
145
 
151
146
  #
152
- # Capabilities specific to the `textDocument/codeAction`
147
+ # Capabilities specific to the `textDocument/documentColor` and the
148
+ # `textDocument/colorPresentation` request.
153
149
  #
154
- # @return [{ dynamicRegistration?: boolean; codeActionLiteralSupport?: { codeActionKind: { valueSet: string[...]
155
- def code_action
156
- attributes.fetch(:codeAction)
150
+ # @return [DocumentColorClientCapabilities]
151
+ def color_provider
152
+ attributes.fetch(:colorProvider)
157
153
  end
158
154
 
159
155
  #
160
- # Capabilities specific to the `textDocument/codeLens`
156
+ # Capabilities specific to the `textDocument/formatting` request.
161
157
  #
162
- # @return [{ dynamicRegistration?: boolean; }]
163
- def code_lens
164
- attributes.fetch(:codeLens)
158
+ # @return [DocumentFormattingClientCapabilities]
159
+ def formatting
160
+ attributes.fetch(:formatting)
165
161
  end
166
162
 
167
163
  #
168
- # Capabilities specific to the `textDocument/documentLink`
164
+ # Capabilities specific to the `textDocument/rangeFormatting` request.
169
165
  #
170
- # @return [{ dynamicRegistration?: boolean; }]
171
- def document_link
172
- attributes.fetch(:documentLink)
166
+ # @return [DocumentRangeFormattingClientCapabilities]
167
+ def range_formatting
168
+ attributes.fetch(:rangeFormatting)
173
169
  end
174
170
 
175
171
  #
176
- # Capabilities specific to the `textDocument/documentColor` and the
177
- # `textDocument/colorPresentation` request.
178
- #
179
- # Since 3.6.0
172
+ # request.
173
+ # Capabilities specific to the `textDocument/onTypeFormatting` request.
180
174
  #
181
- # @return [{ dynamicRegistration?: boolean; }]
182
- def color_provider
183
- attributes.fetch(:colorProvider)
175
+ # @return [DocumentOnTypeFormattingClientCapabilities]
176
+ def on_type_formatting
177
+ attributes.fetch(:onTypeFormatting)
184
178
  end
185
179
 
186
180
  #
187
- # Capabilities specific to the `textDocument/rename`
181
+ # Capabilities specific to the `textDocument/rename` request.
188
182
  #
189
- # @return [{ dynamicRegistration?: boolean; prepareSupport?: boolean; }]
183
+ # @return [RenameClientCapabilities]
190
184
  def rename
191
185
  attributes.fetch(:rename)
192
186
  end
193
187
 
194
188
  #
195
- # Capabilities specific to `textDocument/publishDiagnostics`.
189
+ # Capabilities specific to the `textDocument/publishDiagnostics` notification.
196
190
  #
197
- # @return [{ relatedInformation?: boolean; }]
191
+ # @return [PublishDiagnosticsClientCapabilities]
198
192
  def publish_diagnostics
199
193
  attributes.fetch(:publishDiagnostics)
200
194
  end
201
195
 
202
196
  #
203
- # Capabilities specific to `textDocument/foldingRange` requests.
197
+ # Capabilities specific to the `textDocument/foldingRange` request.
204
198
  #
205
- # Since 3.10.0
206
- #
207
- # @return [{ dynamicRegistration?: boolean; rangeLimit?: number; lineFoldingOnly?: boolean; }]
199
+ # @return [FoldingRangeClientCapabilities]
208
200
  def folding_range
209
201
  attributes.fetch(:foldingRange)
210
202
  end
211
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
+
212
212
  attr_reader :attributes
213
213
 
214
214
  def to_hash