language_server-protocol 0.1.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 (123) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +5 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Dockerfile-node.development +6 -0
  6. data/Dockerfile.development +14 -0
  7. data/Gemfile +6 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +43 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +14 -0
  12. data/bin/generate_files +5 -0
  13. data/bin/setup +8 -0
  14. data/language_server-protocol.gemspec +27 -0
  15. data/lib/language_server/protocol/constants/completion_item_kind.rb +29 -0
  16. data/lib/language_server/protocol/constants/diagnostic_severity.rb +24 -0
  17. data/lib/language_server/protocol/constants/document_highlight_kind.rb +23 -0
  18. data/lib/language_server/protocol/constants/error_codes.rb +18 -0
  19. data/lib/language_server/protocol/constants/file_change_type.rb +23 -0
  20. data/lib/language_server/protocol/constants/initialize_error.rb +15 -0
  21. data/lib/language_server/protocol/constants/insert_text_format.rb +27 -0
  22. data/lib/language_server/protocol/constants/message_type.rb +24 -0
  23. data/lib/language_server/protocol/constants/symbol_kind.rb +29 -0
  24. data/lib/language_server/protocol/constants/text_document_save_reason.rb +24 -0
  25. data/lib/language_server/protocol/constants/text_document_sync_kind.rb +26 -0
  26. data/lib/language_server/protocol/constants.rb +11 -0
  27. data/lib/language_server/protocol/interfaces/apply_workspace_edit_params.rb +29 -0
  28. data/lib/language_server/protocol/interfaces/apply_workspace_edit_response.rb +29 -0
  29. data/lib/language_server/protocol/interfaces/cancel_params.rb +29 -0
  30. data/lib/language_server/protocol/interfaces/client_capabilities.rb +47 -0
  31. data/lib/language_server/protocol/interfaces/code_action_context.rb +33 -0
  32. data/lib/language_server/protocol/interfaces/code_action_params.rb +50 -0
  33. data/lib/language_server/protocol/interfaces/code_lens.rb +55 -0
  34. data/lib/language_server/protocol/interfaces/code_lens_options.rb +32 -0
  35. data/lib/language_server/protocol/interfaces/code_lens_params.rb +29 -0
  36. data/lib/language_server/protocol/interfaces/code_lens_registration_options.rb +29 -0
  37. data/lib/language_server/protocol/interfaces/command.rb +48 -0
  38. data/lib/language_server/protocol/interfaces/completion_item.rb +145 -0
  39. data/lib/language_server/protocol/interfaces/completion_list.rb +43 -0
  40. data/lib/language_server/protocol/interfaces/completion_options.rb +42 -0
  41. data/lib/language_server/protocol/interfaces/completion_registration_options.rb +39 -0
  42. data/lib/language_server/protocol/interfaces/diagnostic.rb +67 -0
  43. data/lib/language_server/protocol/interfaces/did_change_configuration_params.rb +29 -0
  44. data/lib/language_server/protocol/interfaces/did_change_text_document_params.rb +40 -0
  45. data/lib/language_server/protocol/interfaces/did_change_watched_files_params.rb +29 -0
  46. data/lib/language_server/protocol/interfaces/did_close_text_document_params.rb +29 -0
  47. data/lib/language_server/protocol/interfaces/did_open_text_document_params.rb +29 -0
  48. data/lib/language_server/protocol/interfaces/did_save_text_document_params.rb +39 -0
  49. data/lib/language_server/protocol/interfaces/document_filter.rb +47 -0
  50. data/lib/language_server/protocol/interfaces/document_formatting_params.rb +38 -0
  51. data/lib/language_server/protocol/interfaces/document_highlight.rb +43 -0
  52. data/lib/language_server/protocol/interfaces/document_link.rb +42 -0
  53. data/lib/language_server/protocol/interfaces/document_link_options.rb +32 -0
  54. data/lib/language_server/protocol/interfaces/document_link_params.rb +29 -0
  55. data/lib/language_server/protocol/interfaces/document_link_registration_options.rb +29 -0
  56. data/lib/language_server/protocol/interfaces/document_on_type_formatting_options.rb +41 -0
  57. data/lib/language_server/protocol/interfaces/document_on_type_formatting_params.rb +56 -0
  58. data/lib/language_server/protocol/interfaces/document_on_type_formatting_registration_options.rb +38 -0
  59. data/lib/language_server/protocol/interfaces/document_range_formatting_params.rb +47 -0
  60. data/lib/language_server/protocol/interfaces/document_symbol_params.rb +29 -0
  61. data/lib/language_server/protocol/interfaces/execute_command_options.rb +32 -0
  62. data/lib/language_server/protocol/interfaces/execute_command_params.rb +38 -0
  63. data/lib/language_server/protocol/interfaces/execute_command_registration_options.rb +32 -0
  64. data/lib/language_server/protocol/interfaces/file_event.rb +41 -0
  65. data/lib/language_server/protocol/interfaces/formatting_options.rb +41 -0
  66. data/lib/language_server/protocol/interfaces/hover.rb +42 -0
  67. data/lib/language_server/protocol/interfaces/initialize_error.rb +35 -0
  68. data/lib/language_server/protocol/interfaces/initialize_params.rb +79 -0
  69. data/lib/language_server/protocol/interfaces/initialize_result.rb +29 -0
  70. data/lib/language_server/protocol/interfaces/location.rb +32 -0
  71. data/lib/language_server/protocol/interfaces/log_message_params.rb +38 -0
  72. data/lib/language_server/protocol/interfaces/message.rb +26 -0
  73. data/lib/language_server/protocol/interfaces/message_action_item.rb +29 -0
  74. data/lib/language_server/protocol/interfaces/notification_message.rb +38 -0
  75. data/lib/language_server/protocol/interfaces/parameter_information.rb +44 -0
  76. data/lib/language_server/protocol/interfaces/position.rb +38 -0
  77. data/lib/language_server/protocol/interfaces/publish_diagnostics_params.rb +38 -0
  78. data/lib/language_server/protocol/interfaces/range.rb +38 -0
  79. data/lib/language_server/protocol/interfaces/reference_context.rb +29 -0
  80. data/lib/language_server/protocol/interfaces/reference_params.rb +26 -0
  81. data/lib/language_server/protocol/interfaces/registration.rb +51 -0
  82. data/lib/language_server/protocol/interfaces/registration_params.rb +26 -0
  83. data/lib/language_server/protocol/interfaces/rename_params.rb +49 -0
  84. data/lib/language_server/protocol/interfaces/request_message.rb +47 -0
  85. data/lib/language_server/protocol/interfaces/response_error.rb +48 -0
  86. data/lib/language_server/protocol/interfaces/response_message.rb +48 -0
  87. data/lib/language_server/protocol/interfaces/save_options.rb +32 -0
  88. data/lib/language_server/protocol/interfaces/server_capabilities.rb +183 -0
  89. data/lib/language_server/protocol/interfaces/show_message_params.rb +38 -0
  90. data/lib/language_server/protocol/interfaces/show_message_request_params.rb +47 -0
  91. data/lib/language_server/protocol/interfaces/signature_help.rb +64 -0
  92. data/lib/language_server/protocol/interfaces/signature_help_options.rb +33 -0
  93. data/lib/language_server/protocol/interfaces/signature_help_registration_options.rb +30 -0
  94. data/lib/language_server/protocol/interfaces/signature_information.rb +54 -0
  95. data/lib/language_server/protocol/interfaces/symbol_information.rb +60 -0
  96. data/lib/language_server/protocol/interfaces/text_document_change_registration_options.rb +33 -0
  97. data/lib/language_server/protocol/interfaces/text_document_client_capabilities.rb +155 -0
  98. data/lib/language_server/protocol/interfaces/text_document_content_change_event.rb +51 -0
  99. data/lib/language_server/protocol/interfaces/text_document_edit.rb +38 -0
  100. data/lib/language_server/protocol/interfaces/text_document_identifier.rb +29 -0
  101. data/lib/language_server/protocol/interfaces/text_document_item.rb +57 -0
  102. data/lib/language_server/protocol/interfaces/text_document_position_params.rb +38 -0
  103. data/lib/language_server/protocol/interfaces/text_document_registration_options.rb +30 -0
  104. data/lib/language_server/protocol/interfaces/text_document_save_registration_options.rb +29 -0
  105. data/lib/language_server/protocol/interfaces/text_document_sync_options.rb +66 -0
  106. data/lib/language_server/protocol/interfaces/text_edit.rb +40 -0
  107. data/lib/language_server/protocol/interfaces/unregistration.rb +42 -0
  108. data/lib/language_server/protocol/interfaces/unregistration_params.rb +26 -0
  109. data/lib/language_server/protocol/interfaces/versioned_text_document_identifier.rb +29 -0
  110. data/lib/language_server/protocol/interfaces/will_save_text_document_params.rb +41 -0
  111. data/lib/language_server/protocol/interfaces/workspace_client_capabilites.rb +78 -0
  112. data/lib/language_server/protocol/interfaces/workspace_edit.rb +40 -0
  113. data/lib/language_server/protocol/interfaces/workspace_symbol_params.rb +32 -0
  114. data/lib/language_server/protocol/interfaces.rb +87 -0
  115. data/lib/language_server/protocol/transport/stdio/reader.rb +39 -0
  116. data/lib/language_server/protocol/transport/stdio/writer.rb +38 -0
  117. data/lib/language_server/protocol/transport/stdio.rb +2 -0
  118. data/lib/language_server/protocol/version.rb +5 -0
  119. data/lib/language_server/protocol.rb +7 -0
  120. data/package.json +10 -0
  121. data/scripts/generateFiles.ts +224 -0
  122. data/yarn.lock +293 -0
  123. metadata +207 -0
