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
@@ -2,14 +2,16 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class CompletionItem
5
- def initialize(label:, kind: nil, detail: nil, documentation: nil, deprecated: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, text_edit: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
5
+ def initialize(label:, kind: nil, tags: nil, detail: nil, documentation: nil, deprecated: nil, preselect: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, text_edit: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:label] = label
9
9
  @attributes[:kind] = kind if kind
10
+ @attributes[:tags] = tags if tags
10
11
  @attributes[:detail] = detail if detail
11
12
  @attributes[:documentation] = documentation if documentation
12
13
  @attributes[:deprecated] = deprecated if deprecated
14
+ @attributes[:preselect] = preselect if preselect
13
15
  @attributes[:sortText] = sort_text if sort_text
14
16
  @attributes[:filterText] = filter_text if filter_text
15
17
  @attributes[:insertText] = insert_text if insert_text
@@ -35,13 +37,22 @@ module LanguageServer
35
37
 
36
38
  #
37
39
  # The kind of this completion item. Based of the kind
38
- # an icon is chosen by the editor.
40
+ # an icon is chosen by the editor. The standardized set
41
+ # of available values is defined in `CompletionItemKind`.
39
42
  #
40
43
  # @return [number]
41
44
  def kind
42
45
  attributes.fetch(:kind)
43
46
  end
44
47
 
48
+ #
49
+ # Tags for this completion item.
50
+ #
51
+ # @return [1[]]
52
+ def tags
53
+ attributes.fetch(:tags)
54
+ end
55
+
45
56
  #
46
57
  # A human-readable string with additional information
47
58
  # about this item, like type or symbol information.
@@ -67,6 +78,18 @@ module LanguageServer
67
78
  attributes.fetch(:deprecated)
68
79
  end
69
80
 
81
+ #
82
+ # Select this item when showing.
83
+ #
84
+ # *Note* that only one completion item can be selected and that the
85
+ # tool / client decides which item that is. The rule is that the *first*
86
+ # item of those that match best is selected.
87
+ #
88
+ # @return [boolean]
89
+ def preselect
90
+ attributes.fetch(:preselect)
91
+ end
92
+
70
93
  #
71
94
  # A string that should be used when comparing this item
72
95
  # with other items. When `falsy` the label is used.
@@ -103,9 +126,10 @@ module LanguageServer
103
126
 
104
127
  #
105
128
  # The format of the insert text. The format applies to both the `insertText` property
106
- # and the `newText` property of a provided `textEdit`.
129
+ # and the `newText` property of a provided `textEdit`. If omitted defaults to
130
+ # `InsertTextFormat.PlainText`.
107
131
  #
108
- # @return [InsertTextFormat]
132
+ # @return [DiagnosticTag]
109
133
  def insert_text_format
110
134
  attributes.fetch(:insertTextFormat)
111
135
  end
@@ -157,7 +181,7 @@ module LanguageServer
157
181
  end
158
182
 
159
183
  #
160
- # An data entry field that is preserved on a completion item between
184
+ # A data entry field that is preserved on a completion item between
161
185
  # a completion and a completion resolve request.
162
186
  #
163
187
  # @return [any]
@@ -4,31 +4,53 @@ module LanguageServer
4
4
  #
5
5
  # Completion options.
6
6
  #
7
- class CompletionOptions
8
- def initialize(resolve_provider: nil, trigger_characters: nil)
7
+ class CompletionOptions < WorkDoneProgressOptions
8
+ def initialize(work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
9
9
  @attributes = {}
10
10
 
11
- @attributes[:resolveProvider] = resolve_provider if resolve_provider
11
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
12
12
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
13
+ @attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
14
+ @attributes[:resolveProvider] = resolve_provider if resolve_provider
13
15
 
14
16
  @attributes.freeze
15
17
  end
16
18
 
17
19
  #
18
- # The server provides support to resolve additional
19
- # information for a completion item.
20
+ # Most tools trigger completion request automatically without explicitly requesting
21
+ # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
22
+ # starts to type an identifier. For example if the user types `c` in a JavaScript file
23
+ # code complete will automatically pop up present `console` besides others as a
24
+ # completion item. Characters that make up identifiers don't need to be listed here.
20
25
  #
21
- # @return [boolean]
22
- def resolve_provider
23
- attributes.fetch(:resolveProvider)
26
+ # If code complete should automatically be trigger on characters not being valid inside
27
+ # an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
28
+ #
29
+ # @return [string[]]
30
+ def trigger_characters
31
+ attributes.fetch(:triggerCharacters)
24
32
  end
25
33
 
26
34
  #
27
- # The characters that trigger completion automatically.
35
+ # The list of all possible characters that commit a completion. This field can be used
36
+ # if clients don't support individual commit characters per completion item. See
37
+ # `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`.
38
+ #
39
+ # If a server provides both `allCommitCharacters` and commit characters on an individual
40
+ # completion item the ones on the completion item win.
28
41
  #
29
42
  # @return [string[]]
30
- def trigger_characters
31
- attributes.fetch(:triggerCharacters)
43
+ def all_commit_characters
44
+ attributes.fetch(:allCommitCharacters)
45
+ end
46
+
47
+ #
48
+ # The server provides support to resolve additional
49
+ # information for a completion item.
50
+ #
51
+ # @return [boolean]
52
+ def resolve_provider
53
+ attributes.fetch(:resolveProvider)
32
54
  end
33
55
 
34
56
  attr_reader :attributes
@@ -1,17 +1,18 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class CompletionParams < TextDocumentPositionParams
5
- def initialize(text_document:, position:, context: nil)
4
+ class CompletionParams < PartialResultParams
5
+ def initialize(partial_result_token: nil, context: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
8
9
  @attributes[:context] = context if context
9
10
 
10
11
  @attributes.freeze
11
12
  end
12
13
 
13
14
  #
14
- # The completion context. This is only available it the client specifies
15
+ # The completion context. This is only available if the client specifies
15
16
  # to send this using `ClientCapabilities.textDocument.completion.contextSupport === true`
16
17
  #
17
18
  # @return [CompletionContext]
@@ -1,40 +1,18 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class CompletionRegistrationOptions < TextDocumentRegistrationOptions
5
- def initialize(document_selector:, trigger_characters: nil, resolve_provider: nil)
4
+ class CompletionRegistrationOptions < CompletionOptions
5
+ def initialize(work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: 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[:allCommitCharacters] = all_commit_characters if all_commit_characters
9
11
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
10
12
 
11
13
  @attributes.freeze
12
14
  end
13
15
 
14
- #
15
- # Most tools trigger completion request automatically without explicitly requesting
16
- # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
17
- # starts to type an identifier. For example if the user types `c` in a JavaScript file
18
- # code complete will automatically pop up present `console` besides others as a
19
- # completion item. Characters that make up identifiers don't need to be listed here.
20
- #
21
- # If code complete should automatically be trigger on characters not being valid inside
22
- # an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
23
- #
24
- # @return [string[]]
25
- def trigger_characters
26
- attributes.fetch(:triggerCharacters)
27
- end
28
-
29
- #
30
- # The server provides support to resolve additional
31
- # information for a completion item.
32
- #
33
- # @return [boolean]
34
- def resolve_provider
35
- attributes.fetch(:resolveProvider)
36
- end
37
-
38
16
  attr_reader :attributes
39
17
 
40
18
  def to_hash
@@ -0,0 +1,54 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Create file operation
6
+ #
7
+ class CreateFile
8
+ def initialize(kind:, uri:, options: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:kind] = kind
12
+ @attributes[:uri] = uri
13
+ @attributes[:options] = options if options
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # A create
20
+ #
21
+ # @return ["create"]
22
+ def kind
23
+ attributes.fetch(:kind)
24
+ end
25
+
26
+ #
27
+ # The resource to create.
28
+ #
29
+ # @return [string]
30
+ def uri
31
+ attributes.fetch(:uri)
32
+ end
33
+
34
+ #
35
+ # Additional options
36
+ #
37
+ # @return [CreateFileOptions]
38
+ def options
39
+ attributes.fetch(:options)
40
+ end
41
+
42
+ attr_reader :attributes
43
+
44
+ def to_hash
45
+ attributes
46
+ end
47
+
48
+ def to_json(*args)
49
+ to_hash.to_json(*args)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,45 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Options to create a file.
6
+ #
7
+ class CreateFileOptions
8
+ def initialize(overwrite: nil, ignore_if_exists: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:overwrite] = overwrite if overwrite
12
+ @attributes[:ignoreIfExists] = ignore_if_exists if ignore_if_exists
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # Overwrite existing file. Overwrite wins over `ignoreIfExists`
19
+ #
20
+ # @return [boolean]
21
+ def overwrite
22
+ attributes.fetch(:overwrite)
23
+ end
24
+
25
+ #
26
+ # Ignore if exists.
27
+ #
28
+ # @return [boolean]
29
+ def ignore_if_exists
30
+ attributes.fetch(:ignoreIfExists)
31
+ end
32
+
33
+ attr_reader :attributes
34
+
35
+ def to_hash
36
+ attributes
37
+ end
38
+
39
+ def to_json(*args)
40
+ to_hash.to_json(*args)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,44 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DeclarationClientCapabilities
5
+ def initialize(dynamic_registration: nil, link_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:linkSupport] = link_support if link_support
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # Whether declaration supports dynamic registration. If this is set to `true`
16
+ # the client supports the new `DeclarationRegistrationOptions` return value
17
+ # for the corresponding server capability as well.
18
+ #
19
+ # @return [boolean]
20
+ def dynamic_registration
21
+ attributes.fetch(:dynamicRegistration)
22
+ end
23
+
24
+ #
25
+ # The client supports additional metadata in the form of declaration links.
26
+ #
27
+ # @return [boolean]
28
+ def link_support
29
+ attributes.fetch(:linkSupport)
30
+ end
31
+
32
+ attr_reader :attributes
33
+
34
+ def to_hash
35
+ attributes
36
+ end
37
+
38
+ def to_json(*args)
39
+ to_hash.to_json(*args)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DeclarationOptions < 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,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DeclarationParams < PartialResultParams
5
+ def initialize(partial_result_token: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
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
@@ -1,13 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Color provider Options
6
- #
7
- class ColorProviderOptions
8
- def initialize()
4
+ class DeclarationRegistrationOptions < StaticRegistrationOptions
5
+ def initialize(id: nil)
9
6
  @attributes = {}
10
7
 
8
+ @attributes[:id] = id if id
11
9
 
12
10
  @attributes.freeze
13
11
  end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DefinitionClientCapabilities
5
+ def initialize(dynamic_registration: nil, link_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:linkSupport] = link_support if link_support
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # Whether definition supports dynamic registration.
16
+ #
17
+ # @return [boolean]
18
+ def dynamic_registration
19
+ attributes.fetch(:dynamicRegistration)
20
+ end
21
+
22
+ #
23
+ # The client supports additional metadata in the form of definition links.
24
+ #
25
+ # @return [boolean]
26
+ def link_support
27
+ attributes.fetch(:linkSupport)
28
+ end
29
+
30
+ attr_reader :attributes
31
+
32
+ def to_hash
33
+ attributes
34
+ end
35
+
36
+ def to_json(*args)
37
+ to_hash.to_json(*args)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end