language_server-protocol 3.16.0.2 → 3.17.0.1

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/lib/language_server/protocol/constant/code_action_kind.rb +8 -0
  3. data/lib/language_server/protocol/constant/code_action_trigger_kind.rb +22 -0
  4. data/lib/language_server/protocol/constant/document_diagnostic_report_kind.rb +21 -0
  5. data/lib/language_server/protocol/constant/error_codes.rb +33 -2
  6. data/lib/language_server/protocol/constant/folding_range_kind.rb +24 -0
  7. data/lib/language_server/protocol/constant/{initialize_error.rb → initialize_error_codes.rb} +4 -4
  8. data/lib/language_server/protocol/constant/inlay_hint_kind.rb +19 -0
  9. data/lib/language_server/protocol/constant/moniker_kind.rb +24 -0
  10. data/lib/language_server/protocol/constant/notebook_cell_kind.rb +19 -0
  11. data/lib/language_server/protocol/constant/position_encoding_kind.rb +32 -0
  12. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +1 -1
  13. data/lib/language_server/protocol/constant/semantic_token_modifiers.rb +18 -0
  14. data/lib/language_server/protocol/constant/semantic_token_types.rb +35 -0
  15. data/lib/language_server/protocol/constant/uniqueness_level.rb +31 -0
  16. data/lib/language_server/protocol/constant.rb +22 -2
  17. data/lib/language_server/protocol/interface/{apply_workspace_edit_response.rb → apply_workspace_edit_result.rb} +2 -2
  18. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +1 -1
  19. data/lib/language_server/protocol/interface/client_capabilities.rb +13 -4
  20. data/lib/language_server/protocol/interface/code_action.rb +1 -1
  21. data/lib/language_server/protocol/interface/code_action_context.rb +10 -1
  22. data/lib/language_server/protocol/interface/code_lens.rb +1 -1
  23. data/lib/language_server/protocol/interface/color_presentation.rb +1 -1
  24. data/lib/language_server/protocol/interface/command.rb +1 -1
  25. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +23 -3
  26. data/lib/language_server/protocol/interface/completion_item.rb +41 -9
  27. data/lib/language_server/protocol/interface/completion_item_label_details.rb +49 -0
  28. data/lib/language_server/protocol/interface/completion_list.rb +24 -2
  29. data/lib/language_server/protocol/interface/completion_options.rb +11 -1
  30. data/lib/language_server/protocol/interface/completion_registration_options.rb +11 -1
  31. data/lib/language_server/protocol/interface/create_file.rb +1 -1
  32. data/lib/language_server/protocol/interface/delete_file.rb +1 -1
  33. data/lib/language_server/protocol/interface/diagnostic_client_capabilities.rb +49 -0
  34. data/lib/language_server/protocol/interface/diagnostic_options.rb +64 -0
  35. data/lib/language_server/protocol/interface/diagnostic_registration_options.rb +84 -0
  36. data/lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb +33 -0
  37. data/lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb +42 -0
  38. data/lib/language_server/protocol/interface/did_change_configuration_params.rb +1 -1
  39. data/lib/language_server/protocol/interface/did_change_notebook_document_params.rb +56 -0
  40. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +11 -1
  41. data/lib/language_server/protocol/interface/did_close_notebook_document_params.rb +46 -0
  42. data/lib/language_server/protocol/interface/did_open_notebook_document_params.rb +46 -0
  43. data/lib/language_server/protocol/interface/did_save_notebook_document_params.rb +36 -0
  44. data/lib/language_server/protocol/interface/document_diagnostic_params.rb +73 -0
  45. data/lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb +33 -0
  46. data/lib/language_server/protocol/interface/document_link.rb +1 -1
  47. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +1 -1
  48. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +9 -4
  49. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +1 -1
  50. data/lib/language_server/protocol/interface/document_symbol.rb +1 -1
  51. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +1 -1
  52. data/lib/language_server/protocol/interface/execute_command_params.rb +1 -1
  53. data/lib/language_server/protocol/interface/execution_summary.rb +45 -0
  54. data/lib/language_server/protocol/interface/file_system_watcher.rb +3 -14
  55. data/lib/language_server/protocol/interface/folding_range.rb +12 -1
  56. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +19 -1
  57. data/lib/language_server/protocol/interface/full_document_diagnostic_report.rb +56 -0
  58. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +1 -1
  59. data/lib/language_server/protocol/interface/hover_result.rb +30 -0
  60. data/lib/language_server/protocol/interface/initialize_error.rb +0 -3
  61. data/lib/language_server/protocol/interface/initialize_params.rb +1 -1
  62. data/lib/language_server/protocol/interface/inlay_hint.rb +122 -0
  63. data/lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb +46 -0
  64. data/lib/language_server/protocol/interface/inlay_hint_label_part.rb +79 -0
  65. data/lib/language_server/protocol/interface/inlay_hint_options.rb +43 -0
  66. data/lib/language_server/protocol/interface/inlay_hint_params.rb +54 -0
  67. data/lib/language_server/protocol/interface/inlay_hint_registration_options.rb +63 -0
  68. data/lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb +42 -0
  69. data/lib/language_server/protocol/interface/inline_value_client_capabilities.rb +37 -0
  70. data/lib/language_server/protocol/interface/inline_value_context.rb +44 -0
  71. data/lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb +52 -0
  72. data/lib/language_server/protocol/interface/inline_value_options.rb +33 -0
  73. data/lib/language_server/protocol/interface/inline_value_params.rb +64 -0
  74. data/lib/language_server/protocol/interface/inline_value_registration_options.rb +53 -0
  75. data/lib/language_server/protocol/interface/inline_value_text.rb +45 -0
  76. data/lib/language_server/protocol/interface/inline_value_variable_lookup.rb +61 -0
  77. data/lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb +42 -0
  78. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +5 -4
  79. data/lib/language_server/protocol/interface/location_link.rb +1 -1
  80. data/lib/language_server/protocol/interface/notebook_cell.rb +69 -0
  81. data/lib/language_server/protocol/interface/notebook_cell_array_change.rb +55 -0
  82. data/lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb +52 -0
  83. data/lib/language_server/protocol/interface/notebook_document.rb +74 -0
  84. data/lib/language_server/protocol/interface/notebook_document_change_event.rb +45 -0
  85. data/lib/language_server/protocol/interface/notebook_document_client_capabilities.rb +36 -0
  86. data/lib/language_server/protocol/interface/notebook_document_filter.rb +79 -0
  87. data/lib/language_server/protocol/interface/notebook_document_identifier.rb +36 -0
  88. data/lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb +48 -0
  89. data/lib/language_server/protocol/interface/notebook_document_sync_options.rb +56 -0
  90. data/lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb +56 -0
  91. data/lib/language_server/protocol/interface/position.rb +2 -3
  92. data/lib/language_server/protocol/interface/prepare_rename_params.rb +10 -1
  93. data/lib/language_server/protocol/interface/previous_result_id.rb +46 -0
  94. data/lib/language_server/protocol/interface/registration.rb +1 -1
  95. data/lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb +69 -0
  96. data/lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb +62 -0
  97. data/lib/language_server/protocol/interface/relative_pattern.rb +48 -0
  98. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +1 -1
  99. data/lib/language_server/protocol/interface/rename_file.rb +1 -1
  100. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +29 -1
  101. data/lib/language_server/protocol/interface/server_capabilities.rb +62 -2
  102. data/lib/language_server/protocol/interface/signature_help.rb +2 -2
  103. data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
  104. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +37 -1
  105. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +2 -2
  106. data/lib/language_server/protocol/interface/text_document_sync_options.rb +2 -0
  107. data/lib/language_server/protocol/interface/type_hierarchy_item.rb +102 -0
  108. data/lib/language_server/protocol/interface/type_hierarchy_options.rb +30 -0
  109. data/lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb +51 -0
  110. data/lib/language_server/protocol/interface/type_hierarchy_registration_options.rb +50 -0
  111. data/lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb +49 -0
  112. data/lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb +49 -0
  113. data/lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb +50 -0
  114. data/lib/language_server/protocol/interface/{markdown_client_capabilities.rb → versioned_notebook_document_identifier.rb} +12 -12
  115. data/lib/language_server/protocol/interface/work_done_progress_report.rb +1 -1
  116. data/lib/language_server/protocol/interface/workspace_diagnostic_params.rb +65 -0
  117. data/lib/language_server/protocol/interface/workspace_diagnostic_report.rb +33 -0
  118. data/lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb +33 -0
  119. data/lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb +75 -0
  120. data/lib/language_server/protocol/interface/workspace_symbol.rb +89 -0
  121. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +14 -3
  122. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +11 -1
  123. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +11 -1
  124. data/lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb +68 -0
  125. data/lib/language_server/protocol/interface.rb +124 -4
  126. data/lib/language_server/protocol/transport/io/reader.rb +7 -24
  127. data/lib/language_server/protocol/version.rb +1 -1
  128. metadata +75 -20