@@ -0,0 +1,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DidChangeTextDocumentParams
5
+ def initialize(text_document:, content_changes:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:contentChanges] = content_changes
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The document that did change. The version number points
16
+ # to the version after all provided content changes have
17
+ # been applied.
18
+ #
19
+ # @return [VersionedTextDocumentIdentifier]
20
+ def text_document
21
+ attributes.fetch(:textDocument)
22
+ end
23
+
24
+ #
25
+ # The actual content changes.
26
+ #
27
+ # @return [TextDocumentContentChangeEvent[]]
28
+ def content_changes
29
+ attributes.fetch(:contentChanges)
30
+ end
31
+
32
+ attr_reader :attributes
33
+
34
+ def to_json(*args)
35
+ attributes.to_json(*args)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DidChangeWatchedFilesParams
5
+ def initialize(changes:)
6
+ @attributes = {}
7
+
8
+ @attributes[:changes] = changes
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The actual file events.
15
+ #
16
+ # @return [FileEvent[]]
17
+ def changes
18
+ attributes.fetch(:changes)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DidCloseTextDocumentParams
5
+ def initialize(text_document:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The document that was closed.
15
+ #
16
+ # @return [TextDocumentIdentifier]
17
+ def text_document
18
+ attributes.fetch(:textDocument)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DidOpenTextDocumentParams
5
+ def initialize(text_document:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The document that was opened.
15
+ #
16
+ # @return [TextDocumentItem]
17
+ def text_document
18
+ attributes.fetch(:textDocument)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,39 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DidSaveTextDocumentParams
5
+ def initialize(text_document:, text: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:text] = text if text
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The document that was saved.
16
+ #
17
+ # @return [TextDocumentIdentifier]
18
+ def text_document
19
+ attributes.fetch(:textDocument)
20
+ end
21
+
22
+ #
23
+ # Optional the content when saved. Depends on the includeText value
24
+ # when the save notifcation was requested.
25
+ #
26
+ # @return [string]
27
+ def text
28
+ attributes.fetch(:text)
29
+ end
30
+
31
+ attr_reader :attributes
32
+
33
+ def to_json(*args)
34
+ attributes.to_json(*args)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,47 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentFilter
5
+ def initialize(language: nil, scheme: nil, pattern: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:language] = language if language
9
+ @attributes[:scheme] = scheme if scheme
10
+ @attributes[:pattern] = pattern if pattern
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # A language id, like `typescript`.
17
+ #
18
+ # @return [string]
19
+ def language
20
+ attributes.fetch(:language)
21
+ end
22
+
23
+ #
24
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
25
+ #
26
+ # @return [string]
27
+ def scheme
28
+ attributes.fetch(:scheme)
29
+ end
30
+
31
+ #
32
+ # A glob pattern, like `*.{ts,js}`.
33
+ #
34
+ # @return [string]
35
+ def pattern
36
+ attributes.fetch(:pattern)
37
+ end
38
+
39
+ attr_reader :attributes
40
+
41
+ def to_json(*args)
42
+ attributes.to_json(*args)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentFormattingParams
5
+ def initialize(text_document:, options:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:options] = options
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The document to format.
16
+ #
17
+ # @return [TextDocumentIdentifier]
18
+ def text_document
19
+ attributes.fetch(:textDocument)
20
+ end
21
+
22
+ #
23
+ # The format options.
24
+ #
25
+ # @return [FormattingOptions]
26
+ def options
27
+ attributes.fetch(:options)
28
+ end
29
+
30
+ attr_reader :attributes
31
+
32
+ def to_json(*args)
33
+ attributes.to_json(*args)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,43 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # A document highlight is a range inside a text document which deserves
6
+ # special attention. Usually a document highlight is visualized by changing
7
+ # the background color of its range.
8
+ #
9
+ class DocumentHighlight
10
+ def initialize(range:, kind: nil)
11
+ @attributes = {}
12
+
13
+ @attributes[:range] = range
14
+ @attributes[:kind] = kind if kind
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # The range this highlight applies to.
21
+ #
22
+ # @return [Range]
23
+ def range
24
+ attributes.fetch(:range)
25
+ end
26
+
27
+ #
28
+ # The highlight kind, default is DocumentHighlightKind.Text.
29
+ #
30
+ # @return [number]
31
+ def kind
32
+ attributes.fetch(:kind)
33
+ end
34
+
35
+ attr_reader :attributes
36
+
37
+ def to_json(*args)
38
+ attributes.to_json(*args)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # A document link is a range in a text document that links to an internal or external resource, like another
6
+ # text document or a web site.
7
+ #
8
+ class DocumentLink
9
+ def initialize(range:, target: nil)
10
+ @attributes = {}
11
+
12
+ @attributes[:range] = range
13
+ @attributes[:target] = target if target
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # The range this link applies to.
20
+ #
21
+ # @return [Range]
22
+ def range
23
+ attributes.fetch(:range)
24
+ end
25
+
26
+ #
27
+ # The uri this link points to. If missing a resolve request is sent later.
28
+ #
29
+ # @return [string]
30
+ def target
31
+ attributes.fetch(:target)
32
+ end
33
+
34
+ attr_reader :attributes
35
+
36
+ def to_json(*args)
37
+ attributes.to_json(*args)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Document link options
6
+ #
7
+ class DocumentLinkOptions
8
+ def initialize(resolve_provider: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:resolveProvider] = resolve_provider if resolve_provider
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # Document links have a resolve provider as well.
18
+ #
19
+ # @return [boolean]
20
+ def resolve_provider
21
+ attributes.fetch(:resolveProvider)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_json(*args)
27
+ attributes.to_json(*args)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentLinkParams
5
+ def initialize(text_document:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The document to provide document links for.
15
+ #
16
+ # @return [TextDocumentIdentifier]
17
+ def text_document
18
+ attributes.fetch(:textDocument)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentLinkRegistrationOptions
5
+ def initialize(resolve_provider: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:resolveProvider] = resolve_provider if resolve_provider
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Document links have a resolve provider as well.
15
+ #
16
+ # @return [boolean]
17
+ def resolve_provider
18
+ attributes.fetch(:resolveProvider)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end