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,35 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Known error codes for an `InitializeError`;
6
+ #
7
+ class InitializeError
8
+ def initialize(retry:)
9
+ @attributes = {}
10
+
11
+ @attributes[:retry] = binding.local_variable_get(:retry)
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # Indicates whether the client execute the following retry logic:
18
+ # (1) show the message provided by the ResponseError to the user
19
+ # (2) user selects retry or cancel
20
+ # (3) if user selected retry the initialize method is sent again.
21
+ #
22
+ # @return [boolean]
23
+ def retry
24
+ attributes.fetch(:retry)
25
+ end
26
+
27
+ attr_reader :attributes
28
+
29
+ def to_json(*args)
30
+ attributes.to_json(*args)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,79 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class InitializeParams
5
+ def initialize(process_id:, root_path: nil, root_uri:, initialization_options: nil, capabilities:, trace: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:processId] = process_id
9
+ @attributes[:rootPath] = root_path if root_path
10
+ @attributes[:rootUri] = root_uri
11
+ @attributes[:initializationOptions] = initialization_options if initialization_options
12
+ @attributes[:capabilities] = capabilities
13
+ @attributes[:trace] = trace if trace
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # The process Id of the parent process that started
20
+ # the server. Is null if the process has not been started by another process.
21
+ # If the parent process is not alive then the server should exit (see exit notification) its process.
22
+ #
23
+ # @return [number]
24
+ def process_id
25
+ attributes.fetch(:processId)
26
+ end
27
+
28
+ #
29
+ # The rootPath of the workspace. Is null
30
+ # if no folder is open.
31
+ #
32
+ # @return [string]
33
+ def root_path
34
+ attributes.fetch(:rootPath)
35
+ end
36
+
37
+ #
38
+ # The rootUri of the workspace. Is null if no
39
+ # folder is open. If both `rootPath` and `rootUri` are set
40
+ # `rootUri` wins.
41
+ #
42
+ # @return [string]
43
+ def root_uri
44
+ attributes.fetch(:rootUri)
45
+ end
46
+
47
+ #
48
+ # User provided initialization options.
49
+ #
50
+ # @return [any]
51
+ def initialization_options
52
+ attributes.fetch(:initializationOptions)
53
+ end
54
+
55
+ #
56
+ # The capabilities provided by the client (editor or tool)
57
+ #
58
+ # @return [ClientCapabilities]
59
+ def capabilities
60
+ attributes.fetch(:capabilities)
61
+ end
62
+
63
+ #
64
+ # The initial trace setting. If omitted trace is disabled ('off').
65
+ #
66
+ # @return ["off" | "messages" | "verbose"]
67
+ def trace
68
+ attributes.fetch(:trace)
69
+ end
70
+
71
+ attr_reader :attributes
72
+
73
+ def to_json(*args)
74
+ attributes.to_json(*args)
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class InitializeResult
5
+ def initialize(capabilities:)
6
+ @attributes = {}
7
+
8
+ @attributes[:capabilities] = capabilities
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The capabilities the language server provides.
15
+ #
16
+ # @return [ServerCapabilities]
17
+ def capabilities
18
+ attributes.fetch(:capabilities)
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,32 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class Location
5
+ def initialize(uri:, range:)
6
+ @attributes = {}
7
+
8
+ @attributes[:uri] = uri
9
+ @attributes[:range] = range
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ # @return [string]
15
+ def uri
16
+ attributes.fetch(:uri)
17
+ end
18
+
19
+ # @return [Range]
20
+ def range
21
+ attributes.fetch(:range)
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,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class LogMessageParams
5
+ def initialize(type:, message:)
6
+ @attributes = {}
7
+
8
+ @attributes[:type] = type
9
+ @attributes[:message] = message
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The message type. See {@link MessageType}
16
+ #
17
+ # @return [number]
18
+ def type
19
+ attributes.fetch(:type)
20
+ end
21
+
22
+ #
23
+ # The actual message
24
+ #
25
+ # @return [string]
26
+ def message
27
+ attributes.fetch(:message)
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,26 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class Message
5
+ def initialize(jsonrpc:)
6
+ @attributes = {}
7
+
8
+ @attributes[:jsonrpc] = jsonrpc
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [string]
14
+ def jsonrpc
15
+ attributes.fetch(:jsonrpc)
16
+ end
17
+
18
+ attr_reader :attributes
19
+
20
+ def to_json(*args)
21
+ attributes.to_json(*args)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class MessageActionItem
5
+ def initialize(title:)
6
+ @attributes = {}
7
+
8
+ @attributes[:title] = title
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # A short title like 'Retry', 'Open Log' etc.
15
+ #
16
+ # @return [string]
17
+ def title
18
+ attributes.fetch(:title)
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,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class NotificationMessage
5
+ def initialize(method:, params: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:method] = method
9
+ @attributes[:params] = params if params
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The method to be invoked.
16
+ #
17
+ # @return [string]
18
+ def method
19
+ attributes.fetch(:method)
20
+ end
21
+
22
+ #
23
+ # The notification's params.
24
+ #
25
+ # @return [any]
26
+ def params
27
+ attributes.fetch(:params)
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,44 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Represents a parameter of a callable-signature. A parameter can
6
+ # have a label and a doc-comment.
7
+ #
8
+ class ParameterInformation
9
+ def initialize(label:, documentation: nil)
10
+ @attributes = {}
11
+
12
+ @attributes[:label] = label
13
+ @attributes[:documentation] = documentation if documentation
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # The label of this parameter. Will be shown in
20
+ # the UI.
21
+ #
22
+ # @return [string]
23
+ def label
24
+ attributes.fetch(:label)
25
+ end
26
+
27
+ #
28
+ # The human-readable doc-comment of this parameter. Will be shown
29
+ # in the UI but can be omitted.
30
+ #
31
+ # @return [string]
32
+ def documentation
33
+ attributes.fetch(:documentation)
34
+ end
35
+
36
+ attr_reader :attributes
37
+
38
+ def to_json(*args)
39
+ attributes.to_json(*args)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class Position
5
+ def initialize(line:, character:)
6
+ @attributes = {}
7
+
8
+ @attributes[:line] = line
9
+ @attributes[:character] = character
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # Line position in a document (zero-based).
16
+ #
17
+ # @return [number]
18
+ def line
19
+ attributes.fetch(:line)
20
+ end
21
+
22
+ #
23
+ # Character offset on a line in a document (zero-based).
24
+ #
25
+ # @return [number]
26
+ def character
27
+ attributes.fetch(:character)
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,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class PublishDiagnosticsParams
5
+ def initialize(uri:, diagnostics:)
6
+ @attributes = {}
7
+
8
+ @attributes[:uri] = uri
9
+ @attributes[:diagnostics] = diagnostics
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The URI for which diagnostic information is reported.
16
+ #
17
+ # @return [string]
18
+ def uri
19
+ attributes.fetch(:uri)
20
+ end
21
+
22
+ #
23
+ # An array of diagnostic information items.
24
+ #
25
+ # @return [Diagnostic[]]
26
+ def diagnostics
27
+ attributes.fetch(:diagnostics)
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,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class Range
5
+ def initialize(start:, end:)
6
+ @attributes = {}
7
+
8
+ @attributes[:start] = start
9
+ @attributes[:end] = binding.local_variable_get(:end)
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The range's start position.
16
+ #
17
+ # @return [Position]
18
+ def start
19
+ attributes.fetch(:start)
20
+ end
21
+
22
+ #
23
+ # The range's end position.
24
+ #
25
+ # @return [Position]
26
+ def end
27
+ attributes.fetch(:end)
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