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,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ShowMessageParams
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,47 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ShowMessageRequestParams
5
+ def initialize(type:, message:, actions: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:type] = type
9
+ @attributes[:message] = message
10
+ @attributes[:actions] = actions if actions
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The message type. See {@link MessageType}
17
+ #
18
+ # @return [number]
19
+ def type
20
+ attributes.fetch(:type)
21
+ end
22
+
23
+ #
24
+ # The actual message
25
+ #
26
+ # @return [string]
27
+ def message
28
+ attributes.fetch(:message)
29
+ end
30
+
31
+ #
32
+ # The message action items to present.
33
+ #
34
+ # @return [MessageActionItem[]]
35
+ def actions
36
+ attributes.fetch(:actions)
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,64 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Signature help represents the signature of something
6
+ # callable. There can be multiple signature but only one
7
+ # active and only one active parameter.
8
+ #
9
+ class SignatureHelp
10
+ def initialize(signatures:, active_signature: nil, active_parameter: nil)
11
+ @attributes = {}
12
+
13
+ @attributes[:signatures] = signatures
14
+ @attributes[:activeSignature] = active_signature if active_signature
15
+ @attributes[:activeParameter] = active_parameter if active_parameter
16
+
17
+ @attributes.freeze
18
+ end
19
+
20
+ #
21
+ # One or more signatures.
22
+ #
23
+ # @return [SignatureInformation[]]
24
+ def signatures
25
+ attributes.fetch(:signatures)
26
+ end
27
+
28
+ #
29
+ # The active signature. If omitted or the value lies outside the
30
+ # range of `signatures` the value defaults to zero or is ignored if
31
+ # `signatures.length === 0`. Whenever possible implementors should
32
+ # make an active decision about the active signature and shouldn't
33
+ # rely on a default value.
34
+ # In future version of the protocol this property might become
35
+ # mandantory to better express this.
36
+ #
37
+ # @return [number]
38
+ def active_signature
39
+ attributes.fetch(:activeSignature)
40
+ end
41
+
42
+ #
43
+ # The active parameter of the active signature. If omitted or the value
44
+ # lies outside the range of `signatures[activeSignature].parameters`
45
+ # defaults to 0 if the active signature has parameters. If
46
+ # the active signature has no parameters it is ignored.
47
+ # In future version of the protocol this property might become
48
+ # mandantory to better express the active parameter if the
49
+ # active signature does have any.
50
+ #
51
+ # @return [number]
52
+ def active_parameter
53
+ attributes.fetch(:activeParameter)
54
+ end
55
+
56
+ attr_reader :attributes
57
+
58
+ def to_json(*args)
59
+ attributes.to_json(*args)
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Signature help options.
6
+ #
7
+ class SignatureHelpOptions
8
+ def initialize(trigger_characters: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:triggerCharacters] = trigger_characters if trigger_characters
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The characters that trigger signature help
18
+ # automatically.
19
+ #
20
+ # @return [string[]]
21
+ def trigger_characters
22
+ attributes.fetch(:triggerCharacters)
23
+ end
24
+
25
+ attr_reader :attributes
26
+
27
+ def to_json(*args)
28
+ attributes.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class SignatureHelpRegistrationOptions
5
+ def initialize(trigger_characters: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:triggerCharacters] = trigger_characters if trigger_characters
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The characters that trigger signature help
15
+ # automatically.
16
+ #
17
+ # @return [string[]]
18
+ def trigger_characters
19
+ attributes.fetch(:triggerCharacters)
20
+ end
21
+
22
+ attr_reader :attributes
23
+
24
+ def to_json(*args)
25
+ attributes.to_json(*args)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,54 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Represents the signature of something callable. A signature
6
+ # can have a label, like a function-name, a doc-comment, and
7
+ # a set of parameters.
8
+ #
9
+ class SignatureInformation
10
+ def initialize(label:, documentation: nil, parameters: nil)
11
+ @attributes = {}
12
+
13
+ @attributes[:label] = label
14
+ @attributes[:documentation] = documentation if documentation
15
+ @attributes[:parameters] = parameters if parameters
16
+
17
+ @attributes.freeze
18
+ end
19
+
20
+ #
21
+ # The label of this signature. Will be shown in
22
+ # the UI.
23
+ #
24
+ # @return [string]
25
+ def label
26
+ attributes.fetch(:label)
27
+ end
28
+
29
+ #
30
+ # The human-readable doc-comment of this signature. Will be shown
31
+ # in the UI but can be omitted.
32
+ #
33
+ # @return [string]
34
+ def documentation
35
+ attributes.fetch(:documentation)
36
+ end
37
+
38
+ #
39
+ # The parameters of this signature.
40
+ #
41
+ # @return [ParameterInformation[]]
42
+ def parameters
43
+ attributes.fetch(:parameters)
44
+ end
45
+
46
+ attr_reader :attributes
47
+
48
+ def to_json(*args)
49
+ attributes.to_json(*args)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,60 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Represents information about programming constructs like variables, classes,
6
+ # interfaces etc.
7
+ #
8
+ class SymbolInformation
9
+ def initialize(name:, kind:, location:, container_name: nil)
10
+ @attributes = {}
11
+
12
+ @attributes[:name] = name
13
+ @attributes[:kind] = kind
14
+ @attributes[:location] = location
15
+ @attributes[:containerName] = container_name if container_name
16
+
17
+ @attributes.freeze
18
+ end
19
+
20
+ #
21
+ # The name of this symbol.
22
+ #
23
+ # @return [string]
24
+ def name
25
+ attributes.fetch(:name)
26
+ end
27
+
28
+ #
29
+ # The kind of this symbol.
30
+ #
31
+ # @return [number]
32
+ def kind
33
+ attributes.fetch(:kind)
34
+ end
35
+
36
+ #
37
+ # The location of this symbol.
38
+ #
39
+ # @return [Location]
40
+ def location
41
+ attributes.fetch(:location)
42
+ end
43
+
44
+ #
45
+ # The name of the symbol containing this symbol.
46
+ #
47
+ # @return [string]
48
+ def container_name
49
+ attributes.fetch(:containerName)
50
+ end
51
+
52
+ attr_reader :attributes
53
+
54
+ def to_json(*args)
55
+ attributes.to_json(*args)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Descibe options to be used when registered for text document change events.
6
+ #
7
+ class TextDocumentChangeRegistrationOptions
8
+ def initialize(sync_kind:)
9
+ @attributes = {}
10
+
11
+ @attributes[:syncKind] = sync_kind
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # How documents are synced to the server. See TextDocumentSyncKind.Full
18
+ # and TextDocumentSyncKindIncremental.
19
+ #
20
+ # @return [number]
21
+ def sync_kind
22
+ attributes.fetch(:syncKind)
23
+ end
24
+
25
+ attr_reader :attributes
26
+
27
+ def to_json(*args)
28
+ attributes.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,155 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Text document specific client capabilities.
6
+ #
7
+ class TextDocumentClientCapabilities
8
+ def initialize(synchronization: nil, completion: nil, hover: nil, signature_help: nil, references: nil, document_highlight: nil, document_symbol: nil, formatting: nil, range_formatting: nil, on_type_formatting: nil, definition: nil, code_action: nil, code_lens: nil, document_link: nil, rename: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:synchronization] = synchronization if synchronization
12
+ @attributes[:completion] = completion if completion
13
+ @attributes[:hover] = hover if hover
14
+ @attributes[:signatureHelp] = signature_help if signature_help
15
+ @attributes[:references] = references if references
16
+ @attributes[:documentHighlight] = document_highlight if document_highlight
17
+ @attributes[:documentSymbol] = document_symbol if document_symbol
18
+ @attributes[:formatting] = formatting if formatting
19
+ @attributes[:rangeFormatting] = range_formatting if range_formatting
20
+ @attributes[:onTypeFormatting] = on_type_formatting if on_type_formatting
21
+ @attributes[:definition] = definition if definition
22
+ @attributes[:codeAction] = code_action if code_action
23
+ @attributes[:codeLens] = code_lens if code_lens
24
+ @attributes[:documentLink] = document_link if document_link
25
+ @attributes[:rename] = rename if rename
26
+
27
+ @attributes.freeze
28
+ end
29
+
30
+ # @return [{ dynamicRegistration?: boolean; willSave?: boolean; willSaveWaitUntil?: boolean; didSave?: boole...]
31
+ def synchronization
32
+ attributes.fetch(:synchronization)
33
+ end
34
+
35
+ #
36
+ # Capabilities specific to the `textDocument/completion`
37
+ #
38
+ # @return [{ dynamicRegistration?: boolean; completionItem?: { snippetSupport?: boolean; }; }]
39
+ def completion
40
+ attributes.fetch(:completion)
41
+ end
42
+
43
+ #
44
+ # Capabilities specific to the `textDocument/hover`
45
+ #
46
+ # @return [{ dynamicRegistration?: boolean; }]
47
+ def hover
48
+ attributes.fetch(:hover)
49
+ end
50
+
51
+ #
52
+ # Capabilities specific to the `textDocument/signatureHelp`
53
+ #
54
+ # @return [{ dynamicRegistration?: boolean; }]
55
+ def signature_help
56
+ attributes.fetch(:signatureHelp)
57
+ end
58
+
59
+ #
60
+ # Capabilities specific to the `textDocument/references`
61
+ #
62
+ # @return [{ dynamicRegistration?: boolean; }]
63
+ def references
64
+ attributes.fetch(:references)
65
+ end
66
+
67
+ #
68
+ # Capabilities specific to the `textDocument/documentHighlight`
69
+ #
70
+ # @return [{ dynamicRegistration?: boolean; }]
71
+ def document_highlight
72
+ attributes.fetch(:documentHighlight)
73
+ end
74
+
75
+ #
76
+ # Capabilities specific to the `textDocument/documentSymbol`
77
+ #
78
+ # @return [{ dynamicRegistration?: boolean; }]
79
+ def document_symbol
80
+ attributes.fetch(:documentSymbol)
81
+ end
82
+
83
+ #
84
+ # Capabilities specific to the `textDocument/formatting`
85
+ #
86
+ # @return [{ dynamicRegistration?: boolean; }]
87
+ def formatting
88
+ attributes.fetch(:formatting)
89
+ end
90
+
91
+ #
92
+ # Capabilities specific to the `textDocument/rangeFormatting`
93
+ #
94
+ # @return [{ dynamicRegistration?: boolean; }]
95
+ def range_formatting
96
+ attributes.fetch(:rangeFormatting)
97
+ end
98
+
99
+ #
100
+ # Capabilities specific to the `textDocument/onTypeFormatting`
101
+ #
102
+ # @return [{ dynamicRegistration?: boolean; }]
103
+ def on_type_formatting
104
+ attributes.fetch(:onTypeFormatting)
105
+ end
106
+
107
+ #
108
+ # Capabilities specific to the `textDocument/definition`
109
+ #
110
+ # @return [{ dynamicRegistration?: boolean; }]
111
+ def definition
112
+ attributes.fetch(:definition)
113
+ end
114
+
115
+ #
116
+ # Capabilities specific to the `textDocument/codeAction`
117
+ #
118
+ # @return [{ dynamicRegistration?: boolean; }]
119
+ def code_action
120
+ attributes.fetch(:codeAction)
121
+ end
122
+
123
+ #
124
+ # Capabilities specific to the `textDocument/codeLens`
125
+ #
126
+ # @return [{ dynamicRegistration?: boolean; }]
127
+ def code_lens
128
+ attributes.fetch(:codeLens)
129
+ end
130
+
131
+ #
132
+ # Capabilities specific to the `textDocument/documentLink`
133
+ #
134
+ # @return [{ dynamicRegistration?: boolean; }]
135
+ def document_link
136
+ attributes.fetch(:documentLink)
137
+ end
138
+
139
+ #
140
+ # Capabilities specific to the `textDocument/rename`
141
+ #
142
+ # @return [{ dynamicRegistration?: boolean; }]
143
+ def rename
144
+ attributes.fetch(:rename)
145
+ end
146
+
147
+ attr_reader :attributes
148
+
149
+ def to_json(*args)
150
+ attributes.to_json(*args)
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end