@@ -0,0 +1,53 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Inline value options used during static or dynamic registration.
6
+ #
7
+ class InlineValueRegistrationOptions
8
+ def initialize(work_done_progress: nil, document_selector:, id: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
12
+ @attributes[:documentSelector] = document_selector
13
+ @attributes[:id] = id if id
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ # @return [boolean]
19
+ def work_done_progress
20
+ attributes.fetch(:workDoneProgress)
21
+ end
22
+
23
+ #
24
+ # A document selector to identify the scope of the registration. If set to
25
+ # null the document selector provided on the client side will be used.
26
+ #
27
+ # @return [DocumentSelector]
28
+ def document_selector
29
+ attributes.fetch(:documentSelector)
30
+ end
31
+
32
+ #
33
+ # The id used to register the request. The id can be used to deregister
34
+ # the request again. See also Registration#id.
35
+ #
36
+ # @return [string]
37
+ def id
38
+ attributes.fetch(:id)
39
+ end
40
+
41
+ attr_reader :attributes
42
+
43
+ def to_hash
44
+ attributes
45
+ end
46
+
47
+ def to_json(*args)
48
+ to_hash.to_json(*args)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,45 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Provide inline value as text.
6
+ #
7
+ class InlineValueText
8
+ def initialize(range:, text:)
9
+ @attributes = {}
10
+
11
+ @attributes[:range] = range
12
+ @attributes[:text] = text
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The document range for which the inline value applies.
19
+ #
20
+ # @return [Range]
21
+ def range
22
+ attributes.fetch(:range)
23
+ end
24
+
25
+ #
26
+ # The text of the inline value.
27
+ #
28
+ # @return [string]
29
+ def text
30
+ attributes.fetch(:text)
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,61 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Provide inline value through a variable lookup.
6
+ #
7
+ # If only a range is specified, the variable name will be extracted from
8
+ # the underlying document.
9
+ #
10
+ # An optional variable name can be used to override the extracted name.
11
+ #
12
+ class InlineValueVariableLookup
13
+ def initialize(range:, variable_name: nil, case_sensitive_lookup:)
14
+ @attributes = {}
15
+
16
+ @attributes[:range] = range
17
+ @attributes[:variableName] = variable_name if variable_name
18
+ @attributes[:caseSensitiveLookup] = case_sensitive_lookup
19
+
20
+ @attributes.freeze
21
+ end
22
+
23
+ #
24
+ # The document range for which the inline value applies.
25
+ # The range is used to extract the variable name from the underlying
26
+ # document.
27
+ #
28
+ # @return [Range]
29
+ def range
30
+ attributes.fetch(:range)
31
+ end
32
+
33
+ #
34
+ # If specified the name of the variable to look up.
35
+ #
36
+ # @return [string]
37
+ def variable_name
38
+ attributes.fetch(:variableName)
39
+ end
40
+
41
+ #
42
+ # How to perform the lookup.
43
+ #
44
+ # @return [boolean]
45
+ def case_sensitive_lookup
46
+ attributes.fetch(:caseSensitiveLookup)
47
+ end
48
+
49
+ attr_reader :attributes
50
+
51
+ def to_hash
52
+ attributes
53
+ end
54
+
55
+ def to_json(*args)
56
+ to_hash.to_json(*args)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Client workspace capabilities specific to inline values.
6
+ #
7
+ class InlineValueWorkspaceClientCapabilities
8
+ def initialize(refresh_support: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:refreshSupport] = refresh_support if refresh_support
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # Whether the client implementation supports a refresh request sent from
18
+ # the server to the client.
19
+ #
20
+ # Note that this event is global and will force the client to refresh all
21
+ # inline values currently shown. It should be used with absolute care and
22
+ # is useful for situation where a server for example detect a project wide
23
+ # change that requires such a calculation.
24
+ #
25
+ # @return [boolean]
26
+ def refresh_support
27
+ attributes.fetch(:refreshSupport)
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
@@ -13,7 +13,8 @@ module LanguageServer
13
13
 
14
14
  #
15
15
  # A list of ranges that can be renamed together. The ranges must have
16
- # identical length and contain identical text content. The ranges cannot overlap.
16
+ # identical length and contain identical text content. The ranges cannot
17
+ # overlap.
17
18
  #
18
19
  # @return [Range[]]
19
20
  def ranges
@@ -21,9 +22,9 @@ module LanguageServer
21
22
  end
22
23
 
23
24
  #
24
- # An optional word pattern (regular expression) that describes valid contents for
25
- # the given ranges. If no pattern is provided, the client configuration's word
26
- # pattern will be used.
25
+ # An optional word pattern (regular expression) that describes valid
26
+ # contents for the given ranges. If no pattern is provided, the client
27
+ # configuration's word pattern will be used.
27
28
  #
28
29
  # @return [string]
29
30
  def word_pattern
@@ -45,7 +45,7 @@ module LanguageServer
45
45
 
46
46
  #
47
47
  # The range that should be selected and revealed when this link is being
48
- # followed, e.g the name of a function. Must be contained by the the
48
+ # followed, e.g the name of a function. Must be contained by the
49
49
  # `targetRange`. See also `DocumentSymbol#range`
50
50
  #
51
51
  # @return [Range]
@@ -0,0 +1,69 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A notebook cell.
6
+ #
7
+ # A cell's document URI must be unique across ALL notebook
8
+ # cells and can therefore be used to uniquely identify a
9
+ # notebook cell or the cell's text document.
10
+ #
11
+ class NotebookCell
12
+ def initialize(kind:, document:, metadata: nil, execution_summary: nil)
13
+ @attributes = {}
14
+
15
+ @attributes[:kind] = kind
16
+ @attributes[:document] = document
17
+ @attributes[:metadata] = metadata if metadata
18
+ @attributes[:executionSummary] = execution_summary if execution_summary
19
+
20
+ @attributes.freeze
21
+ end
22
+
23
+ #
24
+ # The cell's kind
25
+ #
26
+ # @return [any]
27
+ def kind
28
+ attributes.fetch(:kind)
29
+ end
30
+
31
+ #
32
+ # The URI of the cell's text document
33
+ # content.
34
+ #
35
+ # @return [string]
36
+ def document
37
+ attributes.fetch(:document)
38
+ end
39
+
40
+ #
41
+ # Additional metadata stored with the cell.
42
+ #
43
+ # @return [LSPObject]
44
+ def metadata
45
+ attributes.fetch(:metadata)
46
+ end
47
+
48
+ #
49
+ # Additional execution summary information
50
+ # if supported by the client.
51
+ #
52
+ # @return [ExecutionSummary]
53
+ def execution_summary
54
+ attributes.fetch(:executionSummary)
55
+ end
56
+
57
+ attr_reader :attributes
58
+
59
+ def to_hash
60
+ attributes
61
+ end
62
+
63
+ def to_json(*args)
64
+ to_hash.to_json(*args)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,55 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A change describing how to move a `NotebookCell`
6
+ # array from state S to S'.
7
+ #
8
+ class NotebookCellArrayChange
9
+ def initialize(start:, delete_count:, cells: nil)
10
+ @attributes = {}
11
+
12
+ @attributes[:start] = start
13
+ @attributes[:deleteCount] = delete_count
14
+ @attributes[:cells] = cells if cells
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # The start offset of the cell that changed.
21
+ #
22
+ # @return [number]
23
+ def start
24
+ attributes.fetch(:start)
25
+ end
26
+
27
+ #
28
+ # The deleted cells
29
+ #
30
+ # @return [number]
31
+ def delete_count
32
+ attributes.fetch(:deleteCount)
33
+ end
34
+
35
+ #
36
+ # The new cells, if any
37
+ #
38
+ # @return [NotebookCell[]]
39
+ def cells
40
+ attributes.fetch(:cells)
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,52 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A notebook cell text document filter denotes a cell text
6
+ # document by different properties.
7
+ #
8
+ class NotebookCellTextDocumentFilter
9
+ def initialize(notebook:, language: nil)
10
+ @attributes = {}
11
+
12
+ @attributes[:notebook] = notebook
13
+ @attributes[:language] = language if language
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # A filter that matches against the notebook
20
+ # containing the notebook cell. If a string
21
+ # value is provided it matches against the
22
+ # notebook type. '*' matches every notebook.
23
+ #
24
+ # @return [string | NotebookDocumentFilter]
25
+ def notebook
26
+ attributes.fetch(:notebook)
27
+ end
28
+
29
+ #
30
+ # A language id like `python`.
31
+ #
32
+ # Will be matched against the language id of the
33
+ # notebook cell document. '*' matches every language.
34
+ #
35
+ # @return [string]
36
+ def language
37
+ attributes.fetch(:language)
38
+ end
39
+
40
+ attr_reader :attributes
41
+
42
+ def to_hash
43
+ attributes
44
+ end
45
+
46
+ def to_json(*args)
47
+ to_hash.to_json(*args)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,74 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A notebook document.
6
+ #
7
+ class NotebookDocument
8
+ def initialize(uri:, notebook_type:, version:, metadata: nil, cells:)
9
+ @attributes = {}
10
+
11
+ @attributes[:uri] = uri
12
+ @attributes[:notebookType] = notebook_type
13
+ @attributes[:version] = version
14
+ @attributes[:metadata] = metadata if metadata
15
+ @attributes[:cells] = cells
16
+
17
+ @attributes.freeze
18
+ end
19
+
20
+ #
21
+ # The notebook document's URI.
22
+ #
23
+ # @return [string]
24
+ def uri
25
+ attributes.fetch(:uri)
26
+ end
27
+
28
+ #
29
+ # The type of the notebook.
30
+ #
31
+ # @return [string]
32
+ def notebook_type
33
+ attributes.fetch(:notebookType)
34
+ end
35
+
36
+ #
37
+ # The version number of this document (it will increase after each
38
+ # change, including undo/redo).
39
+ #
40
+ # @return [number]
41
+ def version
42
+ attributes.fetch(:version)
43
+ end
44
+
45
+ #
46
+ # Additional metadata stored with the notebook
47
+ # document.
48
+ #
49
+ # @return [LSPObject]
50
+ def metadata
51
+ attributes.fetch(:metadata)
52
+ end
53
+
54
+ #
55
+ # The cells of a notebook.
56
+ #
57
+ # @return [NotebookCell[]]
58
+ def cells
59
+ attributes.fetch(:cells)
60
+ end
61
+
62
+ attr_reader :attributes
63
+
64
+ def to_hash
65
+ attributes
66
+ end
67
+
68
+ def to_json(*args)
69
+ to_hash.to_json(*args)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,45 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A change event for a notebook document.
6
+ #
7
+ class NotebookDocumentChangeEvent
8
+ def initialize(metadata: nil, cells: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:metadata] = metadata if metadata
12
+ @attributes[:cells] = cells if cells
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The changed meta data if any.
19
+ #
20
+ # @return [LSPObject]
21
+ def metadata
22
+ attributes.fetch(:metadata)
23
+ end
24
+
25
+ #
26
+ # Changes to cells
27
+ #
28
+ # @return [{ structure?: { array: NotebookCellArrayChange; didOpen?: TextDocumentItem[]; didClose?: TextDocumentIdentifier[]; }; data?: NotebookCell[]; textContent?: { ...; }[]; }]
29
+ def cells
30
+ attributes.fetch(:cells)
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,36 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Capabilities specific to the notebook document support.
6
+ #
7
+ class NotebookDocumentClientCapabilities
8
+ def initialize(synchronization:)
9
+ @attributes = {}
10
+
11
+ @attributes[:synchronization] = synchronization
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # Capabilities specific to notebook document synchronization
18
+ #
19
+ # @return [NotebookDocumentSyncClientCapabilities]
20
+ def synchronization
21
+ attributes.fetch(:synchronization)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_hash
27
+ attributes
28
+ end
29
+
30
+ def to_json(*args)
31
+ to_hash.to_json(*args)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,79 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A notebook document filter denotes a notebook document by
6
+ # different properties.
7
+ #
8
+ class NotebookDocumentFilter
9
+ def initialize(notebook_type: nil, scheme: nil, pattern: nil)
10
+ @attributes = {}
11
+
12
+ @attributes[:notebookType] = notebook_type if notebook_type
13
+ @attributes[:scheme] = scheme if scheme
14
+ @attributes[:pattern] = pattern if pattern
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # The type of the enclosing notebook.
21
+ #
22
+ # --- OR ---
23
+ #
24
+ # The type of the enclosing notebook.
25
+ #
26
+ # --- OR ---
27
+ #
28
+ # The type of the enclosing notebook.
29
+ #
30
+ # @return [string]
31
+ def notebook_type
32
+ attributes.fetch(:notebookType)
33
+ end
34
+
35
+ #
36
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
37
+ #
38
+ # --- OR ---
39
+ #
40
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
41
+ #
42
+ # --- OR ---
43
+ #
44
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
45
+ #
46
+ # @return [string]
47
+ def scheme
48
+ attributes.fetch(:scheme)
49
+ end
50
+
51
+ #
52
+ # A glob pattern.
53
+ #
54
+ # --- OR ---
55
+ #
56
+ # A glob pattern.
57
+ #
58
+ # --- OR ---
59
+ #
60
+ # A glob pattern.
61
+ #
62
+ # @return [string]
63
+ def pattern
64
+ attributes.fetch(:pattern)
65
+ end
66
+
67
+ attr_reader :attributes
68
+
69
+ def to_hash
70
+ attributes
71
+ end
72
+
73
+ def to_json(*args)
74
+ to_hash.to_json(*args)
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,36 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A literal to identify a notebook document in the client.
6
+ #
7
+ class NotebookDocumentIdentifier
8
+ def initialize(uri:)
9
+ @attributes = {}
10
+
11
+ @attributes[:uri] = uri
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The notebook document's URI.
18
+ #
19
+ # @return [string]
20
+ def uri
21
+ attributes.fetch(:uri)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_hash
27
+ attributes
28
+ end
29
+
30
+ def to_json(*args)
31
+ to_hash.to_json(*args)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end